Skip to main content

Global options

These flags apply to all subcommands:
FlagDescription
--jsonOutput machine-readable JSON when the command supports it
--debugEnable DEBUG-level logging (default is INFO)
--no-upgrade-checkSkip the automatic background upgrade check
--quietSuppress non-essential output
--verboseEnable verbose output
-h, --helpPrint help
-V, --versionPrint 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:
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/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. Explicit http(s)://... targets are always treated as remote servers. They do not inherit identity from a local daemon, a local storage dir, or ~/.fabro/dev-token. For remote URLs, use fabro auth login --server ... or a stored CLI auth session. CLI flags always override settings.toml values, which override hardcoded defaults.

fabro

fabro [OPTIONS] [COMMAND]

Subcommands

CommandDescription
fabro approveApprove pending workflow runs
fabro archiveMark terminal runs as archived (reviewed, no further action needed). Archived runs are hidden from default listings
fabro artifactInspect and copy run artifacts (screenshots, reports, traces)
fabro askAsk Fabro a read-only question about a run
fabro attachAttach to a running or finished workflow run
fabro authManage CLI authentication state
fabro completionGenerate shell completions
fabro createCreate a workflow run (allocate run dir, persist spec)
fabro denyDeny pending workflow runs
fabro discordOpen the Discord community in the browser
fabro docsOpen the docs website in the browser
fabro doctorCheck environment and integration health
fabro dumpExport a run’s durable state to a directory
fabro eventsView the event log of a workflow run
fabro forkFork a workflow run from an earlier checkpoint into a new run
fabro graphRender a workflow graph as SVG
fabro inspectShow detailed information about a workflow run
fabro installSet up the Fabro environment (LLMs, certs, GitHub)
fabro logsView the raw worker tracing log of a workflow run
fabro mcpModel Context Protocol server
fabro modelList and test LLM models
fabro parentManage run parent links
fabro prPull request operations
fabro preflightValidate run configuration without executing
fabro providerProvider operations
fabro repoRepository commands
fabro resumeResume an interrupted workflow run
fabro rewindRewind a workflow run to an earlier checkpoint
fabro rmRemove one or more workflow runs
fabro runLaunch a workflow run
fabro sandboxSandbox operations (cp, ssh, preview)
fabro secretManage server-owned secrets
fabro serverServer operations
fabro settingsInspect effective settings
fabro startStart a created workflow run on the server
fabro steerSteer a running agent mid-execution
fabro systemSystem maintenance commands
fabro unarchiveRestore archived runs to their prior terminal status
fabro uninstallUninstall Fabro from this machine
fabro upgradeUpgrade fabro to the latest version
fabro validateValidate a workflow
fabro variableManage server-owned variables
fabro versionShow client and server version information
fabro waitBlock until a workflow run completes
fabro workflowWorkflow operations

fabro approve

Approve pending workflow runs
fabro approve [OPTIONS] <RUNS>...

Arguments

NameDescription
RUNSRun IDs or workflow names to approve

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro archive

Mark terminal runs as archived (reviewed, no further action needed). Archived runs are hidden from default listings
fabro archive [OPTIONS] <RUNS>...

Arguments

NameDescription
RUNSRun IDs or workflow names to archive

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro artifact

