Grasp
Over the past two years, as large models got stronger, I explored widely and shipped 150+ personal projects. Two problems kept getting in the way:
- Multi-project switching is expensive — bouncing between IDEs, with run state and context hard to keep straight;
- Parallel agent work is hard to read — models dump long walls of text, burying what actually matters, so understanding costs a lot of time.
Website · Quick start · Contributing · Configuration · Gateway
English | 简体中文
Demo
https://github.com/user-attachments/assets/47728d1f-54a1-485e-967e-28d8c716ed36
Screenshots
Orchestrate multi-project, multi-agent development on one canvas.
Turn agent output into structured artifacts that are quick to review.
Manage projects, agent backends, and run configuration in one platform.
Track token usage and cost distribution across projects and models.
Core capabilities
| Capability | In the FSM |
|---|---|
| Visual canvas | Nodes + success / fail / rollback + when + checkpoints |
| Visual clarify | Grasp node → spec + plan + optional page.html |
| Human gates | Inbox, run detail, shareable temp links |
| Parallel runs | Many machines at once; humans approve from one inbox |
| Artifact MCP | Isolated per run; required outputs gate transitions |
| Git delivery | gh / glab / SSH inside the sandbox |
| Observability | Timeline, sandbox logs, artifacts, token usage |
The repository includes Clarify, Visual, Research, Proposal, Plan, Implement, Test, Preview, and Review role packs. Run agents/pack.sh and import them in Agent Studio.
Typical workflow
Short pre-dev loop:
One sentence → Grasp (clarify / plan / page.html) → Human gate → build
Fuller delivery machine:
Clarify → Research → Proposal → Human gate
→ Plan → Implement → Test → Review
→ Human confirm → PR / MR
Draw the fail and rollback edges on the same canvas. The next failure should follow a path you already designed.
Quick start
Requirements
- Linux host
- Git
- Docker and Docker Compose
Start
The default path pulls published GHCR images and does not build them locally:
git clone https://github.com/cocofhu/grasp.git
cd grasp
./start.sh -d
Open:
- UI / API:
- API health:
- Gateway health:
- Local demo login:
admin/demo1234
The sandbox runtime is pulled on demand when you first create a sandbox (Inbox / run page show pull loading). Warm it with ./start.sh pull.
Useful commands:
./start.sh logs # follow logs
./start.sh down # stop the stack
./start.sh pull # refresh GHCR images
./start.sh dev -d # source stack: Go + Vite HMR
Override image tags or digests in .env; see .env.example.
Build your first workflow
- Sign in with the local demo account. A fresh installation starts with an empty project and does not create a sample pipeline.
- Create an agent in Agent Studio, select
cursor,claude_code,codebuddy,trae, oropencode, and configure the matching API key. - Open the canvas: connect a Grasp node after start, then Visual / gate / implement nodes. Draw success, fail, and rollback — mark checkpoints where a retry should re-enter.
- Publish and start a run (or launch from Home in one sentence). Watch the state trace,
page.htmlpreview, and inbox items waiting at gates.
server/README.md for backend authentication and Agent env configuration.
Architecture
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Vue 3 + Vue Flow │────▶│ Go Backend │────▶│ sandbox-gateway │
│ FSM canvas │◀────│ engine + API+MCP │◀────│ control plane │
└──────────────────┘ └────────┬─────────┘ └────────┬─────────┘
│ │
│ ▼
│ ┌──────────────────┐
└──────────────▶│ Docker sandboxes │
artifacts │ ACP backends │
└──────────────────┘
web/— Vue 3 + Vue Flow canvas, Home clarify, run details, inbox, and Agent Studio.server/— Go FSM engine, API, SQLite, artifact MCP, scheduling, and audit.sandbox-gateway/gateway/— sandbox lifecycle control plane.sandbox-gateway/sandbox/— universal sandbox image and ACP bridge.agents/— importable role-agent workspaces.docs/— project site and bilingual help content.
server/CONFIGURATION.md for all options and GATEWAY.md for the gateway contract.
Development and quality
Development requirements: Go, Node.js, and Docker Compose; sandbox execution requires Linux.
./start.sh dev -d
Module-specific lint, test, coverage, and E2E commands are documented in AGENTS.md and CONTRIBUTING.md. The security workflow runs CodeQL, web npm audit, and gitleaks on pushes and pull requests.
Deployment and security notes
- The default account is for local demos only. Configure your own authentication users before any shared or production deployment.
- Keep ACP API keys and Git credentials in project or Agent env; never commit them.
- Pin production images by digest; see Release images and smoke.
- Grasp is still beta software. Perform your own security review, backups, and capacity validation before production use.
- Reverse proxy Host: temporary approval share links mint from this request's
Host(never clientX-Forwarded-Host). Preserve the browser Host (for example nginxproxy_set_header Host $host) and forwardX-Forwarded-Protowhen TLS terminates upstream. SeeSECURITY.md. - DB ↔ attachment lifecycle: release Compose separates SQLite (
./.localdata/db) from app-data/blobs (./.localdata/app-data). Backup and clean them as a pair (and include a customGRASP_BLOBS_ROOTif set); otherwise Run inputs can keepblob:refs whileGET /api/blobs/:idreturns 404. Historical orphans are shown as permanent UI placeholders only—this release does not ship an orphan scanner. See Quick start · Database and attachments.
Documentation
- Core concepts
- Quick start
- Full configuration
- Gateway contract
- Contributing guide
- Security policy
- Support
Contributing
Issues and pull requests are welcome. Read CONTRIBUTING.md, AGENTS.md, and CODE_OF_CONDUCT.md before contributing.
License
MIT © 2026 cocofhu