Skip to main content
Welcome to fyrer — a declarative, language-agnostic task orchestrator built for monorepos. Define your packages and tasks in a fyrer.yml config file at your repo root, and fyrer resolves the dependency graph, runs tasks concurrently at each level, and skips unchanged work using a content-addressed cache. Whether you’re coordinating Rust services, TypeScript frontends, or Python tooling, fyrer keeps your build pipeline fast and your dev loop tight.

Quick Start

Get fyrer running in your monorepo in minutes.

Installation

Install via cargo or build from source.

Configuration

Learn the fyrer.yml config format.

CLI Reference

Explore fyrer run, plan, and list commands.

Key Features

Concurrent Execution

Runs tasks at each dependency graph level in parallel, maximising throughput across your monorepo.

Build Caching

Content-addressed cache skips unchanged tasks with ⚡ Cached — only rebuild what actually changed.

Language Agnostic

Works with any language: Rust, Go, TypeScript, Python, and more — if it runs in a shell, fyrer can orchestrate it.

Interactive TUI

Full-screen terminal UI with a per-task log viewer so you always know what’s running and why it failed.

How It Works

1

Add fyrer.yml

Create a fyrer.yml at your monorepo root listing your packages and their tasks.
fyrer.yml
2

Declare Dependencies

Use depends_on to wire task execution order. fyrer builds a dependency graph and automatically runs independent tasks in parallel.
3

Run

Execute fyrer run build to orchestrate a full build, or fyrer run dev to spin up all dev servers — fyrer handles the rest.