kenn-io/agentsview

GitHub: kenn-io/agentsview

agentsview 是一款本地优先的多 AI 编码代理会话分析工具,为 Claude Code、Codex、OpenCode 等 20+ 代理提供会话追踪、Token 用量统计和成本分析。

Stars: 1109 | Forks: 140

# agentsview 浏览、搜索并追踪你所有 AI 编码代理的成本。一个二进制文件,无需账户,一切本地运行。

Analytics dashboard

## 安装 ``` # macOS / Linux curl -fsSL https://agentsview.io/install.sh | bash # Windows powershell -ExecutionPolicy ByPass -c "irm https://agentsview.io/install.ps1 | iex" ``` 或者从 [GitHub Releases](https://github.com/kenn-io/agentsview/releases) 下载**桌面应用**(macOS / Windows),也可以通过 homebrew 安装:`brew install --cask agentsview` 或者运行已发布的 Docker 镜像: ``` docker run --rm -p 127.0.0.1:8080:8080 \ -v agentsview-data:/data \ -v "$HOME/.claude/projects:/agents/claude:ro" \ -v "$HOME/.forge:/agents/forge:ro" \ -e CLAUDE_PROJECTS_DIR=/agents/claude \ -e FORGE_DIR=/agents/forge \ ghcr.io/kenn-io/agentsview:latest ``` ## 快速开始 ``` agentsview serve # start server, open web UI agentsview usage daily # print daily cost summary ``` 首次运行时,agentsview 会扫描机器上所有受支持的代理的会话,将其同步到本地 SQLite 数据库,并在 `http://127.0.0.1:8080` 打开 Web UI。 ## Docker 容器镜像默认运行 `agentsview serve`。设置 `PG_SERVE=1` 可将启动命令切换为 `agentsview pg serve`。 `docker-compose.prod.yaml` 作为生产环境示例包含在内: ``` docker compose -f docker-compose.prod.yaml up -d ``` 附带的 compose 文件将 agentsview 数据目录持久化到命名卷中,并以只读方式挂载 Claude、Codex、Forge 和 OpenCode 的会话根目录。 容器以 root 用户运行,因此对 `/data` 优先使用命名卷而非主机绑定挂载;如果确实使用绑定挂载,请预先创建目录并设置好所需的所有权,以避免在你的 home 目录中产生 root 拥有的文件。 示例仅在回环地址上发布 UI(`127.0.0.1`)。如果你需要将其暴露到 localhost 之外,请启用 `--require-auth` 并有意地发布端口。 重要提示:容器化的 agentsview 实例只能发现你显式挂载到容器中的代理会话目录。如果你没有挂载某个代理的会话目录并设置对应的环境变量指向它,该代理将不会出现在 UI 中。 PostgreSQL 支持的启动示例: ``` docker run --rm -p 127.0.0.1:8080:8080 \ -e PG_SERVE=1 \ -e AGENTSVIEW_PG_URL='postgres://user:password@postgres.example.com:5432/agentsview?sslmode=require' \ ghcr.io/kenn-io/agentsview:latest ``` ## Token 使用量与成本追踪 `agentsview usage` 是 ccusage 及类似工具的快速本地替代方案。它追踪**所有**编码代理的 token 消耗和计算成本 —— 不仅仅是 Claude Code。由于会话数据已在 SQLite 中建立索引,查询速度比每次运行时重新解析原始会话文件的工具快 100 倍以上。 ``` # 每日费用汇总(默认:最近30天) agentsview usage daily # 按模型细分 agentsview usage daily --breakdown # 按代理和日期范围筛选 agentsview usage daily --agent claude --since 2026-04-01 # 适用于 shell 提示符 / 状态栏的单行摘要 agentsview usage daily --all --json agentsview usage statusline ``` 功能特性: - 通过 LiteLLM 费率自动定价(支持离线回退) - 支持 prompt 缓存感知的成本计算(缓存创建 / 读取 token) - 按模型细分(`--breakdown`) - 日期过滤(`--since`、`--until`、`--all`),代理过滤(`--agent`) - JSON 输出(`--json`),便于脚本处理 - 时区分区的日期分桶(`--timezone`) - 可独立运行 —— 无需服务器,直接运行命令即可 ## 单会话详情 `agentsview session usage ` 输出单个会话的 token 统计信息及成本估算。输出报告会话的总输出 token 数和峰值上下文 token 数,以及以美元(`cost_usd`)表示的成本估算(当会话的模型有可用定价时,`has_cost` 为 true)。成本由输入/输出和缓存 token 在内部计算,但仅在成本旁边报告输出 token 和峰值上下文的总量。 ``` # 打印特定会话的 token 用量和费用 agentsview session usage # 适用于脚本的 JSON 输出 agentsview session usage --format json ``` 已弃用的别名 `agentsview token-use ` 为兼容性保留,现在同样报告成本估算。 ## 会话统计 `agentsview stats` 输出已记录会话的窗口范围分析数据:总计、原型分类(自动化 vs. 快速/标准/深度/马拉松)、会话时长分布、用户消息数量、峰值上下文、每轮工具使用量,以及缓存经济性、工具/模型/代理混合比例和按小时的时间分段。`--format json` 输出遵循版本化的 v1 模式(`schema_version: 1`),适合下游消费者使用。 默认情况下,`stats` 仅读取本地 SQLite 存档。Git 衍生的结果指标为可选启用,因为在大型或缺失的仓库上可能较慢或不可靠:使用 `--include-git-outcomes` 获取提交/代码行数/文件变更数,使用 `--include-github-outcomes` 通过 `gh` 获取 GitHub PR 数量(这同时也会启用 git 结果指标)。 ``` # 过去28天的人类可读摘要 agentsview stats # 固定日期范围内的机器可读 JSON agentsview stats --format json --since 2026-04-01 --until 2026-04-15 # 限制为单个代理并检查模式 agentsview stats --format json --agent claude | jq '.schema_version' # 显式包含昂贵的本地 git 结果指标 agentsview stats --include-git-outcomes ``` ## 会话浏览器 | 仪表盘 | 会话查看器 | | ------------------------------------------------------------- | ----------------------------------------------------------------------- | | ![Dashboard](https://agentsview.io/screenshots/dashboard.png) | ![Session viewer](https://agentsview.io/screenshots/message-viewer.png) | | 搜索 | 活动热力图 | | --------------------------------------------------------------- | --------------------------------------------------------- | | ![Search](https://agentsview.io/screenshots/search-results.png) | ![Heatmap](https://agentsview.io/screenshots/heatmap.png) | - 所有消息内容的**全文搜索**(FTS5) - **Token 使用量和成本仪表盘** —— 按会话和按模型的成本细分、每日消费图表,全部在 Web UI 中呈现 - **分析仪表盘** —— 活动热力图、工具使用量、速度指标、项目细分 - 活跃会话接收新消息时通过 SSE **实时更新** - **键盘优先**导航(`j`/`k`/`[`/`]`、`Cmd+K` 搜索、`?` 查看所有快捷键) - 以 HTML **导出**会话或发布到 GitHub Gist ## 支持的代理 agentsview 自动发现以下所有代理的会话: | 代理 | 会话目录 | | ------------------ | ------------------------------------------------------ | | Claude Code | `~/.claude/projects/` | | Codex | `~/.codex/sessions/` | | Copilot CLI | `~/.copilot/` | | Gemini CLI | `~/.gemini/` | | OpenCode | `~/.local/share/opencode/` | | OpenHands CLI | `~/.openhands/conversations/` | | Cursor | `~/.cursor/projects/` | | Amp | `~/.local/share/amp/threads/` | | iFlow | `~/.iflow/projects/` | | Zencoder | `~/.zencoder/sessions/` | | VSCode Copilot | `~/Library/Application Support/Code/User/` (macOS) | | Pi | `~/.pi/agent/sessions/` | | Qwen Code | `~/.qwen/projects/` | | OpenClaw | `~/.openclaw/agents/` | | QClaw | `~/.qclaw/agents/` | | Kimi | `~/.kimi/sessions/` | | Kiro CLI | `~/.kiro/sessions/cli/`, `~/.local/share/kiro-cli/` | | Kiro IDE | `~/Library/Application Support/Kiro/` (macOS) | | Cortex Code | `~/.snowflake/cortex/conversations/` | | Hermes Agent | `~/.hermes/sessions/` | | WorkBuddy | `~/.workbuddy/projects/` | | Forge | `~/.forge/` | | Piebald | `~/.local/share/piebald/` | | Warp | `~/.warp/`(平台相关) | | Positron Assistant | `~/Library/Application Support/Positron/User/` (macOS) | | Antigravity | `~/.gemini/antigravity/` | | Antigravity CLI | `~/.gemini/antigravity-cli/`(摘要模式) | 每个目录都可以通过环境变量覆盖。详见[配置文档](https://agentsview.io/configuration/)。 ## PostgreSQL 同步 将会话数据推送到共享的 PostgreSQL 实例,用于团队仪表盘: ``` agentsview pg push # push local data to PG agentsview pg serve # serve web UI from PG (read-only) ``` 请参阅 [PostgreSQL 文档](https://agentsview.io/postgresql/)了解设置和配置。 ## 隐私 无遥测、无分析、无账户。所有数据保留在你的机器上。服务器默认绑定到 `127.0.0.1`。唯一的出站请求是启动时可选的更新检查(使用 `--no-update-check` 禁用)。 ## 文档 完整文档请访问 **[agentsview.io](https://agentsview.io)**: [快速开始](https://agentsview.io/quickstart/) —— [使用指南](https://agentsview.io/usage/) —— [CLI 参考](https://agentsview.io/commands/) —— [配置](https://agentsview.io/configuration/) —— [架构](https://agentsview.io/architecture/) ## 开发 需要 Go 1.26+(CGO)、Node.js 22+。 ``` make dev # Go server (dev mode) make frontend-dev # Vite dev server (run alongside make dev) make build # build binary with embedded frontend make install # install to ~/.local/bin ``` ``` make test # Go tests (CGO_ENABLED=1 -tags fts5) make lint # golangci-lint + NilAway make nilaway # NilAway through custom golangci-lint make e2e # Playwright E2E tests ``` 通过 [prek](https://github.com/j178/prek) 使用 pre-commit hooks:克隆后运行 `make lint-tools` 和 `make install-hooks`(需要 `prek` 和 `uv`)。 ### 项目结构 ``` cmd/agentsview/ CLI entrypoint internal/ Go packages (config, db, parser, server, sync, postgres) frontend/ Svelte 5 SPA (Vite, TypeScript) desktop/ Tauri desktop wrapper ``` ## 致谢 灵感来源于 Andy Fischer 的 [claude-history-tool](https://github.com/andyfischer/ai-coding-tools/tree/main/claude-history-tool) 和 Simon Willison 的 [claude-code-transcripts](https://github.com/simonw/claude-code-transcripts)。 ## 许可证 MIT
标签:AI编程代理, AI编程助手, bcrypt, Claude Code, Codex, developer tools, Docker, EVTX分析, LLM使用量统计, Python替代方案, session analytics, SQLite, TCP SYN 扫描, Web UI, 代码代理分析, 会话智能, 多代理支持, 安全防御评估, 实时分析, 开源, 成本追踪, 无需账号, 日志审计, 本地优先, 桌面应用, 测试用例, 自托管, 请求拦截, 隐私优先