celesto
Secure and persistent computer for AI agents
Self-built branch protection and decision routing for solo developers using multiple AI coding agents. Vendor-neutral, GitHub Free-tier compatible, plugin-extensible.
Developer toolsGitHub @donggun-jungOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Self-built branch protection and decision routing for solo developers and small teams who use multiple AI coding agents (Claude Code, Codex, Cursor, Gemini-CLI, …) on the same GitHub repositories.
One human, many agents. Different sessions, different machines, different models — same
mainbranch. This protocol stops them from stepping on each other, gates merges through a self-built check, and routes irreversible decisions back to you instead of letting agents decide.
v1.5.0. The cron orchestrator is live: your private installation evaluates open PRs, merges the auto-approvable quadrants (A/B/C), routes irreversible+critical changes (D) to you via the Decision Inbox, and audits
main(L2 + L5). Installation is delegated — handdocs/agent-setup/AGENT_SETUP.mdto your own AI agent. New in 1.5: exact-object declared-state completion subreceipts and a fail-closed version-contract downgrade guard. These receipts verify Git-bound declarations; they do not claim live deployment causality. See the version-truth guide andSTATUS.md.
If you are a single developer using two or more AI coding agents to work on the same GitHub repository, you have probably hit at least one of these:
app/auth.py while Agent B (on a different machine, different model) is editing the same file. Nobody noticed; you spend an hour reconciling.main before you saw it.Claude / Codex / Cursor, but you cannot see which session was responsible or what reasoning each used.multiagent-protocol is a portable, vendor-neutral, self-built equivalent of branch protection that runs entirely from your own GitHub account on the Free tier. It enforces:
STATUS.md).main HEAD just before merge; the merge_pr call passes a sha precondition GitHub enforces server-side, and a stale base triggers an update-branch rebase. Implemented.Agent-* / Task-Ref trailers against your registry. Trailer-format (C5) is implemented; registry tool/model lookup ships advisory (P2) in v0.2.0 — promote to a hard block via severity_overrides. The 60-day burn-in is later.main for [break-glass-*] commits and require an ADR within 24 hours. Implemented, including the 24-hour ADR deadline check (v0.2.0).The protocol is split into a small bot (Python, ~3 kLOC, plug-in extensible) and a doctrine layer (Markdown files that an agent reads at session start). The bot runs as a GitHub App on a cron you size to your Actions budget — */30 by default on GitHub Actions Free, */5 on a self-hosted runner (the honest arithmetic is in the quick start, step 3).
The protocol is intentionally vendor-neutral. It treats every agent as one of:
claude-code, codex, cursor, gemini-cli, aider, <anything else you register>Identity is enforced through commit trailers, not API endpoints, so adding a new agent vendor takes a one-line registry update (config/agent_registry.yml). No agent has special status; all are equally untrusted-by-default.
This repo is the framework — shared, public, generic. Your config
(identity, repo list, agent registry, custom skills) is a separate private
data layer under config/. The product = framework + your config; there is no
"public version" and "my version" of the code, only different config. The web
wizard generates your config layer for you. See
docs/concepts/configuration-model.md.
The recommended path is delegated installation — your own AI agent sets everything up:
This is the beginning of the README. Read the rest at the original. Read the full README ↗