Skip to main content
fyrer works in CI environments with the -n / --no-tui flag, which disables the interactive TUI and prints plain, prefixed log output to stdout. Combined with caching, fyrer can skip unchanged tasks across CI runs — so only the packages that actually changed get rebuilt.

Disable the TUI

Pass -n (or --no-tui) to get CI-friendly output:
Each line of output is prefixed with the originating package and task:
Lines are colorized per package, making it easy to trace output even when multiple tasks run concurrently.

Exit codes

fyrer uses standard POSIX exit codes so your CI pipeline can react automatically:
  • Exit 0 — all tasks succeeded (including tasks that were cached or skipped).
  • Exit non-zero — one or more tasks failed.
Tasks whose dependencies failed are automatically skipped (not retried), and their skipped status does not itself cause a non-zero exit — only actual failures do. Use this behavior to fail your pipeline precisely on task failure:

Caching in CI

fyrer stores its content-addressed cache under .fyrer/cache/ relative to fyrer.yml. Each cached task is keyed by a blake3 hash of the task definition, environment, and the contents of every file matched by inputs. If the key matches a previous run, the task is reported as ⚡ Cached and skipped — its outputs are restored from the archive. To benefit from caching across CI runs, persist the .fyrer/cache directory between jobs. Here is a GitHub Actions cache step:
.github/workflows/ci.yml

Full CI workflow example

A complete GitHub Actions workflow that installs fyrer, restores the cache, and builds the monorepo:
.github/workflows/ci.yml
Use fyrer plan build before fyrer run build -n to print the topological execution plan without running any commands. This is helpful for debugging dependency ordering issues in CI without wasting build time.
Do not run persistent tasks (dev servers) in CI. A task with persistent: true never exits, so your CI job will block indefinitely. Only include tasks that have a finite lifecycle — i.e. tasks without persistent: true.