fyrer.yml Task Configuration: Complete Field Reference
A task is a named command inside a package. Tasks declare what to run, what they depend on, what files they read and produce, and how they behave — cached, persistent, or watched. fyrer resolves dependencies between tasks across all packages, runs independent tasks concurrently, and streams every task's output with a colorized prefix.
Task fields
cmdstringrequiredThe shell command to run. Executed via sh -c on Unix/macOS or cmd /C on Windows.
depends_onstring[]Task IDs this task must wait for. Use package:task for cross-package deps, or a bare task name for same-package deps.
inputsstring[]Glob patterns (relative to the package root) of files that define the task's cache key. Changes to these files invalidate the cache.
outputsstring[]Glob patterns of files the task produces. Archived on cache write; restored on cache hit.
ignorestring[]Glob patterns excluded from both inputs and outputs.
cachebooleandefault: falseWhen true, a successful run is cached and skipped on future runs when inputs are unchanged. Cannot be combined with persistent or watch.
persistentbooleandefault: falseMarks a long-running task (e.g., a dev server). The task runs until you quit fyrer. Cannot be combined with cache.
watchbooleandefault: falseMarks a task that restarts when watched inputs change. Cannot be combined with cache. When enabled, fyrer polls the task's inputs globs every 300ms and restarts the task (debounced 300ms) when files change.
timeoutstringKill the task after this duration (e.g., 30s, 2m). Must be greater than zero.
cwdstringWorking directory for the command, relative to the package root. Must exist inside the package root.
envmap<string, string>Per-task environment variables. Highest precedence of all env sources.
env_filestringPer-task .env file path, relative to the package root.
Full task example
tasks:
build:
cmd: bun build src/index.ts --outdir dist
depends_on:
- ui:build
inputs:
- src/**
- package.json
outputs:
- dist/**
ignore:
- node_modules/**
cache: true
timeout: 5m
cwd: subdir
env:
NODE_ENV: production
env_file: .env.production
Validation rules
cmdmust not be empty.timeoutmust be greater than zero if specified.cwdmust be relative and must exist inside the package root.inputs,outputs, andignoremust be valid glob patterns.cachecannot be combined withpersistentorwatch— a cached task must be finite and non-restarting.env_filemust be relative and must exist at the time fyrer starts.