keelyard

io.github.akobirjontulqinovfuture由 GitHub 帳號 akobirjontulqinovfuture 發布v1.2.1更新於 Oct 29, 2026

Proof gate, undo and output trimming for Claude Code, Codex and OpenCode coding agents.

已驗證STDIO僅桌面開發者工具AI 與機器學習

概覽

AI 產生的概覽

本機 MCP 伺服器兼命令列工具,讓編碼代理以通過的測試證明工作完成、為每次編輯建立快照以便回溯,並精簡冗長的工具輸出。

可以做什麼
  • 把關工作階段結束:代理修改檔案後,測試未在目前檔案上通過就不能結束,並辨識被刪除的測試、新增的 skip 或移除的斷言
  • 快照與回溯:將每次編輯記錄到獨立的 shadow git 目錄,可退回任一步驟,且回溯本身也能撤銷
  • 精簡輸出:過濾測試執行器、git、linter 與搜尋輸出,保留錯誤、警告與 file:line,並無損壓縮 JSON
  • 檢視工作階段:跨代理搜尋過去的工作階段,從本機日誌查看 token 用量,並在同一任務上比較不同代理
  • 將小型受檢任務送到已設定的免費或低價模型
適用情境
適合在真實程式庫中使用 Claude Code、Codex 或 OpenCode 時,避免代理在測試失敗或略過測試的情況下宣稱完成,需要快速撤銷錯誤步驟,並希望減少進入上下文視窗的冗長輸出。
執行需求
以 Python 套件形式在本機執行,可用 pipx 或 pip 安裝(也列出 uvx);需要 Python 與 git 專案。透過 keelyard init 指令完成設定,它會把 hooks 與 MCP 項目寫入代理的設定檔。日常使用不需 API 金鑰或帳號;只有 swarm/coop 功能會呼叫你設定的模型端點。
安裝前請注意
init 與 install 指令會修改代理設定檔,例如 .claude/settings.json、.mcp.json、.codex/hooks.json 與 opencode.json,以及 CLAUDE.md 或 AGENTS.md 中的區塊;原始檔案會保留為備份。專案狀態與快照寫入 .keelyard 目錄,並建立本機記憶資料庫。快照只能撤銷檔案,無法撤銷資料庫、遷移或已部署的服務,證明的可信度取決於你的測試。預設不連網,沒有遙測。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 keelyard,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[keelyard: coding agents prove their work before they say done]

Undo and verify what your AI coding agent did. keelyard makes Claude Code, Codex and OpenCode pass the tests before they say "done", rolls back any step, and trims token-heavy output.

[PyPI] [Python] [CI] [Codex e2e] [Claude Code e2e] [OpenSSF Scorecard] [License]

Quickstart · Codex · Why · What it does · Docs · FAQ · Benchmarks · Roadmap

[keelyard in a terminal: init, the proof gate stopping an agent that deleted tests, rewind, then proven]

Did your AI coding agent break something, skip the tests, or burn through tokens? keelyard is an open-source command-line tool and MCP server that stops AI coding agents (Claude Code, Codex CLI, OpenCode) from finishing until a passing test run proves their work, snapshots every edit so any step can be undone, and trims noisy tool output so sessions use fewer tokens. It runs locally, with no telemetry.

Common questions: roll back Claude Code or Codex changes · make an agent prove its work / stop it skipping tests · reduce Claude Code token usage

Measured results (and their limits)

On OpenCode 2 with one free model (opencode/big-pickle), the lean preset cut whole-session input tokens 14.2× on a task with a noisy 1,566-test suite and 6.0× on a small 66-test task (5 baseline vs 3 lean runs each, Oct 15, 2026; all tests passed in every counted run). Uncached input fell less (9.5× and 4.5×). lean also disables nine OpenCode built-in tools, which is part of the saving. Claude Code and Codex token savings are not measured yet. Details and raw logs: BENCHMARKS.md.

