fabro/README.md
Bryan Helmkamp 0423bf5d07 Remove Docker from system requirements
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-10 14:54:07 -04:00

8.6 KiB

Arc

The software factory for small teams of expert engineers

Arc replaces the prompt-wait-review loop with version-controlled workflow graphs that orchestrate AI agents, shell commands, and human decisions into repeatable, long-horizon coding processes.

Define workflows in Graphviz DOT, route tasks to the right model with CSS-like stylesheets, and let the engine handle orchestration, parallelism, checkpointing, and verification -- all from a single Rust binary.

License: MIT docs


Table of Contents


Key Features

What Arc Does

Feature Description
🤖 Multi-model orchestration Route tasks to the right model per node -- cheap for boilerplate, frontier for hard reasoning
💠 Declarative workflows Define pipelines in Graphviz DOT -- diffable, reviewable, composable
Human-in-the-loop Approval gates, interviews, and real-time steering let you intervene at the right moments
🔄 Checkpoint and resume Git-native checkpointing after every stage -- inspect, revert, or fork from any point
🛡️ Adaptive verification Combine LLM-as-judge, test suites, and human review into quality gates
📊 Full observability Every tool call, agent turn, and decision point captured in a unified event stream

How Arc Does It

Feature Description
🎨 Model stylesheets CSS-like selectors (*, .class, #id) assign models, providers, and reasoning effort
🌳 Git-native checkpoints Every stage commits to a branch -- resume interrupted runs exactly where they left off
📦 Sandbox isolation Run agent tools in local, Docker, Daytona cloud VMs, or exe.dev ephemeral VMs
🔌 MCP integration Extend agents with any Model Context Protocol server (Playwright, databases, APIs)
🔁 Loops and fan-out Implement-test-fix cycles, parallel code reviews, and ensemble multi-provider patterns
🦀 Written in Rust Single compiled binary with minimal dependencies -- no Python runtime, no npm install
⚙️ CLI and API modes arc run for local dev, arc serve for production with a React web UI

Read the full documentation for details.


Quick Start

Warning

Arc is in private research preview. Contact bryan@qlty.sh if you're interested in trying it.

Install

Download the latest release for your platform:

# macOS (Apple Silicon)
curl -fsSL https://github.com/brynary/arc/releases/latest/download/arc-aarch64-apple-darwin.tar.gz | tar xz
sudo mv arc /usr/local/bin/

# Linux (x86_64)
curl -fsSL https://github.com/brynary/arc/releases/latest/download/arc-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv arc /usr/local/bin/

Or download directly from GitHub Releases.

Build from source

Requires Rust (latest stable):

git clone https://github.com/brynary/arc.git
cd arc
cargo build --release
# Binary is at ./target/release/arc

Configure API keys

Set at least one LLM provider key:

export ANTHROPIC_API_KEY=sk-ant-...
# and/or
export OPENAI_API_KEY=sk-...
export GEMINI_API_KEY=AI...

Run the setup wizard

arc install

Verify your installation

arc doctor --live

Run your first workflow

arc run docs-internal/demo/01-hello.dot

Or try a multi-step workflow with a human approval gate:

arc run docs-internal/demo/10-plan-implement.dot

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"]

    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", prompt="Read plan.md and implement every step."]
    simplify  [label="Simplify", prompt="Review the changes for clarity and correctness."]

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

Node types at a glance

Shape Type What it does
Mdiamond Start Workflow entry point
Msquare Exit Workflow terminal
box (default) Agent Multi-turn LLM with tool access
tab Prompt Single LLM call, no tools
parallelogram Command Runs a shell script
hexagon Human gate Pauses for human input
diamond Conditional Routes based on conditions
component Parallel Fans out to concurrent branches
tripleoctagon Merge Collects parallel branch results

Multi-model routing with stylesheets

graph [
    model_stylesheet="
        *        { llm_model: claude-haiku-4-5; reasoning_effort: low; }
        .coding  { llm_model: claude-sonnet-4-5; reasoning_effort: high; }
        #review  { llm_model: gemini-3.1-pro-preview; llm_provider: gemini; }
    "
]

Selectors follow CSS specificity: * (0) < shape (1) < .class (2) < #id (3).


Supported Models

Model Provider Aliases
claude-opus-4-6 Anthropic opus
claude-sonnet-4-5 Anthropic sonnet
claude-haiku-4-5 Anthropic haiku
gpt-5.2 OpenAI gpt5
gpt-5.3-codex OpenAI codex
gpt-5.4 OpenAI gpt54
gemini-3.1-pro-preview Gemini gemini-pro
gemini-3-flash-preview Gemini gemini-flash
kimi-k2.5 Kimi kimi
glm-4.7 Zai glm
minimax-m2.5 MiniMax minimax
mercury-2 Inception mercury

Run arc model list for the full catalog. Provider fallback chains are configurable per-run.


System Requirements

  • macOS (Apple Silicon) or Linux (x86_64)
  • At least one LLM provider API key (Anthropic, OpenAI, or Gemini)
  • Git (for checkpoint and resume)
  • Rust (only if building from source)

Help or Feedback


Contributing

See CLAUDE.md for build commands, architecture overview, and development conventions.


License

Arc is licensed under the MIT License.