Skip to main content
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

string
required
The shell command to run. Executed via sh -c on Unix/macOS or cmd /C on Windows.
string[]
Task IDs this task must wait for. Use package:task for cross-package deps, or a bare task name for same-package deps.
string[]
Glob patterns (relative to the package root) of files that define the task’s cache key. Changes to these files invalidate the cache.
string[]
Glob patterns of files the task produces. Archived on cache write; restored on cache hit.
string[]
Glob patterns excluded from both inputs and outputs.
boolean
default:"false"
When true, a successful run is cached and skipped on future runs when inputs are unchanged. Cannot be combined with persistent or watch.
boolean
default:"false"
Marks a long-running task (e.g., a dev server). The task runs until you quit fyrer. Cannot be combined with cache.
boolean
default:"false"
Marks a task that restarts when watched inputs change. Cannot be combined with cache. Note: file-watching is not yet implemented; this flag is reserved for a future release.
string
Kill the task after this duration (e.g., 30s, 2m). Must be greater than zero.
string
Working directory for the command, relative to the package root. Must exist inside the package root.
map<string, string>
Per-task environment variables. Highest precedence of all env sources.
string
Per-task .env file path, relative to the package root.

Full task example

Validation rules

  • cmd must not be empty.
  • timeout must be greater than zero if specified.
  • cwd must be relative and must exist inside the package root.
  • inputs, outputs, and ignore must be valid glob patterns.
  • cache cannot be combined with persistent or watch — a cached task must be finite and non-restarting.
  • env_file must be relative and must exist at the time fyrer starts.