sandbase-harness
sandbaseai
Local-first, self-hosted AI agent runtime and MCP bridge with sandboxed sessions, memory, credentials, audit/replay, and a local Console.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:RyzenWang/dsh-token-usage-observer
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
统计本机 DeepSeek Harness / Codex (ChatGPT) / OpenCode 的 token 用量与预计费用,提供 agent 工具(usage_stats)与 WebUI 侧边栏「Token 统计」看板。
Collect and summarize local token usage from DeepSeek Harness, Codex (ChatGPT) and OpenCode logs, exposed as a DeepSeek Harness plugin: an agent tool (usage_stats) plus a WebUI sidebar dashboard tab.
YYYY-MM-DD)、分类(模型 id / agent preset)与分组维度筛选,单价可在看板内实时调整usage_stats:同样的统计管线,支持按来源 / 分类 / 日期 / 不分组四种分组维度,并附会话明细表(含会话名称)session/title 事件、Codex 取 session_index.jsonl 的 thread_name、OpenCode 取 session.title;缺失时回落为会话 ID通过 dsh 插件命令安装(bundle 形态,构建产物随仓库分发,无需本地构建):
dsh plugin --profile web add "github:ZhengDaoWang/dsh-token-usage-observer"
更新 / 移除:
dsh plugin --profile web update dsh-token-usage-observer
dsh plugin --profile web remove dsh-token-usage-observer
安装 / 更新后需重启
dsh web,侧边栏「Token 统计」入口与看板才会加载。
安装并重启后,侧边栏出现「Token 统计」入口(New Session 按钮下方、与任务看板 / SSH 入口同一区块)。点击打开中心列看板:
安装后,在 DeepSeek Harness 对话中直接询问即可,例如:
也可通过工具名 usage_stats 显式调用,参数:
| 参数 | 类型 | 说明 |
|---|---|---|
source |
string | all | deepseek-harness | codex | opencode,默认 all |
from |
string | 起始日期(含),YYYY-MM-DD,本地时区 |
to |
string | 结束日期(含),YYYY-MM-DD,本地时区 |
category |
string | 分类筛选(模型 id / agent preset,不区分大小写,子串匹配) |
groupBy |
string | source | category | day | none,默认 source |
prices |
object | 单价覆盖(每百万 token,USD):input、cacheHit、cacheWrite、output |
| 来源 | 位置 | 说明 |
|---|---|---|
| DeepSeek Harness | ~/.dsh/sessions/<encoded-cwd>/session-<uuid>/session.jsonl[.zstd] |
读取 assistant/message 事件的 data.usage(inputTokens、outputTokens、cacheReadTokens、cacheWriteTokens),模型来自 request/context 事件 |
| Codex (ChatGPT) | ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl |
逐文件累加 token_count 事件的 last_token_usage(input_tokens、cached_input_tokens、cache_write_input_tokens、output_tokens、reasoning_output_tokens),避免续写会话重复计数 |
| OpenCode | ~/.local/share/opencode/opencode.db(依次尝试多个常见路径) |
只读查询 session 表的 tokens_input / tokens_output / tokens_reasoning / tokens_cache_read / tokens_cache_write,模型取自 model 字段 |
可通过环境变量 DSH_HOME / CODEX_HOME 覆盖 Harness 与 Codex 的日志根目录。
插件支持可选的 paths(各来源自定义路径)、prices(默认单价)与 announceToAgent(是否向 agent 公告本插件,默认 true)配置,通过 cordis patch 的 config 字段注入。
src/index.ts、src/routes.ts):注册 usage_stats 工具与 GET /dsh-token-usage/stats HTTP 路由(loopback + 浏览器同源防护),复用同一 collect/summarize 管线src/client/):lib/client.js 经 __ModuleLoader__ 契约注入 WebUI,挂载侧边栏入口行与中心列看板 React 根src/index.ts → lib/index.js,src/client/index.ts → lib/client.js)npm.cmd install
npm.cmd run check # typecheck + build
构建产物输出到 lib/(含 lib/client.js 浏览器半区)。插件遵循 deepseek-harness 插件规范(cordis patch + dsh-tools defineTool + dsh.client 声明)。
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: token-usage。