Find a file
Bryan Helmkamp cd70962bd9 Add AbortReason to AgentError::Aborted for diagnosable abort messages
Previously, AgentError::Aborted was a bare variant that displayed as
just "Aborted", making it impossible to tell whether a session was
killed by wall clock timeout, user cancellation, or something else.
Now it carries an AbortReason (WallClockTimeout or Cancelled) so
terminal output like the retro agent failure message includes the cause.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-11 09:34:52 -04:00
.cargo Disable empty doc-tests and add terse test output alias 2026-02-23 10:57:26 -05:00
.claude Update changelog and docs for installer, devcontainers, arc pr, and preflight improvements 2026-03-11 08:33:04 -04:00
.config Fix Daytona e2e test failures and improve test reliability 2026-03-08 18:51:43 -04:00
.github Use GitHub-hosted runners for release workflow 2026-03-10 14:23:05 -04:00
apps Move packages/ to lib/packages/ and update all references 2026-03-09 13:13:56 -04:00
arc/workflows Add vnc test 2026-03-10 11:32:09 -04:00
bin Organize scripts into bin/dev, bin/ops, and bin/agent 2026-03-09 13:07:22 -04:00
docker Move packages/ to lib/packages/ and update all references 2026-03-09 13:13:56 -04:00
docs Document fixed-count loops using internal.node_visit_count 2026-03-11 08:50:17 -04:00
lib Add AbortReason to AgentError::Aborted for diagnosable abort messages 2026-03-11 09:34:52 -04:00
scripts Add release script to bump version, tag, and push 2026-03-10 18:36:54 -04:00
skills Add arc-create-workflow skill for generating Arc workflow DOT graphs and TOML configs 2026-03-11 08:43:47 -04:00
test Add extracted fixed-loop DOT fixture from branch-loop tutorial 2026-03-11 08:57:00 -04:00
.env.example Remove export prefix from .env.example for standard dotenv format 2026-03-09 23:46:44 -04:00
.gitignore Track .claude directory and add docs skill watermark 2026-03-08 11:23:07 -04:00
AGENTS.md Add arc init command to initialize a new arc project 2026-03-10 13:00:36 -04:00
arc.toml Disable retros project-wide in arc.toml 2026-03-09 19:29:01 -04:00
bun.lock Move packages/ to lib/packages/ and update all references 2026-03-09 13:13:56 -04:00
Cargo.lock Wire arc-devcontainer into sandbox creation flow 2026-03-10 22:54:59 -04:00
Cargo.toml Introduce insta snapshot testing for arc-devcontainer and arc-cli 2026-03-10 21:09:15 -04:00
CLAUDE.md Move CLAUDE.md to AGENTS.md with symlink for compatibility 2026-03-09 13:02:06 -04:00
CONTRIBUTING.md Improve README features section and add CONTRIBUTING.md 2026-03-10 15:16:03 -04:00
install.sh Fix install.sh prompt not showing when piped via stdin 2026-03-10 18:31:34 -04:00
LICENSE.md Add README.md and MIT LICENSE 2026-03-10 14:48:58 -04:00
package.json Move packages/ to lib/packages/ and update all references 2026-03-09 13:13:56 -04:00
README.md Add install one-liner near top of README for quick access 2026-03-10 18:18:13 -04:00

Arc

The open source software factory for expert engineers

AI coding agents are powerful but unpredictable. You either babysit every step or review a 50-file diff you don't trust. Arc gives you a middle path: define the process as a graph, let agents execute it, and intervene only where it matters. Why Arc?

License: MIT docs

curl -fsSL https://fabro.sh/install.sh | bash
Arc Runs board showing workflows across Working, Pending, Verify, and Merge stages

Key Features

Feature Description
🔀 Deterministic workflow graphs Define pipelines in Graphviz DOT with branching, loops, parallelism, and human gates. Diffable, reviewable, version-controlled
🙋 Human-in-the-loop Approval gates pause for human decisions. Steer running agents mid-turn. Interview steps collect structured input
🎨 Multi-model routing CSS-like stylesheets route each node to the right model and provider, with automatic fallback chains
☁️ Cloud sandboxes Run agents in isolated Daytona cloud VMs with snapshot-based setup, network controls, and automatic cleanup
🔌 SSH access and preview links Shell into running sandboxes with arc ssh and expose ports with arc preview for live debugging
🌲 Git checkpointing Every stage commits code changes and execution metadata to Git branches. Resume, revert, or trace any change
📊 Automatic retros Each run generates a retrospective with cost, duration, files touched, and an LLM-written narrative
Comprehensive API REST API with SSE event streaming and a React web UI. Run workflows programmatically or as a service
🦀 Single binary, no runtime One compiled Rust executable with zero dependencies. No Python, no Node, no Docker required
⚖️ Open source (MIT) Full source code, no vendor lock-in. Self-host, fork, or extend to fit your workflow

Example Workflow

A plan-approve-implement workflow where a human reviews the plan before the agent writes code:

digraph PlanImplement {
    graph [
        goal="Plan, approve, implement, and simplify a change"
        model_stylesheet="
            *        { llm_model: claude-haiku-4-5; reasoning_effort: low; }
            .coding  { llm_model: claude-sonnet-4-5; reasoning_effort: high; }
        "
    ]

    start [shape=Mdiamond, label="Start"]
    exit  [shape=Msquare, label="Exit"]

    plan      [label="Plan", prompt="Analyze the goal and codebase. Write a step-by-step plan.", reasoning_effort="high"]
    approve   [shape=hexagon, label="Approve Plan"]
    implement [label="Implement", class="coding", prompt="Read plan.md and implement every step."]
    simplify  [label="Simplify", class="coding", prompt="Review the changes for clarity and correctness."]

    start -> plan -> approve
    approve -> implement [label="[A] Approve"]
    approve -> plan      [label="[R] Revise"]
    implement -> simplify -> exit
}

Agents run as multi-turn LLM sessions with tool access. Human gates (hexagon) pause for approval. The stylesheet routes planning to a cheap model and coding to a frontier model. See the DOT language reference for the full syntax.


📖 Documentation

Arc ships with comprehensive documentation covering every feature in depth:

  • Getting Started -- Installation, first workflow, and why Arc exists
  • Defining Workflows -- Node types, transitions, variables, stylesheets, and human gates
  • Executing Workflows -- Run configuration, sandboxes, checkpoints, retros, and failure handling
  • Tutorials -- Step-by-step guides from hello world to parallel multi-model ensembles
  • API Reference -- Full OpenAPI spec with authentication, SSE events, and client SDKs

Quick Start

Install

curl -fsSL https://fabro.sh/install.sh | bash

# Initialize your project
cd my-repo/
arc init

# Run your first workflow
arc run hello

Help or Feedback


License

Arc is licensed under the MIT License.