chargehand

io.github.Egoushka由 GitHub 账号 Egoushka 发布v0.19.23更新于 Nov 13, 2026

Runs coding-agent workers on a codebase question; every claim in the answer carries evidence.

已验证STDIO仅桌面开发者工具AI 与机器学习

概览

AI 生成的概览

在代码仓库上运行只读编码智能体会话,返回每条论断都引用固定提交中文件与行号的答案。

可以做什么
  • 就代码库提问,获得包含论断、引用、未决问题、置信度与成本的类型化结果
  • 按预设运行会话,带 token 与金额预算、可选的只读子任务拆分,以及超限时的审批中断
  • 通过 code 预设与沙箱化批量任务写出经过测试的分支或草稿拉取请求
  • 查看运行日志、缓存与路由,并用成对评测把关提示词或预设改动
  • 可从 MCP 客户端、HTTP API、命令行、浏览器操作台或 Claude Code 插件命令使用
适用场景
当你希望助手对仓库的回答可被核查而非只是散文式描述时适用:每条论断都指向固定提交中的文件与行范围,无法解析的论断会转为未决问题。也适合希望在智能体运行外围加上预算、预设与提示词日志的团队。
运行要求
通过 dnx 以 stdio 在本地运行,需要 .NET 10 SDK;需要 PATH 中已登录的 Claude Code 2.1.283,或以 OpenCode 作为工作运行时。必须提供工作令牌:来自 claude setup-token 的 CLAUDE_CODE_OAUTH_TOKEN,或 ANTHROPIC_API_KEY。可选 CHARGEHAND_PROFILE 与 CHARGEHAND_RUNTIME。仅限桌面端。
安装前请注意
ANTHROPIC_API_KEY 按 token 计费,运行本身也带 token 与金额预算,智能体工作可能产生费用。该服务器会启动读取仓库克隆的智能体会话;写入类预设与批量任务会创建分支,并可能开启草稿拉取请求。项目处于 1.0 之前,请固定具体包版本并在升级前阅读变更日志。引用解析只确认目标存在,并不确认其内容支持该论断。

安装

在 SourceWeft 中

  1. 打开 控制台中的 chargehand,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[chargehand]

[status: Active] [CI] [last commit]

chargehand

Ask a question about your code from Claude Code or any MCP client and get back claims that each cite a file at a pinned commit, checked before you see them.

Active. I work on it this month.

mermaid
flowchart LR  caller[You or a program<br/>CLI · HTTP · MCP] -- request --> intake[Intake<br/>picks an action]  intake -- answer or split --> workers[Agent sessions<br/>Claude Code or OpenCode]  intake -- ask · deny · improve --> result  workers -- claims + citations --> resolver[Evidence resolver<br/>checks each citation]  resolver --> result[Typed result<br/>claims · open questions · cost]  workers -. code preset, driven batches .-> branch[Tested branch<br/>or draft pull request]  resolver --> log[(Run log<br/>tokens · cache · prompts)]

Why

Coding agents answer in prose. A program that calls one needs something it can check: claims tied to files at a commit, diffs, session messages or the caller's own inputs, plus a confidence and the exact prompts behind the answer. I also wanted the control flow (the task graph, budgets, retries, parallelism) in code rather than in a prompt, so each agent's context stays small, cached and disposable.

What it does

Answers with checked citations. You ask a question about a repository; chargehand runs a read-only agent session (Claude Code or OpenCode) on a clone at a pinned commit and returns typed JSON (result/v1): claims, open questions, a confidence, the cost and the prompts behind it. A citation is a file and line range, a commit, a diff range, a session message or an input id. Each one must exist at the pinned commit before a claim leaves its worker; the worker gets one repair turn, and claims that still fail move to open questions.

You reach it as an MCP server (stdio or HTTP), an HTTP API or a CLI. Presets (default, cheap, thorough, strict, draft, review) set the tools, the token and dollar budgets and whether a question may be split into 2 to 4 read-only subtasks.

Also in the box, each with its own guide:

  • A code preset and driven batches that write a tested branch or a draft pull request in a sandbox (Writing a branch, Driven sessions).
  • /chargehand:change, a Claude Code plugin command: one prompt to a reviewed change on a local branch (the change command).
  • An operator console in the browser (Web UI).
  • Prompt CI, which gates prompt and preset changes on paired evals; the run log records tokens, cache hits, cost and the prompt chain of every call (Prompt CI).

Not here: an agent loop of its own, direct calls to model providers, a model gateway, a memory store (it uses yours over MCP), a hosted service. A citation that resolves points at something that exists; checking that the cited text supports the claim is planned, not built (roadmap).

[!WARNING] Before 1.0. The images have no latest tag: pin an exact version and read the changelog before you upgrade.

Quick start

Ask Claude Code a question about your own repository, with no clone of chargehand.

You need:

  • the .NET 10 SDK (dotnet --version prints 10.x), which provides dnx;
  • Claude Code 2.1.283 on PATH (claude --version), signed in (run claude once);
  • a token for the workers: claude setup-token prints one for your subscription (an ANTHROPIC_API_KEY works too and bills per token).