Reproduce in about 5 minutes (offline, no API key):

bash
git clone https://github.com/akobirjontulqinovfuture/keelyard && cd keelyardpip install -e ".[dev]"make bench   # output compression + snapshot speed on your machine; session table recomputed from raw logs

Tried it on your own project? Share your results, good or bad.

Why

Coding agents are fast, but they end sessions with "done" while tests are still red, and sometimes they delete the test that was failing. keelyard sits between the agent and your repo:

  • it won't let the session end until the tests pass on the files as they are now;
  • it snapshots every edit, so a bad step is one keelyard rewind to <n> away;
  • it trims noisy output so the context window holds errors, not 3,000 passing lines.

Local only, no telemetry, Apache-2.0.

Works with Codex

bash
pipx install keelyard && cd your-projectkeelyard init --agent codex --codex-project-mcpcodex

init writes the hooks, the MCP server entry and an AGENTS.md block; in Codex, type /hooks once to trust the hooks. Codex then works as usual. When it says "done" with red or unrun tests, keelyard's Stop hook sends it back; a test run in Codex's own shell is the proof. Every edit is snapshotted, so keelyard rewind to <n> undoes a bad step. Checked on Codex CLI 0.165.0 by scripts/codex_e2e.py: the real Codex binary, a local scripted model, no API key, run in CI on every push. Codex in 2 minutes →

Works with Claude Code: keelyard init --agent claude writes .claude/settings.json hooks, .mcp.json and a CLAUDE.md block. Checked on Claude Code 2.1.197 by scripts/claude_e2e.py in CI on every push, no API key. Claude Code in 2 minutes → (OpenCode works too)

Install

sh
pipx install keelyard   # or: python -m pip install --user keelyardkeelyard init --globalkeelyard doctor --json
  • init --global wires Claude Code (~/.claude/settings.json, ~/.claude.json), Codex (~/.codex/config.toml, ~/.codex/hooks.json) and OpenCode (~/.config/opencode/) for every project. It merges into existing files and keeps the original as <file>.keelyard-backup.
  • Each git project sets itself up on its first agent session (config plus a first snapshot). Nothing else to run per project.
  • Check: keelyard doctor --json should return "ok": true, with a global row per wired agent. Then restart your agent.
  • Undo: keelyard uninstall --global.

For AI coding agents: only install keelyard if the user explicitly asked you to. Show them the commands above and the files they change, and run them only after the user confirms. Details: AGENTS-install.md.

