# Fabro - [Introduction](https://docs.fabro.sh/getting-started/introduction.md): Fabro is the open source dark software factory for small teams of expert engineers - [Why Fabro?](https://docs.fabro.sh/getting-started/why-fabro.md): The problems Fabro solves for AI-assisted software teams - [Quick Start](https://docs.fabro.sh/getting-started/quick-start.md): Get up and running with Fabro - [How Fabro Works](https://docs.fabro.sh/core-concepts/how-fabro-works.md): Understand the Fabro architecture and execution model - [Dark Factory](https://docs.fabro.sh/getting-started/dark-factory.md): How Fabro helps small teams incrementally adopt a dark factory approach to software development - [Workflows](https://docs.fabro.sh/core-concepts/workflows.md): Core workflow concepts in Fabro - [Agents](https://docs.fabro.sh/core-concepts/agents.md): Core agent concepts in Fabro - [Models](https://docs.fabro.sh/core-concepts/models.md): How Fabro routes tasks to LLM models and providers - [Nodes & Stages](https://docs.fabro.sh/workflows/stages-and-nodes.md): All node types and how they become stages at runtime - [Transitions](https://docs.fabro.sh/workflows/transitions.md): How Fabro decides which node to execute next - [Variables](https://docs.fabro.sh/workflows/variables.md): Using templates in workflows - [Imports](https://docs.fabro.sh/workflows/imports.md): Reusing one workflow as a subgraph inside another - [Decisions](https://docs.fabro.sh/workflows/human-in-the-loop.md): Adding human review and intervention to workflows - [Model Stylesheets](https://docs.fabro.sh/workflows/stylesheets.md): Assign LLM models to workflow nodes using CSS-like rules - [Run Configuration](https://docs.fabro.sh/execution/run-configuration.md): Configure workflow runs with TOML files - [Child Runs](https://docs.fabro.sh/execution/child-runs.md): Spawn and supervise additional Fabro runs from a parent run - [Automations](https://docs.fabro.sh/execution/automations.md): Named, repeatable run configurations with API and schedule triggers - [Environments](https://docs.fabro.sh/execution/environments.md): Reusable named execution environments for workflow runs - [Context](https://docs.fabro.sh/execution/context.md): How data flows between workflow stages - [Checkpoints](https://docs.fabro.sh/execution/checkpoints.md): How Fabro uses Git to checkpoint and resume workflow runs - [Node Outcomes](https://docs.fabro.sh/execution/outcomes.md): The four stage outcomes and the attributes that control them - [Failures](https://docs.fabro.sh/execution/failures.md): How Fabro classifies, retries, and recovers from failures during workflow execution - [Observability](https://docs.fabro.sh/execution/observability.md): How to monitor, inspect, and analyze workflow runs - [Interviews](https://docs.fabro.sh/human-tools/interviews.md): How Fabro collects human input during workflow execution - [Steering](https://docs.fabro.sh/human-tools/steering.md): Guide running agents with real-time course corrections - [SSH Access](https://docs.fabro.sh/human-tools/ssh-access.md): Connect to sandbox environments via SSH for direct inspection and debugging - [VS Code](https://docs.fabro.sh/human-tools/vs-code.md): Open sandbox environments in VS Code for interactive editing and debugging - [Preview](https://docs.fabro.sh/human-tools/preview.md): Preview running applications in sandbox environments from your browser - [VNC Access](https://docs.fabro.sh/human-tools/vnc-access.md): Access graphical desktop environments in sandboxes via VNC - [VPN Connections](https://docs.fabro.sh/human-tools/vpn-connections.md): Connect sandbox environments to private networks via VPN - [Prompts](https://docs.fabro.sh/agents/prompts.md): How Fabro constructs and delivers prompts to agents - [Skills](https://docs.fabro.sh/agents/skills.md): Reusable prompt templates that extend agent capabilities - [Tools](https://docs.fabro.sh/agents/tools.md): Built-in tools for file I/O, shell commands, search, and web access - [MCP](https://docs.fabro.sh/agents/mcp.md): Connect MCP tools to agents and expose Fabro runs to MCP clients - [Hooks](https://docs.fabro.sh/agents/hooks.md): Run custom logic in response to workflow lifecycle events - [Sub-agents](https://docs.fabro.sh/agents/subagents.md): Delegate subtasks to child agent sessions - [Permissions](https://docs.fabro.sh/agents/permissions.md): Controlling which tools agents can use - [Outputs & Artifacts](https://docs.fabro.sh/agents/outputs.md): How Fabro captures agent responses, tracks file changes, and collects test assets - [GitHub](https://docs.fabro.sh/integrations/github.md): Integrate Fabro with GitHub for repository access and OAuth login - [Daytona](https://docs.fabro.sh/integrations/daytona.md): Run Fabro workflows in sandboxed Daytona cloud environments - [LiteLLM](https://docs.fabro.sh/integrations/litellm.md): Route Fabro models through a LiteLLM proxy - [Amazon Bedrock](https://docs.fabro.sh/integrations/bedrock.md): Route Fabro models through Amazon Bedrock with SigV4 or API-key auth - [DeepSeek](https://docs.fabro.sh/integrations/deepseek.md): Run DeepSeek V4 Flash and Pro through DeepSeek's direct API or supported gateways - [Venice](https://docs.fabro.sh/integrations/venice.md): Run Kimi, Grok, GLM, DeepSeek, and Qwen models through Venice - [Poolside](https://docs.fabro.sh/integrations/poolside.md): Run Laguna coding models through Poolside's direct API or OpenRouter - [OpenRouter](https://docs.fabro.sh/integrations/openrouter.md): Route Fabro models through OpenRouter's multi-provider gateway - [Modal](https://docs.fabro.sh/integrations/modal.md): Run Kimi K3 through Modal's OpenAI-compatible inference endpoints - [Fireworks AI](https://docs.fabro.sh/integrations/fireworks.md): Run open-weights models on Fireworks AI's serverless inference platform - [Slack](https://docs.fabro.sh/integrations/slack.md): Answer human-in-the-loop questions and receive run lifecycle notifications in Slack - [Brave Search](https://docs.fabro.sh/integrations/brave-search.md): Give Fabro agents web search capabilities via the Brave Search API - [Venice Search](https://docs.fabro.sh/integrations/venice-search.md): Give Fabro agents web search capabilities via Venice's augment/search API - [Fabro Language](https://docs.fabro.sh/reference/dot-language.md): Complete reference for Fabro's Graphviz workflow language - [CLI Reference](https://docs.fabro.sh/reference/cli.md): Fabro command-line interface reference - [Shell Completions](https://docs.fabro.sh/reference/shell-completions.md): Set up tab completion for the fabro CLI in your shell - [Settings Configuration](https://docs.fabro.sh/reference/user-configuration.md): Configure CLI and shared machine defaults with settings.toml - [Run Directory](https://docs.fabro.sh/reference/run-directory.md): Structure of Fabro's per-run directory - [Fabro SDK](https://docs.fabro.sh/reference/sdk.md): Using Fabro as a Rust library for AI agents and multi-provider LLM completions - [Architecture](https://docs.fabro.sh/reference/architecture.md): How Fabro's CLI and API modes work under the hood - [Server Operations](https://docs.fabro.sh/reference/server-operations.md): Operate the Fabro server: starting, install wizard, auth, web UI, and pointing the CLI at it - [Verifying Releases](https://docs.fabro.sh/reference/verifying-releases.md): Verify Fabro binaries and images were built by our release workflow - [Server Configuration](https://docs.fabro.sh/administration/server-configuration.md): Server-owned settings.toml sections, CLI overrides, and environment variables - [Troubleshooting](https://docs.fabro.sh/administration/troubleshooting.md): Diagnosing and resolving common issues with Fabro - [Comparison](https://docs.fabro.sh/getting-started/comparison.md): How Fabro compares to AI coding agents, software factories, and orchestration platforms. - [Security](https://docs.fabro.sh/administration/security.md): Security model and best practices - [Acknowledgements](https://docs.fabro.sh/reference/acknowledgements.md): Projects and people that inspired Fabro - [Hello World](https://docs.fabro.sh/tutorials/hello-world.md): Your first workflow: prompt nodes, tool use, and sub-agents - [Plan & Implement](https://docs.fabro.sh/tutorials/plan-implement.md): Human gates, revision loops, and prompt file references - [Branch & Loop](https://docs.fabro.sh/tutorials/branch-loop.md): Conditionals, test validation loops, and max_visits - [Parallel Review](https://docs.fabro.sh/tutorials/parallel-review.md): Shared-checkout fan-out, fan-in, and result synthesis - [Multi-Model Routing](https://docs.fabro.sh/tutorials/multi-model.md): Model stylesheets, CSS selectors, and per-node reasoning effort - [Ensemble](https://docs.fabro.sh/tutorials/ensemble.md): Multi-provider fan-out and shared-checkout result synthesis - [Sub-Workflows](https://docs.fabro.sh/tutorials/sub-workflow.md): Reusable child workflows, context flow, and the supervisor pattern - [REPL Handoff](https://docs.fabro.sh/examples/repl-handoff.md): Plan interactively in Claude Code, then delegate implementation to Fabro for autonomous execution with multi-model code review - [Build Solitaire](https://docs.fabro.sh/examples/solitaire.md): Build a complete application from a spec using phased implementation with verification gates - [Semantic Port](https://docs.fabro.sh/examples/semantic-port.md): Continuously port upstream changes from one language to another using a ledger-driven loop - [Definition of Done](https://docs.fabro.sh/examples/definition-of-done.md): Audit a codebase against specification checklists, triage failures, implement fixes, and verify — with optional multi-model consensus - [NLSpec Conformance](https://docs.fabro.sh/examples/nlspec-conformance.md): Implement a system from a natural language specification and iterate until conformance tests pass - [Clone Substack](https://docs.fabro.sh/examples/clone-substack.md): Build an entire application from a detailed specification using debate planning, a staged verify chain, ensemble review, and a postmortem repair loop - [Deployment](https://docs.fabro.sh/administration/deployment.md): Choose where the Fabro server runs: on your laptop or self-hosted on a server - [Self-host with Docker](https://docs.fabro.sh/administration/self-host-docker.md): Run the Fabro server as a Docker container with docker compose, ECS, or any cloud container service - [Railway](https://docs.fabro.sh/administration/deploy-railway.md): Deploy Fabro to Railway from the prebuilt GHCR image, with a persistent Volume for state - [API Overview](https://docs.fabro.sh/api-reference/overview.md): Introduction to the Fabro REST API - [Client SDKs](https://docs.fabro.sh/api-reference/client-sdks.md): Language-specific clients generated from the Fabro OpenAPI spec - [Create Workflow Version](https://docs.fabro.sh/api-reference/workflow-versions/create-workflow-version.md): Validates and stores an immutable workflow package in content-addressed storage. Repeating the same canonical content returns the same identifier. - [List Runs](https://docs.fabro.sh/api-reference/runs/list-runs.md): Returns durable run summaries from the backing store, including runs persisted before the current server boot. Supports per-status filtering and sorting for both list and kanban renderings. Archived runs are hidden by default; pass `include_archived=true` (or `status=archived`) to include them. Runs… - [Create Run](https://docs.fabro.sh/api-reference/runs/create-run.md): Creates a new workflow run in `submitted` status from either a self-contained legacy manifest or an immutable workflow-version intent. Creation does not start or schedule the run. - [Retrieve Run](https://docs.fabro.sh/api-reference/runs/retrieve-run.md): Returns the durable run summary for a run. - [Link Run Parent](https://docs.fabro.sh/api-reference/runs/link-run-parent.md): Links a run under an orchestration parent. Parent links are mutable for all run states, including archived and terminal runs. - [Unlink Run Parent](https://docs.fabro.sh/api-reference/runs/unlink-run-parent.md): Removes a run's orchestration parent. Already-root runs are returned unchanged. - [Start Run](https://docs.fabro.sh/api-reference/runs/start-run.md): Requests start for a submitted run. User-created runs become runnable; parent-generated child runs may become pending until approved. Provide `resume=true` to resume an interrupted run from checkpoint. Returns 409 if the run is not startable. - [Approve Run](https://docs.fabro.sh/api-reference/runs/approve-run.md): Approves a pending run that requires pre-execution approval and makes it runnable. - [Deny Run](https://docs.fabro.sh/api-reference/runs/deny-run.md): Denies a pending run that requires pre-execution approval and fails it with `approval_denied`. - [Cancel Run](https://docs.fabro.sh/api-reference/runs/cancel-run.md): Cancels a pending, runnable, or running run. Pre-execution runs are cancelled synchronously. Live runs return after the cancellation request is durably recorded and continue converging to a terminal cancelled state. Returns 409 if the run has already completed or been cancelled. - [Pause Run](https://docs.fabro.sh/api-reference/runs/pause-run.md): Pauses a running run. Returns 409 if the run is not running. - [Unpause Run](https://docs.fabro.sh/api-reference/runs/unpause-run.md): Resumes a paused run. Returns 409 if the run is not paused. - [Create Run Pull Request](https://docs.fabro.sh/api-reference/runs/create-run-pull-request.md): Durably requests creation of a pull request for a completed run. The server generates the pull request content and creates the GitHub pull request after this request returns. Poll the URL in the Location response header until the creation succeeds or fails. - [Get Run Pull Request Creation](https://docs.fabro.sh/api-reference/runs/get-run-pull-request-creation.md): Returns the latest explicit pull request creation requested for this run. - [Render SVG](https://docs.fabro.sh/api-reference/runs/render-svg.md): Renders the workflow graph as an SVG image using Graphviz. - [List Run Events](https://docs.fabro.sh/api-reference/run-internals/list-run-events.md): Returns a paginated JSON list of stored run events. Ascending order uses `since_seq` as an inclusive cursor. Descending order uses `before_seq` as an exclusive cursor and starts at the newest event when `before_seq` is omitted. - [List Run Questions](https://docs.fabro.sh/api-reference/human-in-the-loop/list-run-questions.md): Returns pending human-in-the-loop questions for a run. Questions are generated when the workflow needs user input to proceed. - [Submit Run Answer](https://docs.fabro.sh/api-reference/human-in-the-loop/submit-run-answer.md): Submits an answer to a pending question. The answer can be freeform text or a selected option key, depending on the question type. - [Preview URL](https://docs.fabro.sh/api-reference/human-in-the-loop/preview-url.md): Generates a preview URL for a port exposed by the run's sandbox environment. - [List Run Artifacts](https://docs.fabro.sh/api-reference/run-internals/list-run-artifacts.md): Lists captured artifact files for a run. - [Download Run Artifacts](https://docs.fabro.sh/api-reference/run-internals/download-run-artifacts.md): Streams a ZIP archive with the latest captured version of each artifact path. Stage order, retry number, and then stage ID determine the latest version, matching the artifacts page. Captures from the graph's boundary nodes are excluded, identified by their `start` and `exit` handler type rather than… - [Retrieve Run Billing](https://docs.fabro.sh/api-reference/run-outputs/retrieve-run-billing.md): Returns token counts and billed totals broken down by stage and model for a specific run. - [Retrieve Run Checkpoint](https://docs.fabro.sh/api-reference/run-internals/retrieve-run-checkpoint.md): Returns the latest checkpoint data for a run, or null if no checkpoint has been recorded yet. - [List Run Stages](https://docs.fabro.sh/api-reference/run-internals/list-run-stages.md): Returns the ordered list of stages in a run's workflow graph with their current status and timing. Stages are bounded by the workflow graph size, typically fewer than 20. - [List Stage Events](https://docs.fabro.sh/api-reference/run-internals/list-stage-events.md): Returns a paginated JSON list of stored run events scoped to a single stage visit. - [Retrieve Run Settings](https://docs.fabro.sh/api-reference/run-internals/retrieve-run-settings.md): Returns the persisted dense `WorkflowSettings` snapshot used to launch this run. - [List automations](https://docs.fabro.sh/api-reference/automations/list-automations.md): Returns all configured automation definitions. - [Create automation](https://docs.fabro.sh/api-reference/automations/create-automation.md): Creates a new automation definition. - [Retrieve automation](https://docs.fabro.sh/api-reference/automations/retrieve-automation.md): Returns one automation definition by id. - [Replace automation](https://docs.fabro.sh/api-reference/automations/replace-automation.md): Replaces an automation definition when `If-Match` matches the current automation revision. - [Delete automation](https://docs.fabro.sh/api-reference/automations/delete-automation.md): Deletes an automation definition when `If-Match` matches the current automation revision. - [List automation runs](https://docs.fabro.sh/api-reference/automations/list-automation-runs.md): Returns durable runs created by one automation. - [Create automation run](https://docs.fabro.sh/api-reference/automations/create-automation-run.md): Creates a new run by firing the automation's enabled API trigger. - [List environments](https://docs.fabro.sh/api-reference/environments/list-environments.md): Returns all server-managed environment definitions, sorted by id. - [Create environment](https://docs.fabro.sh/api-reference/environments/create-environment.md): Creates a server-owned environment definition in the environment catalog. REST environment requests only accept inline Dockerfile content; local Dockerfile paths are supported by workflow/settings files but rejected by this API. - [Retrieve environment](https://docs.fabro.sh/api-reference/environments/retrieve-environment.md): Returns one server-managed environment definition by id. - [Replace environment](https://docs.fabro.sh/api-reference/environments/replace-environment.md): Replaces an environment definition when `If-Match` matches the current environment revision. The path id is authoritative; the request body omits `id`. - [Delete environment](https://docs.fabro.sh/api-reference/environments/delete-environment.md): Deletes a non-default environment definition when `If-Match` matches the current environment revision. - [List variables](https://docs.fabro.sh/api-reference/variables/list-variables.md): Returns non-sensitive variables, including values. - [Store or update a variable](https://docs.fabro.sh/api-reference/variables/store-or-update-a-variable.md): Stores a non-sensitive variable for run config interpolation. - [Get a variable](https://docs.fabro.sh/api-reference/variables/get-a-variable.md) - [Replace a variable value](https://docs.fabro.sh/api-reference/variables/replace-a-variable-value.md): Replaces a variable value and preserves the existing description when omitted. - [Delete a variable](https://docs.fabro.sh/api-reference/variables/delete-a-variable.md) - [Retrieve Server Settings](https://docs.fabro.sh/api-reference/settings/retrieve-server-settings.md): Returns the server's current in-memory settings view as the typed `ServerSettings` payload. - [List Models](https://docs.fabro.sh/api-reference/models/list-models.md): Returns one row per provider/model offering from the catalog. Model IDs are unique within a provider; `(provider, id)` is the resource identity. - [Test Model](https://docs.fabro.sh/api-reference/models/test-model.md): Tests a model by sending a simple prompt and reporting pass/fail. - [Workflow Playground removed](https://docs.fabro.sh/changelog/2026-09-03.md) - [Docker images for Daytona snapshots](https://docs.fabro.sh/changelog/2026-08-27.md) - [Explicit succeed failure policy](https://docs.fabro.sh/changelog/2026-08-26.md) - [Model stylesheet templates and failure routing](https://docs.fabro.sh/changelog/2026-08-25.md) - [Empty run workspaces and more reliable Daytona activation](https://docs.fabro.sh/changelog/2026-08-23.md) - [Run intents, additional repositories, and Venice search](https://docs.fabro.sh/changelog/2026-08-21.md) - [Reliable sandbox pushes and Daytona recovery](https://docs.fabro.sh/changelog/2026-08-20.md) - [Fireworks account failover](https://docs.fabro.sh/changelog/2026-08-18.md) - [Reliable workflow dependency discovery](https://docs.fabro.sh/changelog/2026-08-17.md) - [Content-addressed blob hashes](https://docs.fabro.sh/changelog/2026-08-16.md) - [Exact workflow lineage](https://docs.fabro.sh/changelog/2026-08-14.md) - [Immutable workflow versions](https://docs.fabro.sh/changelog/2026-08-13.md) - [Safer workflow root paths](https://docs.fabro.sh/changelog/2026-08-12.md) - [Run filters and live billing totals](https://docs.fabro.sh/changelog/2026-08-06.md) - [Correct node visit limits](https://docs.fabro.sh/changelog/2026-08-05.md) - [Faster Daytona edits and Kimi K3 Fast](https://docs.fabro.sh/changelog/2026-08-04.md) - [Leaner run manifests and Qwen3.8 Max](https://docs.fabro.sh/changelog/2026-08-03.md) - [Durable pull request creation](https://docs.fabro.sh/changelog/2026-08-01.md) - [DeepSeek, reusable subagents, and artifact downloads](https://docs.fabro.sh/changelog/2026-07-31.md) - [Model-keyed fallback policies](https://docs.fabro.sh/changelog/2026-07-30.md) - [Context-fed commands and portable fallbacks](https://docs.fabro.sh/changelog/2026-07-29.md) - [Modal inference and structured review targets](https://docs.fabro.sh/changelog/2026-07-28.md) - [Runtime fan-out and live parallel runs](https://docs.fabro.sh/changelog/2026-07-27.md) - [CLI auth sessions move to SQLite](https://docs.fabro.sh/changelog/2026-07-26.md) - [Consistent workspace globs and model-native agents](https://docs.fabro.sh/changelog/2026-07-25.md) - [Shared-checkout parallelism, Fireworks, and agent chat](https://docs.fabro.sh/changelog/2026-07-24.md) - [Provider-aware models and reliable agent control](https://docs.fabro.sh/changelog/2026-07-23.md) - [Poolside Laguna and safer database migrations](https://docs.fabro.sh/changelog/2026-07-22.md) - [Unified SQLite storage](https://docs.fabro.sh/changelog/2026-07-11.md) - [GPT-5.6 models](https://docs.fabro.sh/changelog/2026-07-10.md) - [Provider header interpolation](https://docs.fabro.sh/changelog/2026-07-09.md) - [Trackpad navigation for run graphs](https://docs.fabro.sh/changelog/2026-07-08.md) - [Private deployments with Tailscale Services](https://docs.fabro.sh/changelog/2026-07-07.md) - [Workflow graph direction in run views](https://docs.fabro.sh/changelog/2026-07-03.md) - [Faster web loading and run-time secret interpolation](https://docs.fabro.sh/changelog/2026-07-02.md) - [MCP server settings and prepare-step environments](https://docs.fabro.sh/changelog/2026-07-01.md) - [Safer hooks and managed MCP servers](https://docs.fabro.sh/changelog/2026-06-30.md) - [Runtime security updates](https://docs.fabro.sh/changelog/2026-06-27.md) - [Docker diagnostics and remote provider login](https://docs.fabro.sh/changelog/2026-06-26.md) - [OpenRouter branding in model settings](https://docs.fabro.sh/changelog/2026-06-25.md) - [Variables in workflow prompts and goals](https://docs.fabro.sh/changelog/2026-06-24.md) - [MCP transport interpolation](https://docs.fabro.sh/changelog/2026-06-18.md) - [Amazon Bedrock support](https://docs.fabro.sh/changelog/2026-06-16.md) - [Graph rendering for templated comments](https://docs.fabro.sh/changelog/2026-06-15.md) - [Local environment working directories](https://docs.fabro.sh/changelog/2026-06-14.md) - [Environment management in Settings](https://docs.fabro.sh/changelog/2026-06-13.md) - [OpenRouter support](https://docs.fabro.sh/changelog/2026-06-12.md) - [Completion cost estimates](https://docs.fabro.sh/changelog/2026-06-11.md) - [Claude Fable 5 support](https://docs.fabro.sh/changelog/2026-06-10.md) - [Workflow playground](https://docs.fabro.sh/changelog/2026-06-09.md) - [Workflow templates scoped to prompt and goal](https://docs.fabro.sh/changelog/2026-06-05.md) - [Embedded VNC session fix](https://docs.fabro.sh/changelog/2026-06-03.md) - [Installer sandbox provider selection](https://docs.fabro.sh/changelog/2026-06-02.md) - [Workflows settings section](https://docs.fabro.sh/changelog/2026-05-30.md) - [Scheduled automations](https://docs.fabro.sh/changelog/2026-05-29.md) - [Automations in the web UI](https://docs.fabro.sh/changelog/2026-05-28.md) - [Run variables and the Automations API](https://docs.fabro.sh/changelog/2026-05-27.md) - [Integration readiness and run filters](https://docs.fabro.sh/changelog/2026-05-26.md) - [Sandbox inventory, model tests, and run approvals](https://docs.fabro.sh/changelog/2026-05-25.md) - [Run tools, sandbox controls, and richer run triage](https://docs.fabro.sh/changelog/2026-05-24.md) - [Runs list, Slack notifications, and structured outputs](https://docs.fabro.sh/changelog/2026-05-23.md) - [Ask Fabro sidebar, scoped run tools, and agent todos](https://docs.fabro.sh/changelog/2026-05-22.md) - [Run-aware Ask Fabro, stage timing, and context](https://docs.fabro.sh/changelog/2026-05-21.md) - [Settings pages, resource visibility, and pair sessions](https://docs.fabro.sh/changelog/2026-05-20.md) - [Strict agent backends and explicit credentials](https://docs.fabro.sh/changelog/2026-05-18.md) - [Run detail summaries and MCP parent tools](https://docs.fabro.sh/changelog/2026-05-17.md) - [Agent sessions, run relationships, and sandbox visibility](https://docs.fabro.sh/changelog/2026-05-16.md) - [Optional LLM setup and Daytona volumes](https://docs.fabro.sh/changelog/2026-05-14.md) - [Configurable LLM providers, Slack reviews, and Daytona Dockerfiles](https://docs.fabro.sh/changelog/2026-05-13.md) - [Managed run branches and validation fixes](https://docs.fabro.sh/changelog/2026-05-12.md) - [ACP backend and Fabro MCP server](https://docs.fabro.sh/changelog/2026-05-11.md) - [Sandbox tools, auth sessions, and Live Events](https://docs.fabro.sh/changelog/2026-05-10.md) - [Sparse inputs, sandbox terminals, and run file diffs](https://docs.fabro.sh/changelog/2026-05-09.md) - [Run Events, sandbox lifecycle, and typed interviews](https://docs.fabro.sh/changelog/2026-05-08.md) - [Run debugger, sticky steering, and run filters](https://docs.fabro.sh/changelog/2026-05-07.md) - [Run events, raw logs, and refreshable GitHub tokens](https://docs.fabro.sh/changelog/2026-05-06.md) - [Mid-run steering, cancellable agents, and GitHub permissions](https://docs.fabro.sh/changelog/2026-05-05.md) - [Smarter PRs, faster doctor checks, and GPT-5.5](https://docs.fabro.sh/changelog/2026-05-04.md) - [Run links and Daytona scope checks](https://docs.fabro.sh/changelog/2026-05-03.md) - [Answer blocked runs in the web app](https://docs.fabro.sh/changelog/2026-05-02.md) - [Clearer failure diagnostics and deployment docs](https://docs.fabro.sh/changelog/2026-05-01.md) - [Command logs and precise stage outcomes](https://docs.fabro.sh/changelog/2026-04-30.md) - [Faster preflight checks and clearer setup errors](https://docs.fabro.sh/changelog/2026-04-29.md) - [Workflow-relative prompt files and sandbox metadata fixes](https://docs.fabro.sh/changelog/2026-04-28.md) - [Install wizard sandbox selection and sandbox-native git metadata](https://docs.fabro.sh/changelog/2026-04-27.md) - [Clone-based Docker sandboxes and per-run logs](https://docs.fabro.sh/changelog/2026-04-26.md) - [Files Changed sidebar, settings panels, and install validation](https://docs.fabro.sh/changelog/2026-04-25.md) - [Server-backed rewind, setup polish, and diff stats](https://docs.fabro.sh/changelog/2026-04-24.md) - [Server secrets, fabro dump, and faster workflow finalization](https://docs.fabro.sh/changelog/2026-04-23.md) - [Object-store setup in the installer](https://docs.fabro.sh/changelog/2026-04-22.md) - [Install-first server startup and safer auth boundaries](https://docs.fabro.sh/changelog/2026-04-21.md) - [GitHub CLI auth and web run controls](https://docs.fabro.sh/changelog/2026-04-20.md) - [Run files, archived runs, and browser setup](https://docs.fabro.sh/changelog/2026-04-19.md) - [Homebrew install, deployment guides, and hardened hosting](https://docs.fabro.sh/changelog/2026-04-18.md) - [Curated landing output and Homebrew-aware upgrades](https://docs.fabro.sh/changelog/2026-04-17.md) - [Server restart, runs page empty state, and prerelease upgrades](https://docs.fabro.sh/changelog/2026-04-16.md) - [Live Web UI with real-time stage tracking](https://docs.fabro.sh/changelog/2026-04-15.md) - [Vendored Graphviz, version command, and install improvements](https://docs.fabro.sh/changelog/2026-04-14.md) - [Scripted install and local server auth](https://docs.fabro.sh/changelog/2026-04-13.md) - [Provider credential auth and resolved settings](https://docs.fabro.sh/changelog/2026-04-12.md) - [Unified template syntax](https://docs.fabro.sh/changelog/2026-04-11.md) - [GitHub App owner selection](https://docs.fabro.sh/changelog/2026-04-10.md) - [Settings v2 and events schema v2](https://docs.fabro.sh/changelog/2026-04-09.md) - [Embedded web UI and fabro uninstall](https://docs.fabro.sh/changelog/2026-04-08.md) - [Worker lifecycle hardening and object-backed artifacts](https://docs.fabro.sh/changelog/2026-04-07.md) - [System management API and log rotation](https://docs.fabro.sh/changelog/2026-04-06.md) - [Run lifecycle API refinement](https://docs.fabro.sh/changelog/2026-04-04.md) - [Background server daemon](https://docs.fabro.sh/changelog/2026-04-02.md) - [Server-backed web dashboard and event-sourced run state](https://docs.fabro.sh/changelog/2026-04-01.md) - [Global JSON output mode](https://docs.fabro.sh/changelog/2026-03-31.md) - [CLI restructuring, shell completions, and API versioning](https://docs.fabro.sh/changelog/2026-03-30.md) - [Dump export command](https://docs.fabro.sh/changelog/2026-03-29.md) - [File-based workflow imports](https://docs.fabro.sh/changelog/2026-03-28.md) - [fabro settings, preflight subcommand, and storage-dir](https://docs.fabro.sh/changelog/2026-03-27.md) - [Pull request pipeline stage and resume reliability](https://docs.fabro.sh/changelog/2026-03-26.md) - [Unlimited tool rounds and workflow syntax improvements](https://docs.fabro.sh/changelog/2026-03-23.md) - [fabro resume subcommand](https://docs.fabro.sh/changelog/2026-03-22.md) - [Anthropic fast mode and deep model testing](https://docs.fabro.sh/changelog/2026-03-21.md) - [Composable run lifecycle: create, start, attach](https://docs.fabro.sh/changelog/2026-03-20.md) - [Provider login, auto-detect provider, and fabro wait](https://docs.fabro.sh/changelog/2026-03-19.md) - [Secret management and repo commands](https://docs.fabro.sh/changelog/2026-03-18.md) - [OpenAI OAuth support and GPT-5.4 Mini](https://docs.fabro.sh/changelog/2026-03-17.md) - [Auto-merge for PRs, three new lifecycle hooks, and styled workflow graphs](https://docs.fabro.sh/changelog/2026-03-16.md) - [Run forking, self-update, and Docker-style fabro ps](https://docs.fabro.sh/changelog/2026-03-15.md) - [fabro logs, background runs, and workflow scaffolding](https://docs.fabro.sh/changelog/2026-03-14.md) - [.fabro file extension, human gate improvements, and user workflows](https://docs.fabro.sh/changelog/2026-03-13.md) - [Simpler model stylesheets with provider auto-inference](https://docs.fabro.sh/changelog/2026-03-12.md) - [SSH sandbox, skill installer, and fabro graph](https://docs.fabro.sh/changelog/2026-03-11.md) - [One-line installer, MCP servers, and new CLI commands](https://docs.fabro.sh/changelog/2026-03-10.md) - [Project config, fabro cp, fabro pr create, and exe.dev maturation](https://docs.fabro.sh/changelog/2026-03-09.md) - [Lifecycle hooks, server mode, and auto-PR](https://docs.fabro.sh/changelog/2026-03-08.md) - [Completions API, new sandbox providers, and sandbox.env](https://docs.fabro.sh/changelog/2026-03-07.md) - [API restructuring and sandbox improvements](https://docs.fabro.sh/changelog/2026-03-06.md) - [Slack interviews, hooks, model failover, and GPT-5.4](https://docs.fabro.sh/changelog/2026-03-05.md) - [Concurrency limits, SSH access, and timer nodes](https://docs.fabro.sh/changelog/2026-03-04.md) - [Authentication, setup wizard, and fabro doctor](https://docs.fabro.sh/changelog/2026-03-03.md) - [Sessions and workflow improvements](https://docs.fabro.sh/changelog/2026-03-02.md) - [Verifications, retrospectives, insights, and parallel branching](https://docs.fabro.sh/changelog/2026-03-01.md) - [Fabro web app and git checkpointing](https://docs.fabro.sh/changelog/2026-02-28.md) - [MCP tool servers, web tools, and multi-CLI backends](https://docs.fabro.sh/changelog/2026-02-27.md) - [Daytona cloud sandboxes and TOML run config](https://docs.fabro.sh/changelog/2026-02-26.md) - [Skills system and secret redaction](https://docs.fabro.sh/changelog/2026-02-25.md) - [Auto-compaction and run progress logs](https://docs.fabro.sh/changelog/2026-02-24.md) - [First CLI, Docker sandboxing, and web dashboard](https://docs.fabro.sh/changelog/2026-02-23.md) ## OpenAPI Specs - [fabro-api](/api-reference/fabro-api.yaml)