Documentation Index
Fetch the complete documentation index at: https://docs.fabro.sh/llms.txt
Use this file to discover all available pages before exploring further.
Non-destructive run forking
You can now branch a new run from any checkpoint in an existing run withfabro fork. Unlike fabro rewind, which rewinds the original run in place, fabro fork creates an independent copy — the original run stays intact. This is useful for exploring alternate paths from a checkpoint without losing the work that came after it.
Self-update with fabro upgrade
Fabro can now update itself. For self-managed installs,fabro upgrade downloads the latest release from GitHub, verifies its SHA256 checksum, and atomically replaces the binary. Downgrade protection prevents accidentally installing an older version (override with --force). On Homebrew installs, fabro upgrade leaves the Homebrew-managed binary alone and prints the matching brew upgrade fabro or brew upgrade fabro-nightly command instead. A daily background check notifies you when a new version is available — disable it with upgrade_check = false in ~/.fabro/cli.toml or --no-upgrade-check.
Docker-style process listing
fabro ps has been rebuilt to behave like docker ps. It now shows a table with run ID, status, workflow name, goal, and timing — making it easy to see what’s running at a glance. Run status is tracked via a proper state machine, so status transitions are reliable and fabro ps always reflects the current state.
More
CLI
CLI
- Added
fabro artifact listto view run artifacts andfabro artifact cpto copy them locally with optional--treedirectory structure - Added
fabro rmcommand to remove runs by ID with sandbox cleanup - Added
--direction(-d) flag tofabro graphfor overriding layout direction (lrortb) - Added
-pshort alias for--prettyinfabro logs - Added progress spinner during
run --preflight
Workflows
Workflows
- Added
auto_merge = truein[pull_request]config to enable GitHub auto-merge on created PRs, with configurablemerge_strategy(squash/merge/rebase) fabro initnow generates[pull_request]withenabled = trueanddraft = trueby default- Added
selection="random"node attribute for weighted-random edge selection in workflow graphs - GitHub App installation tokens are now automatically injected into sandboxes as
GITHUB_TOKEN - Workflow PRs now open as ready-for-review by default (control with
[pull_request] draft = false) - Metadata branch renamed from
refs/fabro/{run_id}tofabro/meta/{run_id}for cleaner ref namespace - Added granular git checkpoint events and retro lifecycle events (
RetroStarted,RetroCompleted,RetroFailed) goalfield now included inWorkflowRunStartedevent and rendered infabro logs --pretty- Run completion events now include final status and usage totals
Improvements
Improvements
- Command output in stage preambles now truncated to the last 25-50 lines, reducing token waste from verbose build logs
- Artifact collection now enforces a 100-file limit and excludes
.venv,venv,.cache,.tox,.pytest_cache,.mypy_cache, anddistdirectories - Unified dry-run behavior across all handler types — wait and human-in-the-loop nodes now properly simulate without side effects
Fixes
Fixes
- Fixed sub-agent file writes not being tracked in the API backend, causing downstream stages to receive incomplete file lists
- Fixed
--dry-runexecuting command/script nodes instead of simulating them - Fixed
--dry-runpushing branches to remote - Fixed
--goal-filenot expanding~to the home directory - Fixed race condition between
fabro run --detachandfabro logs -f - Fixed dry-run runs cluttering
fabro ps -aoutput (now uses temp directory)