Example monorepo structure
ui, shared, core) are built first; the apps that depend on them are built after. fyrer’s dependency graph handles the ordering automatically.
Complete fyrer.yml
Below is the full configuration for the acme-corp example, annotated with comments explaining each package:fyrer.yml
The
watch: true flag is part of the fyrer config schema and is recognized by fyrer list and fyrer plan, but the file-watcher that triggers automatic task restarts is not yet implemented. Tasks with watch: true are treated as plain persistent tasks at runtime — they will not restart automatically when input files change.Running the whole stack
fyrer run build, all packages compile from scratch. On subsequent runs, only packages whose inputs have changed are rebuilt — the rest are restored from the local cache and reported as ⚡ Cached.
Cross-language dependencies
depends_on works across languages without any special configuration. In the example above:
worker:build(Go) depends oncore:build(Go)api:build(Rust) depends onshared:build(Rust)web:buildandweb:dev(TypeScript) both depend onui:build(TypeScript)cli:serve(Python) depends oncli:bundle(Python)
package:task in depends_on.
Per-package tool setup
Each package uses its own toolchain (bun, cargo, go, python3). fyrer does not install tools — it assumes every required binary is already available on your PATH when fyrer run is executed.
Install all required toolchains (Rust / Cargo, Go, Bun, Python 3, etc.) on your machine or CI runner before running fyrer. fyrer will fail with a
command not found error for any package whose toolchain is missing.