bash
claude mcp add chargehand -e CLAUDE_CODE_OAUTH_TOKEN=<token> -- dnx [email protected] --yes -- mcp

Replace 0.19.4 with the newest version of the Chargehand package on nuget.org and pin it: the package changes before 1.0. In a Claude Code session in the repository you want to ask about, say: use chargehand to find where retries are decided, and cite the code. The answer lists claims, each with its file and lines. Other editors and agents (Cursor, VS Code, Codex, Gemini CLI and more) are in Connect your editor or agent.

From a clone, to ask one question about chargehand itself without MCP: it needs the .NET 10 SDK, git and the same Claude Code, signed in. With no profile, the workers use the CLI's own login and default model.

bash
git clone https://github.com/Egoushka/chargehand.git && cd chargehandcat > request.json <<EOF{  "contract_version": "request/v1",  "text": "Where does a split node decide whether to fork the first node's session? Cite the code.",  "context": { "interactive": false, "preset": "default",               "repository": { "path": "$PWD", "commit": "$(git rev-parse HEAD)" } }}EOFdotnet run --project src/Chargehand.Cli -- run < request.json

It prints result/v1 on stdout: claims with citations, open questions, a confidence and the cost. The quickstart guide explains every field, OpenCode instead of Claude Code, and what to do when a run fails.

How it works

  1. Intake reads the request (request/v1) and writes a Task Spec: one action, answer, split, ask, deny or improve. The last three stop the run with questions, a reason or a better request. A preset can also stop a run for approval above a risk or cost estimate.
  2. Workers are ordinary Claude Code or OpenCode sessions on a clone of the repository at the pinned commit, inside the directories the profile allows. chargehand never calls a model provider itself.
  3. The evidence resolver checks every citation against git, the session and the request. The invariant: no claim reaches the result unless its citations resolved.
  4. The result (result/v1) carries the claims, the open questions, usage and the prompt chain. The same record goes to the run log, which show, cache and routes read.

Writing runs follow the same path with a sandboxed worker: the code preset verifies a branch with the repository's tests, and driven batches add an egress allowlist, a runner that alone holds the Docker socket, and a check gate before a pull request opens. ARCHITECTURE.md maps the code.

Numbers

ValueSource
Citations that resolved, read-only runs50 of 50 (phase 3), 99 of 99 (phase 4)benchmarks
Cost of a split against one plain session1.53× ($0.00754 vs $0.00492 a run) for a blind score of 0.967 vs 0.950phase 4
Deliberate prompt regressions Prompt CI blocked1 of 2, and only after the score added completenessPrompt CI
Quality benchmark on public repositories13 tasks over 4 pinned repositories; no real run yetbenchmark
Users1, mecounted

Lessons

  • Parallelism did not pay on the questions I measured. Splits resolved every citation but cost half again as much for a small score gain, so the shipped default, review and draft presets allow no split (ADR 0017).
  • A score that measures what run-time checks already enforce catches nothing. The first Prompt CI score measured grounding, which the resolver already forces, so a prompt that dropped a third of the claims passed. The score now multiplies grounding by completeness (ADR 0019).

Docs

License

Versions after v0.19.19 are under the Functional Source License, Version 1.1, ALv2 Future License (FSL-1.1-ALv2): you may use, copy, modify and redistribute the code for any purpose other than a competing use, and each version converts to Apache-2.0 two years after its release.

Releases up to and including v0.19.19 were published under Apache-2.0 and remain Apache-2.0 (LICENSE-APACHE-2.0). See NOTICE.

来源:README.md,提交 d9e29ac

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:该软件包类型无法在沙箱中运行。

版本历史

32
  1. v0.19.23最新Nov 13, 2026
  2. v0.19.21Nov 11, 2026
  3. v0.19.14Nov 7, 2026
  4. v0.19.11Nov 4, 2026
  5. v0.19.10Nov 3, 2026
  6. v0.19.9Nov 1, 2026
  7. v0.19.8Oct 30, 2026
  8. v0.19.7Oct 30, 2026
  9. v0.19.6Oct 29, 2026
  10. v0.19.2Oct 26, 2026
  11. v0.19.0Oct 26, 2026
  12. v0.18.1Oct 24, 2026
  13. v0.18.0Oct 23, 2026
  14. v0.17.0Oct 22, 2026
  15. v0.15.0Oct 21, 2026
  16. v0.14.1Oct 20, 2026
  17. v0.13.1Oct 19, 2026
  18. v0.12.0Oct 19, 2026
  19. v0.11.0Oct 19, 2026
  20. v0.10.1Oct 18, 2026
  21. v0.9.6Oct 14, 2026
  22. v0.9.5Oct 14, 2026
  23. v0.9.4Oct 13, 2026
  24. v0.9.1Oct 13, 2026
  25. v0.8.8Oct 12, 2026
  26. v0.8.6Oct 10, 2026
  27. v0.8.5Oct 10, 2026
  28. v0.8.4Oct 5, 2026
  29. v0.8.2Oct 5, 2026
  30. v0.8.0Sep 30, 2026
  31. v0.6.1Sep 30, 2026
  32. v0.4.1Sep 29, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。