Codehamr
极简的本地优先终端编码代理:连接你自选的本地模型或 API,无需注册账号或订阅即可读写代码、执行命令。
- Star 数
- ★ 222
- 最近更新
- 1 个月前
- License
- MIT
- 主语言
- Go
- FA 评分
- 56/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 想在本地 Ollama 模型上运行编码代理、希望代码和提示不离开本机的隐私敏感开发者
- 不适合
- 需要沙箱隔离运行不可信代码的用户——codehamr 以当前用户权限直接执行 shell 命令且不提供沙箱
- 只想在 Windows 原生环境运行、不愿使用 WSL2 或 devcontainer 的开发者
- 模型服务器仅支持 /v1/chat/completions 而无 Responses API 的环境
这个 Agent 能做什么,适合哪些场景?
Codehamr 是一个 MIT 许可的独立终端编码代理,用 Go 编写,通过安装脚本提供 Linux、macOS 和 Windows(amd64/arm64)二进制。它通过 bash、read_file、write_file、edit_file 四个工具读取项目、修改代码、运行检查并汇报结果。模型接入完全由用户选择:默认配置一个指向 http://localhost:11434 的本地 Ollama 模型,也可添加 OpenRouter 等 API 供应商配置,无需项目账号或订阅。所有对话、提示历史和可选日志都保存在项目下的 .codehamr/ 目录中,API 请求只发往你配置的端点。它不提供沙箱,shell 命令以当前用户权限执行,Windows 上需在 WSL2 或 Linux devcontainer 内运行。
在项目目录启动后,codehamr 读取 .codehamr/config.yaml 中的模型配置(模型 ID、API 基址、可选密钥、context_size),按 Responses API 流式调用所选模型(如 qwen3.8:27b 或 anthropic/claude-opus-5.5)。代理通过四个工具循环工作:bash 执行 /bin/sh 命令、read_file 读取文件、write_file 写入文件、edit_file 编辑文件;它读取你的项目、做出修改、运行构建或测试检查,完成后答复。嵌入式系统提示要求它验证改动并把无法运行的检查标记为 unverified。/models 列出或切换配置,/clear 重置对话,提示历史保存在 .codehamr/history,可选 logging: true 将提示、响应和工具活动记录到 .codehamr/log.txt。
- 想在本地 Ollama 模型上运行编码代理、希望代码和提示不离开本机的隐私敏感开发者
- 已有 OpenRouter 或其他 Responses API 兼容供应商账号、想在终端中调用 Claude 等大模型改代码的工程师
- 希望在 devcontainer 或虚拟机内让代理自动执行构建与测试并汇报检查结果的团队
- 偏好极简工具链(一个二进制、一个配置文件、两个斜杠命令)而非重型 IDE 插件的用户
- 需要在低配离线环境或自托管推理服务器上试用编码代理的评估者
如何安装或部署这个 Agent?
Linux 或 macOS:
curl -fsSL https://raw.githubusercontent.com/codehamr/codehamr/main/install.sh | bashWindows:
curl -fsSL https://raw.githubusercontent.com/codehamr/codehamr/main/install.cmd -o install.cmd && install.cmd两个安装脚本从项目 GitHub Releases 下载二进制。首次启动会在当前目录生成 .codehamr/config.yaml,默认包含一个 local 配置。
如何使用这个 Agent?
在项目目录运行 codehamr 即可开始。若使用 OpenRouter:
export OPENROUTER_API_KEY='your API key'
codehamr然后输入 /models openrouter 切换配置。配置示例:
active: local
models:
local:
llm: qwen3.8:27b
url: http://localhost:11434
key: ""
context_size: 262144
openrouter:
llm: anthropic/claude-opus-5.5
url: https://openrouter.ai/api/v1
key: ${OPENROUTER_API_KEY}
context_size: 1000000在 Ollama 上需将 context_size 与 OLLAMA_CONTEXT_LENGTH 或 Modelfile 的 num_ctx 对齐。操作键:Enter 提交提示,Alt+Enter 换行,Ctrl+C 取消当前回合(再按退出),Ctrl+D 在空提示时退出,Ctrl+L 清屏保留对话,/clear 重置对话与历史。
这个 Agent 有哪些优点和局限?
- 模型与供应商完全可插拔:本地 Ollama、OpenRouter 或任何 Responses API 兼容服务器均可,密钥可用 ${VARIABLE} 形式引用环境变量
- 极简设计:四个工具、两个斜杠命令、一个配置文件,二进制即可运行,安装一条命令
- 本地优先:提示历史和配置保存在项目 .codehamr/ 下,API 请求只发往你配置的端点,无需注册项目账号
- 上下文管理内建:客户端为系统提示、工具 schema 和响应预留空间,将近期对话打包进剩余窗口
- 无沙箱:bash 工具以当前用户权限执行命令,隔离需自备 devcontainer 或虚拟机
- Windows 不能原生运行 bash 工具,必须使用 WSL2 或 Linux devcontainer
- 系统提示编译自 internal/config/PROMPT_SYS.md,修改需重新构建二进制
- 要求后端支持带流式和函数工具的 Responses API;仅暴露 /v1/chat/completions 的服务器需要适配器,/v1/models 连通性检查并不能证明兼容
- 带密钥的配置在启动和切换时会发送小型推理请求,可能产生少量供应商费用;context_size 为 token 估算值
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Codehamr 当前 | 56 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 222 | 1 个月前 | Go | — |
| slash-agent 终端助手 | 47 · 缺口较多 | — | ★ 10 | 24 天前 | Python | ChatGPT · Claude Code · OpenAI API |
| Nanocoder | 50 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 2.6k | 1 天前 | TypeScript | OpenAI API · Claude API |
| Distill 终端编程助手 | 47 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 775 | 今天 | Rust | ChatGPT · OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README明确说明bash工具以用户权限直接执行shell且无沙箱,但未描述任何命令审批或确认机制,最小权限与用户确认均薄弱;数据流披露较好(记录了API端点、日志、更新检查及退出开关);敏感数据有提示(.codehamr不入版本库、环境变量密钥);依赖已钉版本但无漏洞扫描证据;无回滚机制(日志每次启动被覆盖)。
README内部一致,go.mod与CI的Go版本互相印证,依赖钉死;但对失败场景的说明零散(如Responses不支持、工具解析器问题),错误消息质量无法从源文件验证。
面向终端开发者的本地/远程模型场景描述清楚,环境适配说明较全(WSL2、devcontainer、host.docker.internal);能力边界诚实但部分依赖模型遵循提示;触发面小(两个斜杠命令),精度描述尚可。
README结构清晰完整,MIT许可证文件齐备;但无CHANGELOG,日期式覆盖标签的版本策略不利于追溯,安装脚本仅以文档形式出现且采用curl|bash模式;维护者信息缺失。
输出体验有具体描述(流式、Markdown渲染、快捷键);但作为'极简'编码代理,与众多同类项目的差异化价值论证不足;成本披露较好(启动探测可能产生小额费用)。
README引用了PROMPT_SYS.md、测试和media/README.md,但本次审查未获得这些文件,无法追溯关键声明;go.mod与CI工作流可交叉印证部分事实;README对不确定性(token估算、验证依赖模型)表述诚实。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- bash工具以用户全权限直接执行命令且无沙箱,建议在devcontainer或虚拟机中运行;
- 安装使用curl | bash模式,静态审查无法验证install.sh内容,建议先审阅脚本再执行;
- 启动时的模型/凭据探测请求可能产生小额API费用,日志文件.log.txt在每次启动时被覆盖,历史不可恢复;
- 发布者身份未经核验,且本次审查未能看到工具实现源码,安全声明仅基于README自述;
- 无CHANGELOG且发布标签按日期覆盖,升级后难以对照行为变化。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。