JSON schema (fur.v1)
Every fur command supports --json. The envelope is versioned (fur.v1) and stable: branch on schema, then action, then act on the typed payload.
Envelope
json
{
"schema": "fur.v1",
"action": "<action-name>"
}Automation rules
- Always branch on
schema. - Then branch on
actionfor command semantics. - Treat missing optional fields as absent, not as an error.
- Assume additional fields can be added without breaking you (forward-compat).
High-use action families
- package —
install,remove,search,info,list,update,upgrade,gc. - system —
system-rebuild,system-rollback,system-gc,system-doctor,system-repair,system-status. - service / logging —
service,logs,logs-web. - compatibility / control —
apt,mcp,flatpak-*.
Global flags that affect output
--json— structured output; suppresses human-oriented step/warn/ok chatter.--dry-run— preview path only; should not mutate state.--quiet— suppress branded UI output.
Exit codes
Non-zero exit codes always indicate command failure or unsupported conditions. JSON consumers should still check the exit status, not just ok: true.