v4.1.0Home

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 action for 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

  • packageinstall, remove, search, info, list, update, upgrade, gc.
  • systemsystem-rebuild, system-rollback, system-gc, system-doctor, system-repair, system-status.
  • service / loggingservice, logs, logs-web.
  • compatibility / controlapt, 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.