AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Cursor, Claude Code, Codex, Grok, 인간을 위한 로컬 퍼스트 협업·게이트·독립 검토·해시 체인 감사 로그
Local-first coordination for Cursor, Claude Code, Codex, Grok, and humans. Gates, independent review, hash-chained audit log.
개발 도구Python · HTMLGitHub @theDeviser온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Local-first handoffs between coding agents—one task store, MCP, headless CLIs, budgets, and human merge gates.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Verified handoff and independent review across AI coding tools, local-first.
Site · Changelog · Docs · Roadmap
agentsys is a zero-dependency coordination layer (Python 3.9+, SQLite, git) so Cursor, Claude Code, Codex, Grok Build, OpenCode, and humans share one task store. Work is not done until an automated gate passes and a different identity reviews it; merges need a human. Hash-chained audit events, git hooks, MCP worker tools, and per-account budgets are first-class—not afterthoughts.
human: actor.git clone https://github.com/theDeviser/agentsys.git ~/agentsys
export PATH="$HOME/agentsys/bin:$PATH" # or: pip install -e ~/agentsys
agentsys --version
AGENTSYS_DEMO=1 agentsys demo --force # <30s scripted story
MCP (Cursor): add a stdio server — agentsys mcp --as cursor:you:work — or use the site install button after Pages is live.
Run inside any git repository. The store lives at <repo>/.agent-system/state.db; add .agent-system/ to .gitignore.
export AGENTSYS_ACTOR=human:alice
agentsys init
agentsys task add "Locate the settings page" --kind research
agentsys task add "Add a dark-mode toggle" --path "src/settings/*" --check "npm test" --goal "..."
# Agent A (e.g. in Cursor) researches and hands off a finding
agentsys --as cursor:alice:researcher claim t-1234abcd
agentsys --as cursor:alice:researcher finding t-1234abcd "Settings live in src/settings/page.jsx" \
--evidence src/settings/page.jsx:12
agentsys --as cursor:alice:researcher submit t-1234abcd "located"
# Agent B (e.g. Codex) implements in an isolated worktree, starting from A's findings
agentsys --as codex:alice:implementer claim t-5678efgh # prints the worktree path
agentsys resume t-5678efgh # self-contained brief: goal, scope, findings, checkpoint
# ...edit files in the worktree...
agentsys --as codex:alice:implementer submit t-5678efgh "toggle added"
agentsys --as system:verifier verify t-5678efgh # scope, syntax, secret scan, --check commands
agentsys --as claude:bob:reviewer review t-5678efgh approve --reason "diff matches goal"
agentsys --as human:alice merge t-5678efgh # requests approval the first time
agentsys --as human:alice approve 1 && agentsys --as human:alice merge t-5678efgh --cleanup
agentsys adapters # what's installed (also finds CLIs bundled in IDE extensions)
agentsys budget set anthropic bob --limit 1000000 # required before any real dispatch
agentsys dispatch t-5678efgh --adapter claude --account bob --max-usd 2
agentsys dispatch t-5678efgh --adapter grok --account bob # Grok Build CLI (xAI)
agentsys dispatch t-5678efgh --adapter opencode --account bob # OpenCode CLI (underlying provider)
agentsys dispatch t-5678efgh --adapter mock # deterministic, free, labelled [MOCK]
agentsys budget show
Budgets are per provider account and never pooled. An account's usage is counted across every project on the
machine (~/.agentsys/ledger.db, override with AGENTSYS_LEDGER), so a cap holds whichever repo dispatches.
agentsys budget set anthropic bob --limit 1000000 --per-run 200000 # total cap + refuse any single run above 200k
agentsys budget set openai me --limit 0 --window-hours 5 # no cap; track usage over a rolling 5h window
Caps are checked before a run starts. CLIs can't be stopped mid-run on tokens, so a run that goes over is reported afterwards rather than prevented.
agentsys ui --also ~/other-project # http://127.0.0.1:8791 (add --read-only to disable edits)
It shows what each agent is doing now, how every task moved between agents, a run timeline with tokens, spend
per account, and anything waiting on you, with the exact command to run next. Deep links: ?view=flow|runs|budget|activity,
?task=<id>, ?theme=light|dark. Provider logos are from LobeHub Icons (MIT).
ready → in_progress → submitted → verified → accepted → merged
│ ▲ │ │
│ └ lease expiry (attempts < max) ┘ → escalated (human requeues)
▼ ▼ ▼
blocked changes_requested ←┘ (verify fail / review reject) → claim again
| Rule | Enforced by |
|---|---|
| Only the owner can submit or release | store.transition(owner_only=True) |
| Dependencies must be accepted/merged before claim | Store.claim |
Overlapping --path scopes can't both be in progress | Store.claim |
| Anyone who claimed or checkpointed a task can't review it | cmd_review |
Only human: actors can grant approvals | Store.decide_approval |
| Every state change writes an audit event in the same transaction | Store._move |
| Check | What it does |
|---|---|
| scope | every changed file matches the task's --path globs |
| syntax | bun build --no-bundle for JS/JSX/TS (if bun is installed), py_compile, JSON parse |
| secrets | regex scan of added lines and forbidden filenames (.env, *.pem, …). Matches are reported by type, never echoed. |
| commands | each --check command, run in the worktree |
| evidence | research tasks need at least one finding with --evidence |
| Adapter | CLI | Usage data | Sandbox defaults |
|---|---|---|---|
mock | built in | zero, labelled mock | n/a |
cursor | cursor-agent -p --output-format json | provider-reported usage | --sandbox enabled; --mode ask for research |
claude | claude -p --output-format json | provider-reported usage + total_cost_usd | --allowedTools limited to Read/Glob/Grep(/Edit/Write) |
codex | codex exec --json | provider-reported turn.completed.usage | --sandbox read-only / workspace-write |
grok | grok --prompt-file … --output-format json | provider-reported usage + total_cost_usd when complete | --sandbox read-only / workspace |
opencode | opencode run --format json | summed step_finish tokens + part.cost | OPENCODE_CONFIG_CONTENT permissions (read-only / write) |
Adapters strip provider API-key variables from the child environment, so a run never silently switches from a subscription login to pay-per-token API billing.
agentsys usage add.python3 -m unittest discover -s tests -v
agentsys verify-log
agentsys doctor
agentsys mcp # stdio worker MCP; see docs/integrations.md
MIT. See LICENSE.
Cursor, Claude, Codex, Grok, OpenCode, and other product names and logos are trademarks of their respective owners. They are used only to identify compatible tools; agentsys is an independent project. See THIRD_PARTY_NOTICES.