CodeBurn GNOME Shell 扩展:在 Linux 桌面面板上实时追踪 AI 编程 Token 消耗与成本
【免费下载链接】codeburnFree, local tool to track AI coding token usage and cost across 37 tools and agents (Claude Code, Cursor, Codex, Gemini and more), by model, project, and task. npx codeburn项目地址https://gitcode.com/gh_mirrors/co/codeburn点击查看免费下载CodeBurn 是一个免费的本地工具用于追踪 Claude Code、Cursor、Codex、Gemini 等 37 款 AI 编程工具与 Agent 的 token 用量和成本按模型、项目、任务维度统计。gnome/README.md 介绍了它的 GNOME Shell 扩展把AI 编码成本追踪器直接放进 GNOME 桌面顶栏无需打开终端即可随时查看今日花费、调用次数、token 趋势与预算告警。读完本文你将掌握该扩展的完整安装、配置、卸载流程理解面板指示器与弹出面板的界面构成以及它如何通过codeburn status --format menubar-json与 CLI 数据管道协同工作并学会本地开发调试扩展的方法。前置要求扩展的运行环境要求非常简洁详见 gnome/README.mdGNOME Shell 45 或更高版本扩展的 metadata.json 声明支持的 Shell 版本为[45, 46, 47, 48, 49, 50]即 GNOME 45 起的各主要版本。CodeBurn CLI通过npm i -g codeburn全局安装。扩展本身不解析会话日志所有数据都来自 CLI 输出。glib-compile-schemas编译 GSettings schema 的工具通常随glib2-develFedora/RHEL 系或libglib2.0-devDebian/Ubuntu 系一起提供。从实现层面看install.sh 会调用glib-compile-schemas ${SCRIPT_DIR}/schemas/来编译设置模式因此该工具是安装的必要依赖。安装扩展安装过程围绕一条命令展开cd gnome chmod x install.sh ./install.sh安装脚本 install.sh 实际做了以下几件事编译 GSettings schemaglib-compile-schemas schemas/生成设置模式的二进制缓存。创建安装目录${HOME}/.local/share/gnome-shell/extensions/codeburncodeburn.dev。拷贝扩展文件metadata.json、extension.js、indicator.js、dataClient.js、prefs.js、stylesheet.css以及schemas/与icons/目录下的全部资源。扩展的 UUID唯一标识是codeburncodeburn.devGNOME Shell 依据该目录名识别扩展。重启 GNOME Shell安装完成后需要重启 Shell 使扩展生效重启方式取决于你的显示协议Wayland注销后重新登录Wayland 下 Shell 不能热重启。X11按AltF2输入r回车即可快速重启 Shell。启用扩展gnome-extensions enable codeburncodeburn.dev启用后顶栏右侧会出现一个 火焰图标旁边显示当前周期花费的金额标签如$2.7k。图标与标签的构建逻辑见 indicator.js面板按钮由codeburn-flame图标与codeburn-label成本标签组成标签在开启紧凑模式Compact Mode后会被隐藏。配置扩展配置方式有两种gnome-extensions prefs codeburncodeburn.dev或者打开GNOME Extensions 应用gnome-extensions-app在 CodeBurn Monitor 条目下点击齿轮图标。偏好窗口本身由 prefs.js 用 libadwaitaAdw.PreferencesPage构建分为Display、Budget Alerts、Providers、Advanced四个分组。设置项速查设置默认值说明Refresh Interval30s轮询 CodeBurn CLI 的间隔Default PeriodToday打开面板时默认显示的时间周期Compact ModeOff隐藏成本标签只显示图标Budget Threshold$0每日预算阈值0 禁用Budget AlertsOff花费超出阈值时显示警告CLI Path(自动)自定义codeburn可执行文件路径这些设置的真正定义位于 GSettings schema 文件 schemas/org.gnome.shell.extensions.codeburn.gschema.xml 中其中还包含了 README 表格之外更精细的选项键名类型默认值范围/取值说明refresh-intervalu无符号整数305 ~ 300 秒自动刷新数据间隔即上表的 Refresh Intervaldefault-periods字符串todaytoday/week/30days/month/all打开扩展时默认显示的周期budget-thresholdddouble0.00 ~ 1000偏好面板中的 SpinRow 上限每日预算阈值美元设为 0 表示禁用budget-alert-enabledb布尔false—是否启用预算告警compact-modebfalse—面板上只显示图标隐藏成本标签force-dark-modebfalse—弹窗始终使用深色主题不跟随系统show-exact-costsbfalse—显示完整金额如$2,655.23而非紧凑写法如$2.7kcodeburn-paths留空则使用 PATH自定义 codeburn 可执行文件路径provider-filtersall—默认的 provider 过滤项disabled-providersas字符串数组[]—从成本核算与显示中排除的 provider 列表偏好窗口中的Providers分组即为disabled-providers提供了开关prefs.js关闭某个 provider 的开关会将其 id 追加到disabled-providers数组重新打开则移除。可用的 provider 开关包括 Claude、Codex、Copilot、Cursor、Devin、Droid、Gemini、Goose、Kilo Code、Kiro、Kimi、OpenClaw、OpenCode、Pi、Qwen、Roo Code、Antigravity 等prefs.js。设置如何即时生效指示器在 indicator.js 中对关键设置注册了changed::监听修改后无需重启扩展refresh-interval变化 → 重启轮询定时器_restartRefreshLoopcompact-mode变化 → 立即显隐面板成本标签codeburn-path变化 → 更新 DataClient 路径并强制刷新default-period变化 → 切换默认周期并刷新budget-threshold/budget-alert-enabled→ 重算预算告警force-dark-mode/show-exact-costs/disabled-providers→ 立即重渲染界面。理解面板与弹出界面扩展的入口在 extension.jsenable()时实例化CodeBurnIndicator并通过Main.panel.addToStatusArea添加到状态区disable()时销毁指示器。指示器的完整实现位于 indicator.js弹窗内容相当丰富品牌头部CodeBurn 标题与 AI Coding Cost Tracker 副标题L215-L223。Agent 标签页自动探测本机已安装的 AI 工具检测~/.claude/projects、~/.codex/sessions、~/.config/Cursor/User/globalStorage/state.vscdb、~/.copilot/session-state、~/.local/share/devin/cli、~/.kimi/sessions、~/.pi/agent/sessions等目录是否存在见 L501-L513只显示检测到的 provider 标签若只检测到一种则显示为徽章而非标签页。Hero 区大号金额如$0.00、当前周期标签、calls 次数、session 数量与本地模型节省金额。周期标签页Today / 7 Days / 30 Days / Month / 6 Months 五个周期快速切换。洞察胶囊Activity活动、Trend趋势、Forecast预测、Pulse脉搏、Stats统计五个视图。Token 柱状图最近 19 天的 input/output token 柱状图L611-L676悬停某根柱子可查看该日的 token 与成本详情图表顶部汇总 In/Out token 总量。活动表Top 10 活动按成本排序显示名称、成本、turns、1-shot 比例并配有成本占比进度条其下是 Top 3 模型行模型名、成本、本地模型节省额、calls。优化发现FindingsCTA当optimize数据中有发现时显示X optimize findings / save ~$Y按钮点击后在终端中运行codeburn optimizeL364-L374。页脚货币选择器USD/EUR/GBP/JPY/CNY 等 18 种货币见 L57-L76、Refresh 按钮、Full Report按钮运行codeburn report --period period --provider provider见 L449-L451和设置齿轮按钮。其中 Forecast 视图会基于最近 7 天日均花费推算整月预估并给出日环比Day-over-day百分比Pulse 视图展示成本、calls 与缓存命中率cache hitStats 视图展示最爱模型、活跃天数、连续使用天数和峰值日L743-L805。货币与汇率指示器会读取~/.config/codeburn/config.json中的currency.code作为默认货币L853-L867切换货币时通过codeburn currency code子命令持久化L873-L881并从 Frankfurter 汇率 API 拉取 USD 到目标货币的实时汇率用于换算L883-L906。金额格式化的核心逻辑formatCostL88-L96非精确模式下金额 ≥ 1000 时压缩为$2.7k、≥ 10000 时取整为$3k精确模式则输出带千分位逗号的完整金额。数据链路扩展如何拿到账单数据扩展本身不直接解析 Claude/Cursor 等的会话文件而是把数据获取委托给 CodeBurn CLI。核心实现在 dataClient.js构造命令L66-L86默认执行codeburn status --format menubar-json --period period [--provider provider] --no-optimize若在设置中配置了codeburn-path则用自定义路径替换codeburn路径会经过SAFE_ARG_RE /^[A-Za-z0-9 ._/\-]$/白名单校验防止注入。PATH 增强由于 GNOME Shell 启动时的环境变量可能不含用户级 npm 全局 bin 目录DataClient 会把/usr/local/bin、~/.local/bin、~/.npm-global/bin、~/.volta/bin、~/.bun/bin、~/.cargo/bin、~/.asdf/shims、~/.local/share/fnm/aliases/default/bin、~/.local/share/pnpm追加到子进程 PATH 中L7-L20、L88-L96确保能找到 CLI。超时与取消15 秒超时强制结束子进程TIMEOUT_SECONDS 15L121-L126新请求会取消上一次未完成的请求Gio.Cancellable。解析将 CLI 的 stdout 按 JSON 解析JSON.parse并按period:provider键缓存L44-L63。在 CLI 侧status命令由 src/main.ts 定义--format支持terminal、menubar-json、json三种输出--period支持today、week、30days、month、all、lifetime--no-optimize跳过优化发现以加快响应另有--day指定单日并覆盖--period、--from/--to自定义日期范围、--days多日逗号分隔等参数。扩展侧还使用--no-timeline之外的默认行为扩展未显式传入但--no-optimize已保证速度。面板每次打开周期/提供者标签切换时都会通过_refresh()触发一次新的 CLI 调用并用 300 秒CACHE_TTL_MS的 TTL 缓存避免频繁唤起子进程indicator.js。卸载扩展gnome-extensions disable codeburncodeburn.dev rm -r ~/.local/share/gnome-shell/extensions/codeburncodeburn.dev第一条命令停用扩展第二条删除安装脚本拷贝到用户扩展目录的完整目录。本地开发与调试不安装即可测试改动# 编译 schema改动 gschema.xml 后必须执行 glib-compile-schemas schemas/ # 用符号链接指向源码目录改动即时生效 ln -sf $(pwd) ~/.local/share/gnome-shell/extensions/codeburncodeburn.dev # 实时查看 GNOME Shell 日志 journalctl -f -o cat /usr/bin/gnome-shell开发时请注意schema 修改gschema.xml中新增或修改键后必须重新执行glib-compile-schemas schemas/并重启 Shell否则设置无法识别。日志指示器在初始化、刷新出错等场景会调用log()写入 Shell 日志例如CodeBurn: refresh error: ...见 indicator.js用上述journalctl命令可实时跟踪。CLI 未找到时的表现若codeburn不在 PATH 中面板标签会显示!弹窗内提示 CodeBurn CLI not found 与安装命令npm i -g codeburnL819-L830。主题适配弹窗支持深色/浅色主题默认跟随系统org.gnome.desktop.interface的color-scheme也可通过force-dark-mode强制深色L981-L992所有样式类定义在 stylesheet.css 中弹窗主体尺寸为 340×540 像素。常见问题排查现象原因与处理面板上一直显示!CLI 未找到或执行出错。确认npm i -g codeburn已执行若 npm 全局 bin 不在 GNOME Shell 的 PATH 中在设置中显式填写codeburn-path数据长时间不更新检查 Refresh Interval5~300 秒设置也可在弹窗页脚手动点击 Refresh 强制刷新设置了预算不弹警告需同时满足Budget Alerts 开关打开、Budget Threshold 大于 0、当前周期花费 ≥ 阈值indicator.js告警文案为Budget exceeded: 花费 / 阈值切换 provider 后数据为空该 provider 未被_detectProviders探测到本机没有对应工具的会话目录时不会出现在标签页中也可在 Preferences 的 Providers 分组检查是否被disabled-providers关闭弹窗内容异常打开终端运行codeburn status --format menubar-json --period today查看 CLI 原始输出扩展只是原样渲染该 JSON小结CodeBurn GNOME 扩展把AI 编程成本监控下沉到桌面面板一级顶栏一个火焰图标 金额标签点开后是完整的成本看板——多 Agent 标签、周期切换、token 柱状图、活动/趋势/预测/脉搏/统计五大洞察视图、预算告警、多货币换算与优化建议入口。其设计精妙之处在于职责分层扩展gnome/只负责 UI 呈现与轮询调度所有统计口径与数据解析均由 CodeBurn CLI 的status --format menubar-json完成因此扩展本身体积小、升级维护简单。对于在 Linux 桌面上重度使用 AI 编程工具、又不想反复打开终端查账单的开发者这是一个即装即用的理想方案。赞分享【免费下载链接】codeburnFree, local tool to track AI coding token usage and cost across 37 tools and agents (Claude Code, Cursor, Codex, Gemini and more), by model, project, and task. npx codeburn项目地址https://gitcode.com/gh_mirrors/co/codeburn点击查看免费下载相关推荐重温经典GNOME Shell 桌面立方体扩展重温经典GNOME Shell 桌面立方体扩展 项目介绍 你是否还记得 Compiz 的 3D 桌面立方体那个曾经让无数 Linux 用户为之着迷的炫酷特效探索科技新维度GNOME Shell 桌面立方体扩展探索科技新维度GNOME Shell 桌面立方体扩展 项目介绍 对于那些怀念Linux早期3D桌面立方体效果的用户有一款新的开源项目将为您的GNOME Sh9Router 配额跟踪与用量监控实战指南实时追踪 Token 消耗、成本估算与告警机制9Router 配额跟踪与用量监控实战指南实时追踪 Token 消耗、成本估算与告警机制 导读 本文围绕 9Router 的配额跟踪Quota Tracki人工智能LLM 网关AI 应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