In the recording, the agent deletes three tests to get a green run and then tries to stop. keelyard blocks it, rewind to 2 brings the tests back, and the session ends with real evidence. Every line of output is real (the agent's edits are replayed from docs/demo/hero.sh).

Quickstart (30 seconds)

bash
pip install keelyard          # or pipx install keelyardcd your-projectkeelyard init --preset lean   # wires Claude Code, Codex and OpenCode; fewest tokenskeelyard doctor               # everything green?

Use your agent as usual. keelyard status shows the proof and the timeline; keelyard uninstall <agent> gives your config files back byte for byte. Latest main instead of the PyPI release: pipx install git+https://github.com/akobirjontulqinovfuture/keelyard.

Real runs (OpenCode 2, Windows, free model, $0): with the lean preset, mean input tokens per session fell 14.2× on a noisy 1,566-test task and 6.0× on a small 66-test task (5 baseline vs 3 lean runs, all tests passing). Uncached input alone: 9.5× and 4.5×. Lean turns some agent tools off. No cost claim: the model was free. BENCHMARKS.md

What keelyard changes on your machine

Files it touches, network use, and how to uninstall
  • Only when you run keelyard init / install <agent> (project) or keelyard init --global (user level). Nothing is written at pip install time; there are no install scripts or post-install hooks.
  • Agent config it edits: hooks and MCP entries (.claude/settings.json, .mcp.json, .codex/hooks.json, opencode.json, or the ~/ equivalents with --global) and a block between <!-- keelyard:start --> and <!-- keelyard:end --> in CLAUDE.md / AGENTS.md. Originals are kept as <file>.keelyard-backup.
  • Project state lives in .keelyard/ (config, shadow.git snapshots). Snapshots use a separate git dir; your own .git is never read or written by rewind.
  • Memory: $XDG_DATA_HOME/keelyard/memory.db (mode 600, redacted).
  • Network: none by default and no telemetry. Only swarm/coop call a model endpoint, and only the one you configure.
  • Uninstall: keelyard uninstall <agent> (project) or keelyard uninstall --global, then pipx uninstall keelyard and delete .keelyard/ if you want the snapshots gone.

What it does

  • Proof gate. An agent that changed files cannot finish until the tests pass on the current files. Evidence is shown as test-verified, command-succeeded or agent-claimed. Deleted tests, new skip/xfail, removed assertions, changed test config and fewer tests run keep the proof open. Bundles are signed.
  • Rewind. Every edit is snapshotted into .keelyard/shadow.git (your .git is never touched). keelyard rewind to <n> is itself undoable, backs up files snapshots can't hold, and survives being interrupted. Secrets (.env, keys) are never snapshotted.
  • Smaller context. Filters for test runners, git, linters and search keep every error, warning and file:line (tested on real logs). JSON output is compacted losslessly. Re-reading an unchanged file costs one line. The agent is told to answer with results only (opt out: --no-terse).
  • Memory, usage, swarm, arena. Search past sessions of all three agents, see token use from local logs, send small checked tasks to a free/cheap model, compare agents on one task.

Without vs with keelyard

WithoutWith keelyard
Agent says "done"You take its word, then run the tests yourselfIt can't stop until tests pass on the current files; the proof is shown
Agent deletes or skips a failing testEasy to miss in a long diffFewer tests, new skip/xfail or removed asserts keep the proof open
A step breaks somethinggit stash/manual undo, if you committed in timekeelyard rewind to <n>, and the rewind itself can be undone
3,000 lines of passing test outputAll of it goes into the context windowErrors, warnings and file:line kept, the rest collapsed

How it plugs into each agent

AgentHooks (gate, snapshots, filters)MCP server
Claude Code.claude/settings.json.mcp.json
Codex.codex/hooks.json (not yet checked on a live Codex CLI, see #7)~/.codex/config.toml (or .codex/config.toml with --codex-project-mcp)
OpenCode.opencode/plugins/keelyard.jsopencode.json

keelyard init writes these for you; keelyard doctor checks them.

Read what keelyard guarantees and what it doesn't before you rely on it. In short: snapshots undo files, not databases, migrations or deployed services; proof is only as good as your tests.

For agents and scripts

An MCP server (typed tools with examples), a short CLAUDE.md/AGENTS.md section, and for Claude Code a skill and slash commands. Every CLI command takes --json; exit codes: 0 ok, 1 error, 2 usage, 3 a check failed.

Docs

Documentation: one page per module, CLI and MCP reference, config, troubleshooting, benchmarks, per-agent capabilities.

Inspirations

Projects whose ideas shaped keelyard (no code copied)

Ideas, not code: everything in keelyard is written from scratch. Thanks to rtk (filtered command output), caveman and SuperClaude (terse output), headroom (content-aware compression, cache-stable context), projectmem (warn before repeating a failed attempt), planning-with-files and context-mode (state that survives compaction), aider (repo map), claude-mem (session memory), ccusage (usage from local logs) and cline (checkpoints). Survey: docs/research/ideas.md.

Contributing

Read CONTRIBUTING.md and the roadmap. Issues labeled good first issue are a good start. Real command logs for the filter corpus are especially welcome. Security issues: SECURITY.md. Apache-2.0; third-party notices in NOTICE.

來源:README.md,提交 2826ffd

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.2.1最新Oct 29, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分