Inspect and copy run artifacts (screenshots, reports, traces)
fabro artifact [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro artifact cpCopy artifacts from a workflow run
fabro artifact listList artifacts for a workflow run

fabro artifact cp

Copy artifacts from a workflow run
fabro artifact cp [OPTIONS] <SOURCE> [DEST]

Arguments

NameDescription
SOURCESource: RUN_ID (all artifacts) or RUN_ID:path (specific artifact)
DESTDestination directory (defaults to current directory)
Default: .

Options

OptionDescription
--node <node>Filter to artifacts from a specific node
--retry <retry>Filter to artifacts from a specific retry attempt
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--treePreserve /retry_/ directory structure

fabro artifact list

List artifacts for a workflow run
fabro artifact list [OPTIONS] <RUN_ID>

Arguments

NameDescription
RUN_IDRun ID (or prefix)

Options

OptionDescription
--node <node>Filter to artifacts from a specific node
--retry <retry>Filter to artifacts from a specific retry attempt
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro ask

Ask Fabro a read-only question about a run
fabro ask [OPTIONS] --prompt <PROMPT> <RUN>

Arguments

NameDescription
RUNRun ID prefix or workflow name

Options

OptionDescription
--model <model>Optional model name
-p, --prompt <prompt>Question to ask
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro attach

Attach to a running or finished workflow run
fabro attach [OPTIONS] <RUN>

Arguments

NameDescription
RUNRun ID prefix or workflow name

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro auth

Manage CLI authentication state
fabro auth [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro auth loginLog in to a Fabro server
fabro auth logoutLog out from a Fabro server
fabro auth statusShow offline CLI auth status

fabro auth login

Log in to a Fabro server
fabro auth login [OPTIONS]

Options

OptionDescription
--dev-token <dev_token>Log in with a dev-token instead of browser OAuth
--no-browserPrint the browser URL instead of opening it automatically
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--timeout <timeout>Timeout in seconds waiting for the browser flow to complete
Default: 300

fabro auth logout

Log out from a Fabro server
fabro auth logout [OPTIONS]

Options

OptionDescription
--allLog out from every stored server
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro auth status

Show offline CLI auth status
fabro auth status [OPTIONS]

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro completion

Generate shell completions
fabro completion [OPTIONS] <SHELL>

Arguments

NameDescription
SHELLShell to generate completions for
Values: bash, elvish, fish, powershell, zsh

fabro create

Create a workflow run (allocate run dir, persist spec)
fabro create [OPTIONS] <WORKFLOW>

Arguments

NameDescription
WORKFLOWPath to a .fabro workflow file or .toml task config

Options

OptionDescription
--auto-approveAuto-approve all human gates
-d, --detachRun the workflow in the background and print the run ID
--dry-runExecute with simulated LLM backend
--environment <environment>Named environment for agent tools
--goal <goal>Override the workflow goal (available as in prompts)
--goal-file <goal_file>Read the workflow goal from a file
--label <key=value>Attach a label to this run (repeatable, format: KEY=VALUE)
--model <model>Override default LLM model
--parent <run>Link this run to an existing orchestration parent run
--preserve-sandboxKeep the sandbox alive after the run finishes (for debugging)
--provider <provider>Override default LLM provider
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
-I, --input <key=value>Override a workflow input value (repeatable, format: KEY=VALUE)
-v, --verboseEnable verbose output

fabro deny

Deny pending workflow runs
fabro deny [OPTIONS] <RUNS>...

Arguments

NameDescription
RUNSRun IDs or workflow names to deny

Options

OptionDescription
--reason <reason>Reason for denying execution
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro discord

Open the Discord community in the browser
fabro discord [OPTIONS]

fabro docs

Open the docs website in the browser
fabro docs [OPTIONS]

fabro doctor

Check environment and integration health
fabro doctor [OPTIONS]

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
-v, --verboseShow detailed information for each check

fabro dump

Export a run’s durable state to a directory
fabro dump [OPTIONS] --output <OUTPUT> <RUN>

Arguments

NameDescription
RUNRun ID prefix or workflow name

Options

OptionDescription
-o, --output <output>Output directory (must not exist or be empty)
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro events

View the event log of a workflow run
fabro events [OPTIONS] <RUN>

Arguments

NameDescription
RUNRun ID prefix or workflow name (most recent run)

Options

OptionDescription
-f, --followFollow event output
-p, --prettyFormatted colored output with rendered assistant text
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--since <since>Events since timestamp or relative (e.g. “42m”, “2h”, “2026-01-02T13:00:00Z”)
-n, --tail <tail>Lines from end (default: all)

fabro fork

Fork a workflow run from an earlier checkpoint into a new run
fabro fork [OPTIONS] <RUN_ID> [TARGET]

Arguments

NameDescription
RUN_IDRun ID (or unambiguous prefix)
TARGETTarget checkpoint: node name, node@visit, or @ordinal (omit to fork from latest)

Options

OptionDescription
--listShow the checkpoint timeline instead of forking
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro graph

Render a workflow graph as SVG
fabro graph [OPTIONS] <WORKFLOW>

Arguments

NameDescription
WORKFLOWPath to the .fabro workflow file, .toml task config, or project workflow name

Options

OptionDescription
--allow-invalidRender even when workflow validation reports errors
-d, --direction <direction>Graph layout direction (overrides the DOT file’s rankdir)
Values: lr, tb
--format <format>Output format
Values: svg
Default: svg
-o, --output <output>Output file path (defaults to stdout)
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro inspect

Show detailed information about a workflow run
fabro inspect [OPTIONS] <RUN>

Arguments

NameDescription
RUNRun ID prefix or workflow name (most recent run)

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro install

Set up the Fabro environment (LLMs, certs, GitHub)
fabro install [OPTIONS] [COMMAND]

Options

OptionDescription
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)
--web-url <web_url>Base URL for the web UI (used for OAuth callback URLs and generated settings)
Default: http://127.0.0.1:32276

Subcommands

CommandDescription
fabro install githubConfigure GitHub integration (token or GitHub App)

fabro install github

Configure GitHub integration (token or GitHub App)
fabro install github [OPTIONS]

Options

OptionDescription
--owner <owner>GitHub App owner: personal or org:<slug> (app only, requires —non-interactive)
--strategy <strategy>GitHub authentication strategy (requires —non-interactive)
Values: token, app

fabro logs

View the raw worker tracing log of a workflow run
fabro logs [OPTIONS] <RUN>

Arguments

NameDescription
RUNRun ID prefix or workflow name (most recent run)

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
-n, --tail <tail>Lines from end (default: all)

fabro mcp

Model Context Protocol server
fabro mcp [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro mcp configPrint MCP client configuration JSON
fabro mcp initConfigure an MCP client to launch Fabro
fabro mcp startStart the Fabro MCP server over stdio

fabro mcp config

Print MCP client configuration JSON
fabro mcp config [OPTIONS]

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)

fabro mcp init

Configure an MCP client to launch Fabro
fabro mcp init [OPTIONS] <AGENT>

Arguments

NameDescription
AGENTValues: claude, cursor, windsurf

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)

