Agent workflows that advance with humans — a new paradigm for multi-agent collaboration.
Approving turns coding agents into workflows you can trust: visual orchestration, sandboxed execution, and human Approve at critical nodes before continuing. Open-source and self-hostable, with rollback and human gates. See the Site — This project was built with this workflow.
Security scans (CodeQL, web npm audit, gitleaks) run via the security workflow on push/PR. View CodeQL under Security → Code scanning (or PR Checks); npm audit and gitleaks results are in the corresponding Actions job logs.
Site · Contributing · Security · Support · Configuration · Gateway
English | 简体中文
Approving helps agent workflows move forward with humans: visually orchestrate multi-agent collaboration, run in sandboxes, and pause for human Approve at critical nodes. Backends include Cursor, Claude Code, CodeBuddy, and Trae.
Named for Approve: in human–agent collaboration, critical nodes must be approved by a person before the workflow continues — trust is built into the path.
Approving manages the full agent workflow: from graph design to sandboxed execution to artifact handoff.
- Visual orchestration — canvas FSM with when guards, checkpoints, and gates; rollback on failure
- Real Docker sandboxes — agent and react nodes run in containers via ACP through the vendored
sandbox-gateway. The web UI is API-driven. - Multi-agent backends — one platform for Cursor, Claude Code, CodeBuddy, and Trae. Pick
acpBackendper agent; keys live on Agent meta env. - Artifact contract + run-scoped MCP — agents call
write_artifact/set_*/node_complete. Each run is isolated by token. - Git credentials in the sandbox — configure
GITHUB_*,GITLAB_*, or SSH on Agent meta env (values may reference${vars.<name>}). GitLab auto-MR viaglabremains available; GitHub PRs use Agent-sidegh. - Single-repo self-host —
sandbox-gatewayand sandbox image sources live in this repository. One clone is enough.
Linux host with Docker Compose. The default path pulls published GHCR images (no local image build):
./start.sh -dThen open:
- UI / API: http://localhost:8080
- API health: http://localhost:8080/api/health
- Gateway health: http://localhost:8899/healthz
- Default login:
admin/demo1234(local-demo)
./start.sh also pulls the sandbox runtime image from GHCR (several GB). Until that finishes, sandbox chat stays on “starting sandbox…”.
Useful commands:
./start.sh logs
./start.sh down
./start.sh pull # refresh GHCR images
./start.sh dev -d # source stack: go run + Vite HMRImage tags and digests are overridable in .env — see .env.example. For release pinning and smoke tests, see Contributing.
./start.sh -dOpen http://localhost:8080 and sign in with admin / demo1234. Fresh installs start with an empty project — there is no sample pipeline.
In Agent Studio, create or edit an agent. Set acpBackend (cursor, claude_code, codebuddy, or trae) and put the matching API key on Agent env. Details: server/README.md.
Use New workflow to create a pipeline, then build an FSM graph: agent / react nodes, success and failure edges, optional rollback paths, and human gates where someone must approve before the run continues.
Publish the pipeline if needed, then start a run. Watch sandbox execution, artifacts written via MCP, and any gate that waits for approval. Failed steps can follow failure or rollback edges instead of dying silently.
┌──────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Vue3 + │────>│ Go Backend │────>│ sandbox-gateway │
│ Vue Flow │<────│ (FSM + MCP) │<────│ (Docker) │
└──────────────┘ └────────┬─────────┘ └────────┬─────────┘
│ │
│ ▼
│ ┌──────────────────┐
└──────────────>│ universal sandbox│
artifacts │ (ACP backends) │
└──────────────────┘
| Layer | Stack |
|---|---|
| Frontend | Vue 3 + Vue Flow |
| Backend | Go (approving-server, env prefix APPROVING_) |
| Execution | Vendored sandbox-gateway + universal sandbox images |
| Agent backends | Cursor, Claude Code, CodeBuddy, Trae (ACP) |
For contributors working on the Approving codebase, see the Contributing Guide. Critical-path Playwright e2e (CI web-e2e): see CONTRIBUTING — Critical-path Playwright e2e.
Prerequisites: Go, Node.js, Docker Compose (Linux host for sandboxes)
./start.sh dev -dSource layout: server/ (Go FSM + sandbox client + artifact MCP), web/ (Vue UI), sandbox-gateway/ (gateway + sandbox image sources).
Configuration: server/CONFIGURATION.md and server/config.example.yaml. Precedence: explicit env > mounted file > defaults. Git credentials for sandboxes stay on Agent meta env, not platform config.
MIT © 2026 cocofhu