.riterc config
rite reads its own user-config file, separate from any Ritefile. It controls CLI defaults (verbose, silent, failfast, concurrency, etc.) and enables experiments. The file is entirely optional — rite works without one.
The name is deliberately rite-specific so it can coexist with go-task's .taskrc.yml in the same tree without either tool reading the other's config. See the migration guide for how to port a .taskrc.yml to .riterc.yml.
File discovery
rite loads config from three tiers and merges them. Later tiers win on per-key conflict (project beats home beats XDG):
- XDG global —
$XDG_CONFIG_HOME/rite/riterc.ymlor$XDG_CONFIG_HOME/rite/riterc.yaml. Only read when$XDG_CONFIG_HOMEis set. - Home global —
$HOME/.riterc.ymlor$HOME/.riterc.yaml. Skipped when the project is already inside$HOME(the walk in step 3 will find it anyway). - Project walk — starting from the current working directory, rite walks upward looking for
.riterc.yml/.riterc.yaml. Every file found along the way is merged, with the closest (deepest) file winning.
The walk stops at the filesystem root; you can set project-wide defaults in a repo-root .riterc.yml and a developer-local override in a subdirectory if you want.
Only the file names differ from go-task. Config keys below are
verbose,silent, etc. — same spelling as.taskrc.yml. A working.taskrc.ymlrenamed to.riterc.ymlgenerally "just works" (remove anyremote:block — rite doesn't support remote Ritefiles).
Keys
version
- Type:
string(semver) - Description: Pin the config file to a specific rite version range. Currently advisory only — rite does not error on mismatch. Reserved for future schema evolution.
version: '1'verbose
- Type:
bool - Default:
false - Description: Print extra diagnostic output during task execution. Equivalent to passing
-v/--verboseon every invocation. TheRITE_VERBOSEenv var and the CLI flag take precedence.
verbose: truesilent
- Type:
bool - Default:
false - Description: Suppress command echo and task headers globally. Equivalent to passing
-s/--silent. CLI flag overrides. Task-levelsilent:still applies on top.
silent: truecolor
- Type:
bool - Default: auto-detect (disabled when
NO_COLORis set, enabled when stdout is a TTY, etc.) - Description: Force color output on or off. Equivalent to the
-c/--color=falseflag and theRITE_COLORenv var.NO_COLOR(universal) andFORCE_COLOR(universal) still win over this setting.
color: falsedisable-fuzzy
- Type:
bool - Default:
false - Description: Disable fuzzy matching on task names. With fuzzy matching on (the default),
rite bldwill offer to runbuildif there's no exact match. Setting this totruemakes rite fail loud on typos instead. Equivalent to--disable-fuzzy.
disable-fuzzy: trueconcurrency
- Type:
int - Default:
0(unlimited — parallel tasks all run at once) - Description: Cap the number of tasks running in parallel. Applies to
deps:and task-level parallel execution. Equivalent to the-C/--concurrency Nflag.
concurrency: 4interactive
- Type:
bool - Default:
false - Description: Mark every task as interactive (forcing serial execution and TTY attachment). Usually you want per-task
interactive: trueinstead — see Interactive cmds. Equivalent to--interactive.
interactive: truefailfast
- Type:
bool - Default:
false - Description: When any parallel
for:iteration fails, cancel the rest immediately instead of letting them finish. Equivalent to the-F/--failfastflag.
failfast: trueexperiments
- Type:
map[string]int - Description: Opt into named experiments by version number. The value is the experiment version the config is written against — if the running rite doesn't support that version, it errors loudly rather than silently fall back.
- Available experiments:
GENTLE_FORCE(version1) — soften the behavior of--force.
Experiments can also be toggled via RITE_X_<NAME> env vars, which win over config-file values.
experiments:
GENTLE_FORCE: 1Complete example
# .riterc.yml
version: '1'
verbose: false
silent: false
color: true
disable-fuzzy: false
concurrency: 8
failfast: true
interactive: false
experiments:
GENTLE_FORCE: 1Precedence with the CLI and env
Config-file values are the lowest-precedence layer. The full order for any given key is:
- CLI flag (highest)
RITE_<KEY>env var (e.g.RITE_VERBOSE=1)- Project
.riterc.yml(deepest in the walk wins) - Home
$HOME/.riterc.yml - XDG
$XDG_CONFIG_HOME/rite/riterc.yml(lowest)
This matches rite's overall first-in-wins model for Ritefile variables — see precedence for the Ritefile-side rules.