Skip to main content
Open sourceBuilt for developers

Run everything.Wait for nothing.

One fyrer.yml for any language, any stack. Streaming DAG, blake3 cache — if it runs in a shell, fyrer orchestrates it.

$ fyrer.shSingle binary • No daemon • MIT
2.10scache miss0.04scache hit300mswatch
fyrer run build — acme-corp
$
ui:buildbun build src --outdir dist
api:buildcargo build --release
web:buildbun build src --outdir dist
only waited on ui:build — not api:build
2.10s✓3⚡0
⚡ 0.04s on second runALL CACHED
.fyrer/cache • blake3 • tar.zst
sh -c is the API — any language, any runtimeNo plugins • no adapters • just shell commands
02Product

Your graph, streaming.

Real fyrer output from examples/acme-corp. No waiting — tasks start the instant deps succeed.

fyrer plan — acme-corp
Graphfyrer.yml
acme-corp4 pkgs
├─ui:build310ms
├─api:build2.10s
└─web:build→ ui
web started at 310ms — 1.79s saved
Timelinewall-clock 2.10s
ui:build
310ms
web:build
420ms
api:build
2.10s
[ui:build]bundled 42 modules
[web:build]starting — ui satisfied
streaming • concurrency 8
03Workflow

Six primitives.
No ceremony.

Each card maps to a real fyrer.yml field. No marketing abstractions.

310ms start

Streaming DAG

No barriers. Tasks start the moment deps succeed — up to concurrency.

depends_on: [ui:build]
0.04s

blake3 cache

Hash of id + cmd + inputs → tar.zst. Second run restores instantly.

cache: true
›_sh -c

Any shell command

If it runs via sh -c, fyrer runs it. Any toolchain, any runtime — no plugins.

cmd: ./scripts/build.sh
300ms

Watch + persistent

Poll + debounce 300ms. Dev servers stay alive until you quit.

watch: true
r / K / q

TUI & plain

Interactive panes with r/K/q — or -n for CI logs.

fyrer run -n
6 targets

Single binary

curl | sh or cargo install. 6 targets. No daemon.

cargo install fyrer
04How it works

From YAML to streaming.

Every run parses fresh, validates, builds a DAG, hashes what matters, and streams tasks as soon as parents succeed.

01
Parse & resolve DAG
Validate fyrer.yml, sort topologically, detect cycles. Plan is display-only.
02
Hash for cache
blake3(id + cmd + cwd + env + inputs). Outputs → .fyrer/cache/<key>.tar.zst
03
Stream execution
Up to concurrency, process groups, timeouts, SIGKILL on quit. Watch polls 300ms.
architecture • dag → cache → rundeterministic
fyrer.yml
DAG
Cache key — blake3
idcmdenvinputs→ 32B
hit → ⚡ skip
miss → run & save
05Performance

Second run is
almost free.

Real local run. Same commit, no file changes — cache hit.

2.10s
cache miss
0.04s
cache hit
benchmark • cache2 runs
cache miss2.10s
cache hit0.04s
06Polyglot

One file. Every language.

A single fyrer.yml declares tasks for every runtime. No plugins — just shell commands.

fyrer.ymlYAML
version: 1
packages:
  - name: ui
    tasks:
      build: { cmd: bun build src --outdir dist }

  - name: api
    tasks:
      build: { cmd: cargo build --release }

  - name: worker
    tasks:
      build: { cmd: go build -o bin/worker . }

  - name: jobs
    tasks:
      run: { cmd: python3 jobs/run.py }
  # any command via sh -c — if it runs in a shell, fyrer runs it
Any runtime • any toolchain
bun buildcargo buildgo buildpython3make./scripts/*… sh -c
Same file also handles depends_on • inputs • cache • watch
run itbash
$ fyrer run build -n
[ui:build]      ✓ 310ms
[worker:build]  ✓ 1.14s
[api:build]     ✓ 2.10s
Run 2.10s  ✓3  ⚡0  ↷0
sh -c • any commandno wrappersno daemons
07Comparison

Streaming execution.

Every task starts the moment its dependencies succeed — maximum parallelism, zero idle waits.

Migrate
$ curl -fsSL https://raw.githubusercontent.com/07calc/fyrer/main/install.sh | sh
# then copy turbo.json → fyrer.yml
Capability
fyrer
Execution
streaming DAG
Cache
blake3 • content-addressed
Languages
any • sh -c
Runtime
single binary • no daemon
08Open source

Built in the open.

MIT, Rust, no telemetry. Install via sh or cargo.

License
MIT
Lang
Rust
Telemetry
None
install — any platform6 targets
Unix
curl -fsSL https://raw.githubusercontent.com/07calc/fyrer/main/install.sh | sh
Cargo
cargo install fyrer

Stop waiting.

One fyrer.yml. Every language. 0.04s on cache hit.

$ install & run
$curl -fsSL https://raw.githubusercontent.com/07calc/fyrer/main/install.sh | sh
$ fyrer run build
2.10s → 0.04s
$ fyrer run dev
q to quit