飞腾D2000 GPIO驱动实战:从设备树到gpiod点灯教程

飞腾D2000 GPIO驱动实战:从设备树到gpiod点灯教程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 5:05:37 阅读更多 →
SPI四种模式详解:从CPOL/CPHA原理到实战调试避坑指南

SPI四种模式详解:从CPOL/CPHA原理到实战调试避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 5:04:36 阅读更多 →
RNS510车载系统深度改造指南:固件更新与功能扩展实战

RNS510车载系统深度改造指南:固件更新与功能扩展实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 5:04:36 阅读更多 →

最新新闻

迪文DMG80480C070工业串口屏调试全指南:变量驱动、字库分离与RS485抗干扰

迪文DMG80480C070工业串口屏调试全指南:变量驱动、字库分离与RS485抗干扰

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 5:44:01 阅读更多 →
ROS2 Jazzy 包管理极简实战:创建、编译、运行一条龙

ROS2 Jazzy 包管理极简实战:创建、编译、运行一条龙

ROS2 Jazzy 包管理极简实战:创建、编译、运行一条龙本文基于 ROS2 Jazzy Ubuntu 24.04,演示如何用命令行快速创建 C/Python 功能包、编译、查询信息并运行节点。适合刚装好 Jazzy、想快速跑通包管理流程的同学。一、环境准备 先确认已安装 ROS2 Jazzy 和…

2026/9/24 5:44:01 阅读更多 →
电商平台软件架构设计:从业务边界到微服务落地实践

电商平台软件架构设计:从业务边界到微服务落地实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 5:44:01 阅读更多 →
AI 创新合伙人公会:用体系化机制破解 AI 创业的六大落地难题

AI 创新合伙人公会:用体系化机制破解 AI 创业的六大落地难题

摘要AI 项目从想法到落地,卡点往往不在技术本身,而在选题、组队、获客、融资、工程化与资源整合六个环节。本文以"智栈 AI 创新合伙人公会"为例,拆解其面向独立开发者、创业团队与成长型企业提供的六项赋能机制,逐条落到…

2026/9/24 5:44:01 阅读更多 →
华硕X99上Tesla M40无法点亮?一文搞懂Above 4G Decoding设置

华硕X99上Tesla M40无法点亮?一文搞懂Above 4G Decoding设置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 5:44:01 阅读更多 →
YOLOv11安防实战:实时人体行为识别与异常预警落地指南

YOLOv11安防实战:实时人体行为识别与异常预警落地指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 5:43:00 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →