AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Chetter: self-hosted MCP server and runner fleet for autonomous AI development tasks
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Chetter is an Open Source system written in Go for running autonomous AI development agents using standard harnesses (OpenCode, Claude Code, CodeWhale, Pi, Codex, Niffler) in standard Docker or Kubernetes environments.
If you are looking for a simple(r) solution to self host standard autonomous coding agents, then Chetter should be interesting. Hop into our Discord if you want to know more.查看完整 README ↗Chetter is an Open Source system written in Go for running autonomous AI development agents using standard harnesses (OpenCode, Claude Code, CodeWhale, Pi, Codex, Niffler) in standard Docker or Kubernetes environments. If you are looking for a simple(r) solution to self host standard autonomous coding agents, then Chetter should be interesting. Hop into our Discord if you want to know more.
Chetter was built as a reaction towards the solutions available (E2B, Daytona, Modal etc) which often are not Open Source or want to lock you into them hosting your agents, need relatively exotic infrastructure like Firecracker VMs or use custom harnesses instead of industry standard harnesses.
Chetter instead ...
Prerequisites
docker.io package install docker-buildx too:
sudo apt-get install -y docker.io docker-compose-v2 docker-buildxgitDEEPSEEK_API_KEY) — set it in .envgit clone https://github.com/flatout-works/chetter.git
cd chetter
cp .env.example .env
# Edit .env: set CHETTER_MCP_AUTH_TOKEN and at least one LLM provider key
./deploy/build.sh
docker compose --env-file .env -f deploy/compose.yaml -f deploy/compose.local.yaml up -d
The MCP server is at http://localhost:18088, the web UI at http://localhost:18090.
See docs/MANUAL.md for detailed setup, configuration, and operations.
What you get: a dev TiDB (bundled via deploy/compose.local.yaml,
single-node unistore, MySQL-wire compatible — the chetter database and
all migrations are created automatically on startup), the MCP server, and two
runners. To run your first task you also need a default Git identity
(chetter_create_git_identity + chetter_set_git_identity_default via any
MCP client).
⚠ Security note: the quickstart runs agent tasks in plain Docker, without gVisor sandboxing (
compose.local.yamlsetsCHETTER_ALLOW_UNISOLATED=trueandUSE_GVISOR=false). That is fine for development, but it is not a security boundary against a malicious task. For a hardened deployment, enable gVisor — see docs/DEPLOYMENT.md and "Verifying gVisor" below.
The server defaults to hardened mode: every task requires gVisor-enforced isolation unless the deployment opts out. To go from the quickstart to a sandboxed setup:
runsc on the host and register it with Docker, per
docs/DEPLOYMENT.md ("Docker + gVisor").deploy/compose.local.yaml, set USE_GVISOR: "true" for the runners
(or drop the override) and remove CHETTER_ALLOW_UNISOLATED.docker compose up -d --force-recreate).chetter_runner_health),
andrunsc runtime:
docker inspect <task-container> --format '{{.HostConfig.Runtime}}' # → runsc
isolation="required" runs (instead of failing
with isolation_unavailable).ops/test-quickstart.sh runs the full Quick Start from scratch on a
disposable Ubuntu 24.04 KVM VM and asserts every step — ideal before
releases:
DEEPSEEK_API_KEY=sk-... ./ops/test-quickstart.sh # plain-Docker quickstart
DEEPSEEK_API_KEY=sk-... ./ops/test-quickstart.sh --gvisor # ...then gVisor hardening
The default run provisions the VM (no Docker preinstalled), installs the
prerequisites, and validates: image build, compose up, database
auto-creation + migrations, MCP connect, fleet health, a real task
execution, and the self-test. --gvisor additionally installs runsc,
switches the stack to hardened mode and re-validates with
isolation="required" tasks (including the HostConfig.Runtime == runsc
check). Each step is reported PASS/FAIL; the VM is torn down afterwards
(QS_KEEP_VM=1 keeps it for debugging). Requires /dev/kvm, libvirt
tooling, and sudo. See the script header for all options.
/chetter-review): see docs/TRIGGERS.md..opencode/opencode.json; set CHETTER_MCP_TOKEN and point the url at your serverclaude mcp add --transport http chetter https://chetter.example.com/mcp --header "Authorization: Bearer $TOKEN"| Path | Purpose |
|---|---|
main.go | Server entry point |
internal/ | Config, store, service, webhook, web UI |
cmd/ | chetterctl token management CLI |
db/ | Migrations and sqlc query files (TiDB/MySQL under db/migrations/, PostgreSQL under db/postgres/) |
proto/ | ConnectRPC service definitions (server ↔ runner) |
runner/ | Containerized runner harness |
web/ | SvelteKit web UI (Flowbite-Svelte) |
deploy/ | Docker Compose and Kubernetes manifests |
docs/ | Documentation |
Requires Go 1.26+, Node.js 24 + npm (the server embeds the web UI), and GNU Make.
make check && make build
make build compiles the SvelteKit web UI, embeds it into the server via
go:embed, and produces two binaries in bin/:
bin/chetter — the MCP server / control planebin/chetterctl — the token management CLIAfter changing proto/ or any db/queries/*.sql, regenerate the protobuf
and sqlc code (this also refreshes the dialect facade):
make generate
See AGENTS.md for the full developer command reference.
MIT