--- title: "CLI Reference" description: "Fabro command-line interface reference" --- ## Global options These flags apply to all subcommands: | Flag | Description | |---|---| | `--json` | Output machine-readable JSON when the command supports it | | `--debug` | Enable DEBUG-level logging (default is INFO) | | `--no-upgrade-check` | Skip the automatic background upgrade check | | `--quiet` | Suppress non-essential output | | `--verbose` | Enable verbose output | | `-h, --help` | Print help | | `-V, --version` | Print version | Connection-target flags like `--storage-dir` and `--server` are command-specific, not global. Fabro no longer auto-loads `~/.fabro/.env`; persist server-owned credentials with `fabro provider login` / `fabro secret set`, or provide environment variables in the invoking shell. ## Configuration CLI defaults can be set in `~/.fabro/settings.toml` so you don't have to pass common flags every time: ```toml title="settings.toml" _version = 1 [cli.exec.model] provider = "anthropic" name = "claude-opus-4-6" [cli.exec.agent] permissions = "read-write" [cli.output] format = "text" [run.model] name = "claude-sonnet-4-5" [cli.target] type = "http" url = "https://fabro.example.com:3000/api/v1" ``` `[cli.exec]` config applies to `fabro exec`. `[run.model]` sets the default workflow model/provider for commands like `fabro run` and `fabro preflight`. `[cli.target]` stores connection info for commands that can target a remote Fabro server. `fabro model` uses `[cli.target]` by default when no explicit `--storage-dir` is passed. `fabro exec` remains a local session unless you pass `--server`, even if `[cli.target]` is configured. CLI flags always override `settings.toml` values, which override hardcoded defaults. --- ## `fabro settings` Print the merged resolved configuration as YAML. ```bash fabro settings fabro settings demo fabro settings run.toml ``` With no argument, Fabro prints the merged ambient defaults from `~/.fabro/settings.toml` and the nearest `.fabro/project.toml`. When you pass a workflow name or path: - If it resolves to a `.toml` run config, Fabro overlays that run config on top of the ambient defaults before printing. - If it resolves to a `.fabro` graph file, Fabro prints the ambient defaults unchanged. | Argument | Description | |---|---| | `[WORKFLOW]` | Optional workflow name, `.fabro` workflow path, or `.toml` run config path | --- ## `fabro run` Launch a workflow from a `.fabro` workflow file or `.toml` task config. ```bash fabro run fabro run run.toml ``` | Argument / Flag | Description | |---|---| | `` | Path to a `.fabro` workflow file, `.toml` task config, or workflow name (resolved from `.fabro/workflows/` in the project, then `~/.fabro/workflows/`). | | `--dry-run` | Execute with a simulated LLM backend | | `--auto-approve` | Auto-approve all human gates | | `--model ` | Override default LLM model | | `--provider ` | Override default LLM provider | | `-v, --verbose` | Enable verbose output | | `--sandbox ` | Sandbox for agent tools: `local`, `docker`, or `daytona` | | `--label ` | Attach a label to this run (repeatable) | | `--goal ` | Override the workflow goal (available as `{{ goal }}` in prompts) | | `--goal-file ` | Read the goal from a file instead of inline text | | `--no-retro` | Skip retro generation after the run | | `--preserve-sandbox` | Keep the sandbox alive after the run finishes (for debugging) | | `-d, --detach` | Fork the workflow as a background process and print the run ID. Reconnect later with `fabro logs -f`. | ## `fabro preflight` Validate run configuration (sandbox, LLM providers, GitHub tokens) without executing the workflow. ```bash fabro preflight fabro preflight run.toml ``` | Argument / Flag | Description | |---|---| | `` | Path to a `.fabro` workflow file, `.toml` task config, or workflow name. | | `--goal ` | Override the workflow goal (available as `{{ goal }}` in prompts) | | `--goal-file ` | Read the goal from a file instead of inline text | | `--model ` | Override default LLM model | | `--provider ` | Override default LLM provider | | `-v, --verbose` | Enable verbose output | | `--sandbox ` | Sandbox for agent tools: `local`, `docker`, or `daytona` | ## `fabro resume` Resume an interrupted workflow run from its last checkpoint. The run is looked up by ID prefix and uses the configuration persisted at create time — no runtime overrides are accepted. ```bash fabro resume fabro resume --detach ``` | Argument / Flag | Description | |---|---| | `` | Run ID or unambiguous prefix | | `-d, --detach` | Run in the background and print the run ID | ## `fabro wait` Block until a workflow run reaches a terminal state and exit with a code reflecting the outcome — analogous to `docker wait`. Exits 0 on success, 1 on failure or dead. ```bash fabro wait fabro wait abc123 --timeout 300 fabro wait my-workflow --json ``` | Argument / Flag | Description | |---|---| | `` | Run ID prefix or workflow name (most recent run) | | `--timeout ` | Maximum time to wait in seconds | | `--interval ` | Poll interval in milliseconds (default: 1000) | | `--json` | Output the conclusion as JSON | ## `fabro create` Allocate a run directory and persist a run spec without starting execution. Pair with `fabro start` and `fabro attach` for composable automation. ```bash fabro create --goal "Implement feature X" ``` Accepts the same arguments and flags as [`fabro run`](#fabro-run). ## `fabro start` Start a previously created run by spawning the detached engine process. ```bash fabro start ``` | Argument | Description | |---|---| | `` | Run ID prefix or workflow name | ## `fabro attach` Attach to a running or finished workflow run. Tails progress with live rendering and handles human-in-the-loop interactions (interviews, steering). ```bash fabro attach ``` | Argument | Description | |---|---| | `` | Run ID prefix or workflow name | ## `fabro ps` List workflow runs. By default, shows only active (running) runs — similar to `docker ps`. Use `-a` to include completed runs. ```bash fabro ps # active runs only fabro ps -a # all runs including completed fabro ps --workflow deploy --label env=prod fabro ps --json fabro ps -q # run IDs only, one per line fabro ps -qa # all run IDs ``` The table shows run ID, status, workflow name, goal, and timing. | Flag | Description | |---|---| | `-a, --all` | Show all runs, not just active ones | | `--before ` | Only show runs started before this date (YYYY-MM-DD prefix match) | | `--workflow ` | Filter by workflow name (substring match) | | `--label ` | Filter by label (repeatable, AND semantics) | | `--orphans` | Include orphan directories (no matching durable run) | | `--json` | Output as JSON | | `-q, --quiet` | Only display full run IDs, one per line (no headers or footers). Takes precedence over `--json`. | ## `fabro rm` Remove one or more workflow runs by ID or workflow name. Cleans up both the run directory and any associated sandbox. ```bash fabro rm ... fabro rm abc123 fabro rm my-workflow --force ``` | Argument / Flag | Description | |---|---| | `...` | Run IDs or workflow names to remove (required, repeatable) | | `-f, --force` | Force removal of active runs | ## `fabro system info` Show server runtime information including version, uptime, and run counts. ```bash fabro system info fabro system info --json ``` ## `fabro system events` Stream run events from the server in real time. ```bash fabro system events fabro system events --run-id abc123 ``` | Flag | Description | |---|---| | `--run-id ` | Filter by run ID (repeatable) | ## `fabro system prune` Delete old workflow runs. Dry-run by default — pass `--yes` to actually delete. ```bash fabro system prune --before 2026-01-01 fabro system prune --older-than 7d --yes fabro system prune --orphans --yes ``` | Flag | Description | |---|---| | `--before ` | Only prune runs started before this date (YYYY-MM-DD prefix match) | | `--older-than ` | Only prune runs older than this duration (e.g. `24h`, `7d`). Default when no explicit filters are set: `24h` | | `--workflow ` | Filter by workflow name (substring match) | | `--label ` | Filter by label (repeatable, AND semantics) | | `--orphans` | Include orphan directories (no matching durable run) | | `--yes` | Actually delete (default is dry-run) | --- ## `fabro exec` Run an agentic coding session. The agent operates in the current directory using file, search, and shell tools. ```bash fabro exec "Add input validation to the signup form" fabro exec "Fix the failing test" --provider openai --model gpt-5.2-codex fabro exec "Refactor the auth module" --permissions full --auto-approve ``` | Argument / Flag | Description | Default | |---|---|---| | `` | Task prompt (required) | — | | `--provider ` | LLM provider | Auto-detected from configured API keys (see [default models](/core-concepts/models#default-models)) | | `--model ` | Model name | Per provider (see below) | | `--permissions ` | Permission level: `read-only`, `read-write`, or `full` | `read-write` | | `--auto-approve` | Skip interactive prompts; deny tools outside permission level | — | | `--debug` | Print LLM request/response debug info to stderr | — | | `--verbose` | Print full LLM request/response JSON to stderr | — | | `--skills-dir ` | Directory containing skill files (overrides default discovery) | — | | `--output-format ` | Output format: `text` (human-readable) or `json` (NDJSON event stream) | `text` | Permission levels control which tools are auto-approved: `read-only` allows read tools (`read_file`, `grep`, `glob`, `list_dir`) and subagent tools; `read-write` adds write tools (`write_file`, `edit_file`, `apply_patch`); `full` allows all tools including shell commands. Tools outside the permission level are either interactively prompted (if a TTY is present) or denied (with `--auto-approve`). See [default models by provider](/core-concepts/models#default-models). --- ## `fabro model list` List available LLM models from the built-in catalog. Running `fabro model` with no subcommand also lists models. ```bash fabro model list fabro model list -p anthropic fabro model list -q sonnet fabro model list --server http://localhost:3000/api/v1 ``` | Flag | Description | |---|---| | `-p, --provider ` | Filter by provider | | `-q, --query ` | Search for models matching this string (checks ID, display name, and aliases) | ## `fabro model test` Test model availability by sending a simple prompt to each model and reporting the result. ```bash fabro model test fabro model test -p anthropic fabro model test -m claude-sonnet-4-5 ``` | Flag | Description | |---|---| | `-p, --provider ` | Filter by provider | | `-m, --model ` | Test a specific model | | `--deep` | Run a multi-turn tool-use test that validates the full agent loop (tool calls, reasoning round-trips) instead of a single-turn completion | --- ## `fabro server start` Start the Fabro server daemon. By default, the server launches as a background process listening on a Unix socket. Use `--foreground` for the previous blocking behavior. ```bash fabro server start # background daemon on Unix socket fabro server start --bind 127.0.0.1 # TCP on 32276, or random port if 32276 is busy fabro server start --bind 127.0.0.1:8080 # TCP on a specific port fabro server start --no-web # API and /health only fabro server start --foreground # blocking foreground mode fabro server start --sandbox daytona --max-concurrent-runs 4 ``` | Flag | Description | Default | |---|---|---| | `--bind ` | Address to bind: `IP` or `IP:port` for TCP, or a path for Unix socket | `~/.fabro/fabro.sock` | | `--web` | Enable the embedded web UI, browser auth routes, and web-only helper endpoints | Enabled | | `--no-web` | Disable the embedded web UI, browser auth routes, and web-only helper endpoints | Disabled | | `--foreground` | Run in the foreground instead of daemonizing | — | | `--model ` | Override default LLM model | — | | `--provider ` | Override default LLM provider | — | | `--dry-run` | Execute with simulated LLM backend | — | | `--sandbox ` | Sandbox for agent tools: `local`, `docker`, or `daytona` | — | | `--max-concurrent-runs ` | Maximum number of concurrent run executions | — | | `--config ` | Path to server config file | `~/.fabro/settings.toml` | Demo mode is per-request: send the `X-Fabro-Demo: 1` header to get static demo data with auth disabled. When `--no-web` is set, the server still exposes the machine API under `/api/v1` and `/health`, but it returns `404` for `/`, `/auth/*`, SPA client routes, and the web-only helper endpoints under `/api/v1`. ## `fabro server stop` Stop the running server daemon. Sends SIGTERM and waits for graceful shutdown, escalating to SIGKILL after the timeout. ```bash fabro server stop fabro server stop --timeout 30 ``` | Flag | Description | Default | |---|---|---| | `--timeout ` | Seconds to wait for graceful shutdown before SIGKILL | `10` | ## `fabro server status` Show whether the server daemon is running, along with PID, bind address, and uptime. ```bash fabro server status fabro server status --json ``` | Flag | Description | |---|---| | `--json` | Output as JSON | --- ## `fabro sandbox cp` Copy files between a run's sandbox and the local filesystem. The run must have a persisted sandbox record (Daytona or a preserved local/Docker sandbox). ```bash fabro sandbox cp :/path/in/sandbox ./local-dir # download fabro sandbox cp ./local-file :/path/in/sandbox # upload fabro sandbox cp -r :/output ./results # recursive download ``` | Argument / Flag | Description | |---|---| | `` | Source: `:` for sandbox, or a local path | | `` | Destination: `:` for sandbox, or a local path | | `-r, --recursive` | Recurse into directories | Run IDs support prefix matching — you can use the first few characters instead of the full ID. ## `fabro pr` Manage GitHub pull requests created by workflow runs. Requires GitHub access to be configured via the default `gh_cli` strategy or a [GitHub App](/integrations/github). ### `fabro pr create` Create a GitHub pull request from a completed workflow run. Uses the run's persisted run record, conclusion, and diff. ```bash fabro pr create fabro pr create --model claude-opus-4-6 fabro pr create --force ``` | Argument / Flag | Description | |---|---| | `` | Run ID or prefix (required) | | `--model ` | LLM model for generating the PR description | | `-f, --force` | Create PR even if the run status is not success or partial success | The run must have completed successfully (or with partial success) and have a stored diff with changes. Use `--force` to override the status check. ### `fabro pr list` List all pull requests created by workflow runs. Shows PR number, title, status, and the associated run ID. ```bash fabro pr list fabro pr list --all ``` | Flag | Description | |---|---| | `--all` | Include closed and merged PRs (default: open only) | ### `fabro pr view` Show details of a pull request from a specific run. ```bash fabro pr view ``` | Argument | Description | |---|---| | `` | Run ID or prefix (required) | ### `fabro pr merge` Merge a pull request from a specific run. ```bash fabro pr merge fabro pr merge --method rebase ``` | Argument / Flag | Description | |---|---| | `` | Run ID or prefix (required) | | `--method ` | Merge method: `squash` (default), `merge`, or `rebase` | ### `fabro pr close` Close a pull request from a specific run without merging. ```bash fabro pr close ``` | Argument | Description | |---|---| | `` | Run ID or prefix (required) | --- ## `fabro system df` Show disk usage of Fabro's data directory, including run logs, worktrees, server logs, and databases. ```bash fabro system df fabro system df -v ``` | Flag | Description | |---|---| | `-v, --verbose` | Show per-run breakdown | ## `fabro graph` Render a workflow graph as SVG or PNG. Requires [Graphviz](https://graphviz.org) (`dot`) to be installed. SVG output includes styled defaults (teal node strokes, clean typography, transparent background) and automatic dark mode support via `prefers-color-scheme` media queries. ```bash fabro graph workflow.fabro fabro graph workflow.fabro --format png -o diagram.png fabro graph run.toml --format svg ``` | Argument / Flag | Description | |---|---| | `` | Path to a `.fabro` workflow file or `.toml` run config (required) | | `--format ` | Output format: `svg` (default) or `png` | | `-o, --output ` | Output file path. Defaults to stdout. | | `-d, --direction ` | Graph direction: `lr` or `tb`. If omitted, uses the Graphviz file's own `rankdir`. | ## `fabro rewind` Rewind a workflow run to an earlier checkpoint. This resets both the run branch and metadata branch refs so that `fabro resume` continues from the target checkpoint. ```bash fabro rewind [TARGET] fabro rewind --list ``` | Argument / Flag | Description | |---|---| | `` | Run ID or unambiguous prefix (required) | | `[TARGET]` | Checkpoint to rewind to: node name, `node@visit`, or `@ordinal` (1-based). Omit to show the timeline. | | `--list` | Show the checkpoint timeline instead of rewinding | | `--no-push` | Skip force-pushing rewound refs to the remote | Target formats: | Format | Example | Meaning | |---|---|---| | `node` | `plan` | Most recent visit of the named node | | `node@N` | `plan@2` | The 2nd visit of the named node | | `@N` | `@3` | The 3rd checkpoint in sequence | After rewinding, resume from the earlier point: ```bash fabro resume ``` See [Checkpoints](/execution/checkpoints#rewinding-to-an-earlier-checkpoint) for background on how checkpointing works. ## `fabro fork` Fork a new run from an existing run's checkpoint. Unlike `fabro rewind`, which resets the original run in place, `fabro fork` creates an independent copy — the original run stays intact. ```bash fabro fork [TARGET] fabro fork --list ``` | Argument / Flag | Description | |---|---| | `` | Run ID or unambiguous prefix (required) | | `[TARGET]` | Checkpoint to fork from: node name, `node@visit`, or `@ordinal` (1-based). Omit to fork from the latest checkpoint. | | `--list` | Show the checkpoint timeline instead of forking | | `--no-push` | Skip pushing new branches to the remote | Target formats are the same as [`fabro rewind`](#fabro-rewind). After forking, resume the new run: ```bash fabro resume ``` See [Checkpoints — Forking a run](/execution/checkpoints#forking-a-run) for when to use fork vs. rewind. ## `fabro logs` View the event log of a workflow run. Runs can be referenced by ID prefix or workflow name (uses the most recent run). ```bash fabro logs my-workflow fabro logs abc123 --pretty fabro logs -f my-workflow -p ``` | Argument / Flag | Description | |---|---| | `` | Run ID prefix or workflow name (required) | | `-f, --follow` | Follow log output in real time | | `-p, --pretty` | Formatted colored output with rendered assistant messages and tool calls | | `--since ` | Show logs since a timestamp or relative duration (e.g. `42m`, `2h`, `2026-01-02T13:00:00Z`) | | `-n, --tail ` | Show only the last N lines | ## `fabro inspect` Show detailed JSON data for a workflow run, including its run record, start record, conclusion, checkpoint, and sandbox record. ```bash fabro inspect fabro inspect abc123 ``` | Argument | Description | |---|---| | `` | Run ID prefix or workflow name (required) | ## `fabro workflow list` List all available workflows in the current project. Shows workflows from both the project directory and user-level `~/.fabro/workflows/`, grouped by source with descriptions pulled from each workflow's goal. ```bash fabro workflow list ``` ## `fabro workflow create` Scaffold a new workflow in the project's workflows directory. Creates a `workflow.fabro` graph file and a `workflow.toml` run config. ```bash fabro workflow create my-workflow fabro workflow create my-workflow --goal "Run the CI pipeline" ``` | Argument / Flag | Description | |---|---| | `` | Name of the workflow (required) | | `-g, --goal ` | Goal description for the workflow | Requires a `.fabro/project.toml` project config in the current directory or a parent. --- ## `fabro validate` Validate a workflow file without executing it. Reports errors and warnings. Accepts both `.fabro` workflow files and `.toml` run configs. ```bash fabro validate workflow.fabro fabro validate run.toml ``` | Argument | Description | |---|---| | `` | Path to a `.fabro` workflow file or `.toml` run config (required) | ## `fabro parse` Parse a Graphviz file and print its AST as JSON. Useful for debugging workflow definitions. ```bash fabro parse workflow.fabro ``` | Argument | Description | |---|---| | `` | Path to the `.fabro` workflow file (required) | --- ## `fabro repo init` Initialize a new Fabro project in the current git repository. Creates a `.fabro/project.toml` project config and a sample `hello` workflow. ```bash fabro repo init ``` The command must be run inside a git repository. It creates: - `.fabro/project.toml` — project configuration with comments and a link to docs - `.fabro/workflows/hello/workflow.fabro` — a simple greeting workflow - `.fabro/workflows/hello/workflow.toml` — run config for the hello workflow After creating files, it checks whether GitHub access is available for the repository. In GitHub App mode, if the app is not installed and the repository owner differs from the app owner, it warns that the app may need to be [made public](/integrations/github#github-app-is-private-but-this-repo-belongs-to-a-different-owner) first. ## `fabro repo deinit` Remove Fabro from a project by deleting the `.fabro/` project directory. Fails with an error if the project is not initialized. ```bash fabro repo deinit ``` ## `fabro diff` Show the diff from a workflow run. Reads the stored diff for completed runs. ```bash fabro diff fabro diff --node work ``` | Argument / Flag | Description | |---|---| | `` | Run ID or prefix (required) | | `--node ` | Show diff for a specific node instead of the full run | Output is colorized when writing to a terminal. ## `fabro sandbox ssh` SSH into a Daytona sandbox from a completed or in-progress run. Creates temporary SSH credentials and connects directly, or prints the command with `--print`. ```bash fabro sandbox ssh fabro sandbox ssh --print fabro sandbox ssh --ttl 120 ``` | Argument / Flag | Description | |---|---| | `` | Run ID or prefix (required) | | `--ttl ` | SSH credential expiry in minutes (default: 60) | | `--print` | Print the SSH command instead of connecting | See [SSH Access](/human-tools/ssh-access) for more details on SSH workflows. ## `fabro sandbox preview` Generate a preview URL for a port exposed by a Daytona sandbox. Useful for accessing web servers, dev tools, or APIs running inside the sandbox. ```bash fabro sandbox preview fabro sandbox preview 3000 --signed fabro sandbox preview 3000 --open ``` | Argument / Flag | Description | |---|---| | `` | Run ID or prefix (required) | | `` | Port number to preview (required) | | `--signed` | Generate a signed URL (self-contained, no headers needed) | | `--ttl ` | Signed URL expiry in seconds (default: 3600, requires `--signed`) | | `--open` | Open the URL in a browser (implies `--signed`) | Without `--signed`, the command prints the URL, token, and a `curl` example. See [Preview](/human-tools/preview) for more details. --- ## `fabro doctor` Check environment and integration health. `fabro doctor` always performs live server-backed diagnostics and keeps only local user-config and legacy `.env` checks on the CLI side. ```bash fabro doctor fabro doctor -v fabro doctor --server https://fabro.example.com:3000/api/v1 ``` | Flag | Description | |---|---| | `-v, --verbose` | Show detailed information for each check | ## `fabro upgrade` Download and install a newer version of Fabro from GitHub releases. Verifies the download with SHA256 checksums and atomically replaces the binary. ```bash fabro upgrade fabro upgrade --dry-run fabro upgrade --version 0.6.0 ``` | Flag | Description | |---|---| | `--version ` | Target version (e.g. `0.5.0` or `v0.5.0`). Defaults to the latest release. | | `--force` | Upgrade even if already on the target version | | `--dry-run` | Preview what would happen without making changes | Fabro refuses to downgrade unless you specify an explicit `--version`. A daily background check notifies you when a new version is available — disable it with `upgrade_check = false` in [`settings.toml`](/reference/user-configuration#upgrade_check) or the `--no-upgrade-check` global flag. ## `fabro artifact list` List artifacts (screenshots, test reports, traces) collected from a workflow run. ```bash fabro artifact list fabro artifact list --node verify --json fabro artifact list --node verify --retry 2 ``` | Argument / Flag | Description | |---|---| | `` | Run ID or unambiguous prefix (required) | | `--node ` | Filter to assets from a specific node | | `--retry ` | Filter to assets from a specific retry attempt | | `--json` | Output as JSON | ## `fabro artifact cp` Copy artifacts from a workflow run to the local filesystem. ```bash fabro artifact cp ./output # all assets, flat fabro artifact cp ./output --tree # preserve directory structure fabro artifact cp :report.html ./output # specific file fabro artifact cp :report.html ./output --node verify --retry 2 ``` | Argument / Flag | Description | |---|---| | `` | `RUN_ID` (all assets) or `RUN_ID:path` (specific file) | | `[DEST]` | Destination directory (defaults to `.`) | | `--node ` | Filter to assets from a specific node | | `--retry ` | Filter to assets from a specific retry attempt | | `--tree` | Preserve `\{node\}/\{retry\}/` directory structure | When copying all assets in flat mode, filenames must be unique across nodes and retries. Use `--tree`, `--node`, or `--retry` to disambiguate. ## `fabro provider login` Re-authenticate with an LLM provider without re-running the full install wizard. Useful when tokens expire or when switching accounts. ```bash fabro provider login --provider openai fabro provider login --provider anthropic ``` | Flag | Description | |---|---| | `--provider ` | LLM provider to authenticate with (required) | For OpenAI, this launches a browser-based OAuth PKCE flow with an automatic fallback to manual API key entry. All other providers prompt for an API key with validation. Credentials are saved to the connected Fabro server's secret store. ## `fabro install` Interactive setup wizard that walks you through configuring API keys and validating your environment. Runs `fabro doctor` with live probes after setup to validate the configuration. ```bash fabro install fabro install --web-url https://fabro.example.com ``` | Flag | Description | Default | |---|---|---| | `--web-url ` | Web UI base URL for OAuth callback endpoints | `http://localhost:3000` | When configuring a GitHub App, the wizard detects your GitHub organizations (via the `gh` CLI) and lets you choose whether to register the app under your personal account or an organization. ## `fabro uninstall` Remove Fabro's local state, server data, and configuration files. Stops the server if it is running, removes the data directory, cleans up shell PATH entries, and optionally removes the binary. ```bash fabro uninstall fabro uninstall --yes ``` | Flag | Description | |---|---| | `--yes` | Skip confirmation prompt | --- ## `fabro secret set` Store or update a server-owned secret on the connected Fabro server. ```bash fabro secret set ANTHROPIC_API_KEY sk-ant-... ``` | Argument | Description | |---|---| | `` | Name of the secret (required) | | `` | Value to store (required) | ## `fabro secret list` List server-owned secrets with their name, type, and last-updated timestamp. Values are never returned after storage. ```bash fabro secret list fabro secret list --json ``` ## `fabro secret rm` Remove a server-owned secret from the connected Fabro server. ```bash fabro secret rm ANTHROPIC_API_KEY ``` | Argument | Description | |---|---| | `` | Name of the secret to remove (required) | --- ## `fabro store dump` Export the contents of a run's store-backed state to a directory for debugging and inspection. ```bash fabro store dump fabro store dump abc123 -o ./debug-output ``` | Argument / Flag | Description | |---|---| | `` | Run ID prefix or workflow name | | `-o, --output ` | Output directory (must not exist or be empty) | --- ## `fabro completion` Generate shell completion scripts for bash, zsh, fish, elvish, and PowerShell. ```bash fabro completion bash fabro completion zsh fabro completion fish ``` | Argument | Description | |---|---| | `` | Shell to generate completions for: `bash`, `zsh`, `fish`, `elvish`, `powershell` (required) | See [Shell Completions](/reference/shell-completions) for installation instructions for each shell. --- ## `fabro docs` Open the Fabro documentation website in your default browser. ```bash fabro docs ``` ## `fabro discord` Open the Fabro Discord community invite in your default browser. ```bash fabro discord ```