安装、命令参考、用量上报、常见问题
curl -fsSL https://yancyuu.github.io/Hermit/install.sh | bash
脚本会自动检测系统环境,如果没有 Node.js 会自动安装。支持 macOS 和 Linux。
npm install -g @yancyyu/openhermit@latest --prefer-online
openhermit
npx @yancyyu/openhermit@latest
所有命令都支持 --json 返回机器可读结果(适合脚本和 Claude Code 调用)。不带参数运行 openhermit 进入终端导航。openhermit 与 hermit 是同一程序的别名。
| 命令 | 说明 |
|---|---|
openhermit | 打开终端导航(控制面菜单):用量同步、本地工作台、用户、token 池 |
openhermit web | 直接启动并打开 Web 工作台,跳过终端导航;可加 --daemon 后台运行 |
openhermit --daemon --port 8080 | 后台运行 Web 工作台并指定端口(默认 5680) |
openhermit status | 查看后台 daemon / Web 运行状态 |
openhermit doctor | 只读本地诊断:配置、服务、路径 |
openhermit stop | 停止后台 daemon |
openhermit services | 终端服务菜单,按项启动/停止 web / usage / collaboration |
openhermit --version · --help | 查看版本 / 完整命令帮助 |
| 命令 | 说明 |
|---|---|
openhermit usage status | 查看后台 worker 是否运行、消息上报是否开启、上报运行时 |
openhermit usage today | 查看今日本地 usage 摘要(不上传) |
openhermit usage start | 开启轻量后台 usage 采集,默认配置开机自启;仅扫描本机 JSONL |
openhermit usage stop | 停止后台采集;默认关闭开机自启(--keep-autostart 保留) |
openhermit usage report | 立即扫描并按服务端游标增量上报新增消息;--full 忽略游标全量重扫,用于补报历史 |
openhermit usage autostart status|enable|disable | 管理开机自启(macOS launchd) |
| 命令 | 说明 |
|---|---|
openhermit auth status | 查看 AgentBus 用户授权状态 |
openhermit auth login | 通过飞书授权登录 AgentBus;登录后用量才有上报目标 |
openhermit auth logout | 退出 AgentBus 用户(不影响本地 runtime 登录) |
| 命令 | 说明 |
|---|---|
openhermit teams list | 列出本地团队(不启动 Web) |
openhermit teams create | 创建本地团队元数据;支持 --name / --harness / --bind-project / --work-dir |
openhermit tasks list --team <team> | 查看某个团队的活跃任务 |
openhermit collaboration start | 启用本地/自托管团队协作配置 |
| 命令 | 说明 |
|---|---|
openhermit update | 检查并自更新到最新版本 |
openhermit add <plugin> | 安装能力插件到 MCP library(例:add worker-society) |
openhermit aikey | 认领 token 池密钥(功能开发中,暂未开放) |
openhermit 不带参数进入终端导航(控制面菜单)。只想打开浏览器工作台用 openhermit web。任何命令加 --help 看完整说明,加 --json 输出机器可读结果。
| 项目 | 默认值 | 说明 |
|---|---|---|
| Web UI | http://127.0.0.1:5680/teams | 团队工作台入口 |
| 本地状态 | ~/.hermit/ | 团队、任务、消息、设置、审计 |
| Claude Code 会话 | ~/.claude/projects | 用量和会话数据来源 |
| Codex 会话 | ~/.codex/sessions | Codex 用量数据来源 |
openhermit 或 openhermit webhttp://127.0.0.1:5680/teamsclaudecode、codex)| 级别 | 运行时 |
|---|---|
| 一等适配 | Claude Code、Codex、Gemini、OpenCode、Cursor |
| 兼容注册 | Devin、Qoder、Kimi、iFlow、ACP、tmux |
自动上报需要三个条件同时满足:① 已登录 AgentBus + ② 消息上报已开启 + ③ 后台采集 worker 运行中。缺任何一个都不会上报。
openhermit auth login(飞书授权绑定 AgentBus 用户),用 openhermit auth status 确认已登录。未登录则上报没有目标服务端。openhermit →「用量同步」→ 回车展开 →「消息上报」→ 回车开启,首次选择上报运行时(Claude Code / Codex)。启用上报的开关目前只在终端导航里,没有单独的子命令。openhermit usage start,开启轻量后台 worker 并默认配置开机自启,持续扫描本地 JSONL。openhermit usage report,按服务端游标增量上报新增消息;--full 忽略游标全量重扫,用于补报历史漏掉的消息。openhermit usage status(worker 是否运行 / 上报是否开启)、openhermit usage today(今日摘要),或 Web 工作台「用量」Tab。按顺序排查:openhermit auth status(已登录?)→ openhermit usage status(worker running 且 消息上报 enabled?)→ openhermit usage report(手动触发一次,看输出 / 报错)。补报历史用 usage report --full;开机不自启用 usage autostart enable。
openhermit web 或在终端导航器选择「本地工作台」http://127.0.0.1:5680Web 工作台在后台持续运行时(openhermit --daemon)会自动定时采集,无需手动触发。打开浏览器即可查看最新数据。
用量统一上报到 AgentBus(中心化服务端 / 数据总线)。完成 openhermit auth login 后,后台 worker 会自动把增量数据上报到 AgentBus;企业管理者可在 AgentBus 看板查看全团队、按成员 / 运行时 / 时间段汇总的用量。
| 运行时 | 数据位置 | 采集内容 |
|---|---|---|
| Claude Code | ~/.claude/projects/**/*.jsonl | token 用量、会话数、消息量;支持 IM 归因 |
| Codex | ~/.codex/sessions/**/*.jsonl | token 用量(output_tokens 为主) |
POST /api/v1/report/messages 上报Codex 本地 JSONL 中 input_tokens 和 cached_input_tokens 经常为 0,因此无法精确计算上下文窗口占比。output_tokens 上报正常,不影响整体用量统计。
关闭消息上报:运行 openhermit →「用量同步」→「消息上报」关闭;停止后台采集用 openhermit usage stop。两者相互独立——关掉 worker 不影响「消息上报」开关状态,反之亦然。
Error: EACCES: permission denied, open '~/.hermit/telemetry/worker.pid'
# 或
npm error code EACCES syscall rename
原因:之前以 sudo 运行过 hermit 或 npm,导致部分文件被 root 占有。
修复:
# 修复 telemetry 文件权限
sudo chown $(whoami) ~/.hermit/telemetry/worker.pid
# 如果 npm global 目录也报权限错误
sudo chown -R $(whoami) ~/.npm-global
不要用 sudo 运行 openhermit 或 npm install -g。如果 npm global 目录权限正确(属于当前用户),全局安装不需要 sudo。
npm 全局 bin 目录可能不在 PATH 中。检查并添加:
# 查看 npm 全局 bin 目录
npm config get prefix
# 添加到 PATH(写入 ~/.zshrc 或 ~/.bashrc)
export PATH="$(npm config get prefix)/bin:$PATH"
如果 openhermit update 失败,可以直接用 npm 重新安装:
npm install -g @yancyyu/openhermit@latest --prefer-online
npm error code EBUSY
npm error syscall rename
npm error path D:...
ode_modules@yancyyuopenhermit
npm error errno -4082
npm error EBUSY: resource busy or locked, rename '...' -> '...'
原因:这不是权限问题(EBUSY ≠ EACCES),所以 sudo 或"以管理员身份运行"都无效(Windows 也没有 sudo)。是之前运行过的 openhermit 后台进程(daemon / usage worker / 反复重启的子进程)还占着包里的文件,npm 无法替换。
解决:按顺序试,多数情况第 ① 步就够了。先释放文件占用,再安装。
① 首选 —— 用 openhermit 自己关掉后台(最干净,1.8.4 上也能跑):
openhermit stop
openhermit usage stop # 如果开过后台用量采集
npm install -g @yancyyu/openhermit@latest --prefer-online
openhermit --version
② 还报 EBUSY —— 有残留进程没退,杀掉它们(只杀 openhermit/hermit 相关,不碰 VS Code 等):
# PowerShell
Get-CimInstance Win32_Process -Filter "name='node.exe'" |
Where-Object { $_.CommandLine -match 'openhermit|hermit' } |
ForEach-Object { Stop-Process -Id $_.ProcessId -Force
npm install -g @yancyyu/openhermit@latest --prefer-online
如果上面都不行,或不想敲命令:重启电脑 → 直接 npm install -g @yancyyu/openhermit@latest --prefer-online。重启后没有任何进程占用,必成。
openhermit statuslsof -i :5680openhermit --port 8080IM 触发的 Agent 执行最终仍落到本地 Claude Code session。AgentCli 统一读取本地 JSONL,再根据 bridge 元数据归因为 source=feishu 或 source=wechat。
不是。worktree 是 Git 工作区隔离,用来降低并行编辑冲突;不等于容器隔离或权限沙箱。
默认 metadata-only:不上传消息正文、助手回复、工具输入输出、cron prompt 或 MCP 密钥。具体上报范围取决于管理员在 Settings 中的 Task Bus / Redis 配置。
这是已知限制。Codex 本地 JSONL 中 input_tokens 字段经常为 0(OpenAI 本地客户端未完整记录),但 output_tokens 正常。不影响总用量统计,只是无法精确展示输入 token 占比。