fabro mcp start

Start the Fabro MCP server over stdio
fabro mcp start [OPTIONS]

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)

fabro model

List and test LLM models
fabro model [OPTIONS] [COMMAND]

Subcommands

CommandDescription
fabro model listList available models
fabro model testTest model availability by sending a simple prompt

fabro model list

List available models
fabro model list [OPTIONS]

Options

OptionDescription
-p, --provider <provider>Filter by provider
-q, --query <query>Search for models matching this string
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro model test

Test model availability by sending a simple prompt
fabro model test [OPTIONS]

Options

OptionDescription
--deepRun a multi-turn tool-use test (catches reasoning round-trip bugs)
-j, --jobs <jobs>Number of model tests to run concurrently in bulk mode
Default: 4
-m, --model <model>Test a specific model
-p, --provider <provider>Filter by provider
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro parent

Manage run parent links
fabro parent [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro parent linkLink or replace a run’s orchestration parent
fabro parent unlinkUnlink a run from its orchestration parent
Link or replace a run’s orchestration parent
fabro parent link [OPTIONS] <CHILD_RUN> <PARENT_RUN>

Arguments

NameDescription
CHILD_RUNChild run selector
PARENT_RUNParent run selector

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
Unlink a run from its orchestration parent
fabro parent unlink [OPTIONS] <CHILD_RUN>

Arguments

NameDescription
CHILD_RUNChild run selector

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro pr

Pull request operations
fabro pr [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro pr closeClose a pull request
fabro pr createCreate a pull request from a completed run
fabro pr linkLink or replace the GitHub pull request associated with a run
fabro pr mergeMerge a pull request
fabro pr unlinkUnlink the pull request associated with a run
fabro pr viewView pull request details

fabro pr close

Close a pull request
fabro pr close [OPTIONS] <RUN_ID>

Arguments

NameDescription
RUN_IDRun ID or prefix

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro pr create

Create a pull request from a completed run
fabro pr create [OPTIONS] <RUN_ID>

Arguments

NameDescription
RUN_IDRun ID or prefix

Options

OptionDescription
-f, --forceCreate PR even if the run status is not succeeded/partially_succeeded
--model <model>LLM model for generating PR description
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
Link or replace the GitHub pull request associated with a run
fabro pr link [OPTIONS] <RUN_ID> <URL>

Arguments

NameDescription
RUN_IDRun ID or prefix
URLGitHub pull request URL to associate with the run

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro pr merge

Merge a pull request
fabro pr merge [OPTIONS] <RUN_ID>

Arguments

NameDescription
RUN_IDRun ID or prefix

Options

OptionDescription
--method <method>Merge method: merge, squash, or rebase
Values: merge, squash, rebase
Default: squash
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
Unlink the pull request associated with a run
fabro pr unlink [OPTIONS] <RUN_ID>

Arguments

NameDescription
RUN_IDRun ID or prefix

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro pr view

View pull request details
fabro pr view [OPTIONS] <RUN_ID>

Arguments

NameDescription
RUN_IDRun ID or prefix

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro preflight

Validate run configuration without executing
fabro preflight [OPTIONS] <WORKFLOW>

Arguments

NameDescription
WORKFLOWPath to a .fabro workflow file or .toml task config

Options

OptionDescription
--environment <environment>Named environment for agent tools
--goal <goal>Override the workflow goal (available as in prompts)
--goal-file <goal_file>Read the workflow goal from a file
--model <model>Override default LLM model
--provider <provider>Override default LLM provider
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
-I, --input <key=value>Override a workflow input value (repeatable, format: KEY=VALUE)
-v, --verboseEnable verbose output

fabro provider

Provider operations
fabro provider [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro provider loginLog in to an LLM provider

fabro provider login

Log in to an LLM provider
fabro provider login [OPTIONS] --provider <PROVIDER>

Options

OptionDescription
--api-key-stdinRead an API key from stdin instead of prompting
--provider <provider>LLM provider to authenticate with
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro repo

Repository commands
fabro repo [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro repo deinitRemove .fabro/ project directory
fabro repo initInitialize a new project

fabro repo deinit

Remove .fabro/ project directory
fabro repo deinit [OPTIONS]

fabro repo init

Initialize a new project
fabro repo init [OPTIONS]

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro resume

Resume an interrupted workflow run
fabro resume [OPTIONS] <RUN>

Arguments

NameDescription
RUNRun ID or unambiguous prefix

Options

OptionDescription
-d, --detachRun in the background and print the run ID
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro rewind

Rewind a workflow run to an earlier checkpoint
fabro rewind [OPTIONS] <RUN_ID> [TARGET]

Arguments

NameDescription
RUN_IDRun ID (or unambiguous prefix)
TARGETTarget checkpoint: node name, node@visit, or @ordinal (omit with —list)

Options

OptionDescription
--listShow the checkpoint timeline instead of rewinding
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro rm

Remove one or more workflow runs
fabro rm [OPTIONS] <RUNS>...

Arguments

NameDescription
RUNSRun IDs or workflow names to remove

Options

OptionDescription
-f, --forceForce removal of active runs
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro run

Launch a workflow run
fabro run [OPTIONS] <WORKFLOW>

Arguments

NameDescription
WORKFLOWPath to a .fabro workflow file or .toml task config

Options

OptionDescription
--auto-approveAuto-approve all human gates
-d, --detachRun the workflow in the background and print the run ID
--dry-runExecute with simulated LLM backend
--environment <environment>Named environment for agent tools
--goal <goal>Override the workflow goal (available as in prompts)
--goal-file <goal_file>Read the workflow goal from a file
--label <key=value>Attach a label to this run (repeatable, format: KEY=VALUE)
--model <model>Override default LLM model
--parent <run>Link this run to an existing orchestration parent run
--preserve-sandboxKeep the sandbox alive after the run finishes (for debugging)
--provider <provider>Override default LLM provider
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
-I, --input <key=value>Override a workflow input value (repeatable, format: KEY=VALUE)
-v, --verboseEnable verbose output

fabro sandbox

Sandbox operations (cp, ssh, preview)
fabro sandbox [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro sandbox cpCopy files to/from a run’s sandbox
fabro sandbox previewGet a preview URL for a port on a run’s sandbox
fabro sandbox sshSSH into a run’s sandbox

fabro sandbox cp

Copy files to/from a run’s sandbox
fabro sandbox cp [OPTIONS] <SRC> <DST>

Arguments

NameDescription
SRCSource: <run-id>:<path> or local path
DSTDestination: <run-id>:<path> or local path

Options

OptionDescription
-r, --recursiveRecurse into directories
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro sandbox preview

Get a preview URL for a port on a run’s sandbox
fabro sandbox preview [OPTIONS] <RUN> <PORT>

Arguments

NameDescription
RUNRun ID or prefix
PORTPort number

Options

OptionDescription
--openOpen URL in browser (implies —signed)
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--signedGenerate a signed URL (embeds auth token, no headers needed)
--ttl <ttl>Signed URL expiry in seconds (default 3600, requires —signed)
Default: 3600

fabro sandbox ssh

SSH into a run’s sandbox
fabro sandbox ssh [OPTIONS] <RUN>

Arguments

NameDescription
RUNRun ID or prefix

Options

OptionDescription
--printPrint the SSH command instead of connecting
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--ttl <ttl>SSH access expiry in minutes (default 60)
Default: 60

fabro secret

Manage server-owned secrets
fabro secret [OPTIONS] <COMMAND>

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

Subcommands

CommandDescription
fabro secret listList secret names
fabro secret rmRemove a secret
fabro secret setSet a secret value

fabro secret list

List secret names
fabro secret list [OPTIONS]

fabro secret rm

Remove a secret
fabro secret rm [OPTIONS] <KEY>

Arguments

NameDescription
KEYName of the secret to remove

fabro secret set

Set a secret value
fabro secret set [OPTIONS] <KEY> [VALUE]

Arguments

NameDescription
KEYName of the secret
VALUEValue to store (omit to enter interactively)

Options

OptionDescription
--description <description>Optional human-readable description
--type <type>Secret storage type
Values: token, file
Default: token
--value-stdinRead the secret value from stdin

fabro server

Server operations
fabro server [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro server restartStop and restart the HTTP API server
fabro server startStart the HTTP API server
fabro server statusShow server status
fabro server stopStop the HTTP API server

fabro server restart

Stop and restart the HTTP API server
fabro server restart [OPTIONS]

Options

OptionDescription
--bind <bind>Address to bind to (IP or IP:port for TCP, or path containing / for Unix socket)
--config <config>Path to server config file (default: ~/.fabro/settings.toml)
--environment <environment>Named environment for agent tools
--foregroundRun in the foreground instead of daemonizing
--max-concurrent-runs <max_concurrent_runs>Maximum number of concurrent run executions
--model <model>Override default LLM model
--no-webDisable the embedded web UI, browser auth routes, and web-only helper endpoints
--provider <provider>Override default LLM provider
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)
--timeout <timeout>Seconds to wait for graceful shutdown before SIGKILL
Default: 10
--watch-webRun bun run dev in apps/fabro-web to watch/recompile web assets (debug only)
--webEnable the embedded web UI and browser auth routes

fabro server start

Start the HTTP API server
fabro server start [OPTIONS]

Options

OptionDescription
--bind <bind>Address to bind to (IP or IP:port for TCP, or path containing / for Unix socket)
--config <config>Path to server config file (default: ~/.fabro/settings.toml)
--environment <environment>Named environment for agent tools
--foregroundRun in the foreground instead of daemonizing
--max-concurrent-runs <max_concurrent_runs>Maximum number of concurrent run executions
--model <model>Override default LLM model
--no-webDisable the embedded web UI, browser auth routes, and web-only helper endpoints
--provider <provider>Override default LLM provider
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)
--watch-webRun bun run dev in apps/fabro-web to watch/recompile web assets (debug only)
--webEnable the embedded web UI and browser auth routes

fabro server status

Show server status
fabro server status [OPTIONS]

Options

OptionDescription
--jsonOutput as JSON
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)

fabro server stop

Stop the HTTP API server
fabro server stop [OPTIONS]

Options

OptionDescription
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)
--timeout <timeout>Seconds to wait for graceful shutdown before SIGKILL
Default: 10

fabro settings

Inspect effective settings
fabro settings [OPTIONS]

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro start

Start a created workflow run on the server
fabro start [OPTIONS] <RUN>

Arguments

NameDescription
RUNRun ID prefix or workflow name

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro steer

Steer a running agent mid-execution
fabro steer [OPTIONS] <RUN> [TEXT]

Arguments

NameDescription
RUNRun ID prefix to steer
TEXTSteer message text (omit when —text-stdin is used)

Options

OptionDescription
--interruptCancel the in-flight LLM stream / tool calls and deliver the message as the next user turn (default: append to the steering queue)
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--text-stdinRead steer text from stdin instead of a positional arg

fabro system

System maintenance commands
fabro system [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro system dfShow disk usage
fabro system eventsStream run events from the server
fabro system infoShow server runtime information
fabro system pruneDelete old workflow runs
fabro system repairInspect and repair durable server data

fabro system df

Show disk usage
fabro system df [OPTIONS]

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)
-v, --verboseShow per-run breakdown

fabro system events

Stream run events from the server
fabro system events [OPTIONS]

Options

OptionDescription
--run-id <run_ids>Filter by run ID (repeatable)
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)

fabro system info

Show server runtime information
fabro system info [OPTIONS]

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)

fabro system prune

Delete old workflow runs
fabro system prune [OPTIONS]

Options

OptionDescription
--before <before>Only include runs started before this date (YYYY-MM-DD prefix match)
--label <key=value>Filter by label (KEY=VALUE, repeatable, AND semantics)
--older-than <duration>Only prune runs older than this duration (e.g. 24h, 7d). Default: 24h when no explicit filters are set
--orphansInclude orphan directories (no matching durable run)
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)
--workflow <workflow>Filter by workflow name (substring match)
--yesActually delete (default is dry-run)

fabro system repair

Inspect and repair durable server data
fabro system repair [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro system repair runsList runs that cannot be loaded from durable storage
fabro system repair runs
List runs that cannot be loaded from durable storage
fabro system repair runs [OPTIONS]

Options

OptionDescription
--deletePreview deleting unreadable runs
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--storage-dir <storage_dir>Local storage directory (default: ~/.fabro/storage)
--yesActually delete unreadable runs (default is dry-run)

fabro unarchive

Restore archived runs to their prior terminal status
fabro unarchive [OPTIONS] <RUNS>...

Arguments

NameDescription
RUNSRun IDs or workflow names to unarchive

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro uninstall

Uninstall Fabro from this machine
fabro uninstall [OPTIONS]

Options

OptionDescription
--yesSkip confirmation prompt

fabro upgrade

Upgrade fabro to the latest version
fabro upgrade [OPTIONS]

Options

OptionDescription
--dry-runPreview what would happen without making changes
--forceUpgrade even if already on the target version
--prereleaseInclude prereleases (alpha, beta, rc) when selecting the latest version

fabro validate

Validate a workflow
fabro validate [OPTIONS] <WORKFLOW>

Arguments

NameDescription
WORKFLOWPath to the .fabro workflow file

fabro variable

Manage server-owned variables
fabro variable [OPTIONS] <COMMAND>

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

Subcommands

CommandDescription
fabro variable getGet a variable value
fabro variable listList variables
fabro variable rmRemove a variable
fabro variable setSet a variable value

fabro variable get

Get a variable value
fabro variable get [OPTIONS] <NAME>

Arguments

NameDescription
NAMEName of the variable to get

fabro variable list

List variables
fabro variable list [OPTIONS]

fabro variable rm

Remove a variable
fabro variable rm [OPTIONS] <NAME>

Arguments

NameDescription
NAMEName of the variable to remove

fabro variable set

Set a variable value
fabro variable set [OPTIONS] <NAME> [VALUE]

Arguments

NameDescription
NAMEName of the variable
VALUEValue to store

Options

OptionDescription
--description <description>Optional human-readable description
--value-stdinRead the variable value from stdin

fabro version

Show client and server version information
fabro version [OPTIONS]

Options

OptionDescription
--server <server>Fabro server target: http(s) URL or absolute Unix socket path

fabro wait

Block until a workflow run completes
fabro wait [OPTIONS] <RUN>

Arguments

NameDescription
RUNRun ID prefix or workflow name (most recent run)

Options

OptionDescription
--interval <ms>Poll interval in milliseconds
Default: 1000
--server <server>Fabro server target: http(s) URL or absolute Unix socket path
--timeout <seconds>Maximum time to wait in seconds

fabro workflow

Workflow operations
fabro workflow [OPTIONS] <COMMAND>

Subcommands

CommandDescription
fabro workflow createCreate a new workflow
fabro workflow listList available workflows

fabro workflow create

Create a new workflow
fabro workflow create [OPTIONS] <NAME>

Arguments

NameDescription
NAMEName of the workflow

Options

OptionDescription
-g, --goal <goal>Goal description for the workflow

fabro workflow list

List available workflows
fabro workflow list [OPTIONS]