
示例报告
下方是一份实时示例报告。在上面粘贴任何公开仓库链接,即可分析你的仓库。
- JavaScript: 63.5%
- Rust: 17.5%
- TypeScript: 16.4%
- JSON: 1%
- CSS: 0.9%
- 其他: 0.6%
| JavaScript | 1,477 | 293,727 | 231,46163.5% | 38,456 | 23,810 |
| Rust | 117 | 72,601 | 63,89617.5% | 3,775 | 4,930 |
| TypeScript | 219 | 74,391 | 59,89616.4% | 10,169 | 4,326 |
| JSON | 86 | 3,535 | 3,5271% | 0 | 8 |
| CSS | 88 | 3,828 | 3,2830.9% | 61 | 484 |
| TSX | 15 | 1,591 | 1,3330.4% | 153 | 105 |
| HTML | 23 | 438 | 4160.1% | 9 | 13 |
| Shell | 19 | 531 | 316<0.1% | 118 | 97 |
| TOML | 14 | 247 | 223<0.1% | 4 | 20 |
| SVG | 7 | 10 | 10<0.1% | 0 | 0 |
| 其他(另 1 种) | 68 | 8,910 | 00% | 6,360 | 2,550 |
| 总计 | 2,133 | 459,809 | 364,361 | 59,105 | 36,343 |
浏览器扩展
在 GitHub 仓库侧边栏显示 SLOC 与代码统计。
OctoCounts – GitHub 代码统计
打开 GitHub 仓库,OctoCounts 会在侧边栏添加一个紧凑的 SLOC 卡片。点击卡片可查看包含总计、各语言明细和缓存数据的完整面板。
- 仓库侧边栏卡片
- 语言表格
- 本地缓存
仅展示公开报告的聚合活动
工具
每张卡片都直达真实工具,开箱即用实时 README 徽章,链接到永久报告页。
[](...)仓库对比两个仓库并排比较:总量、语言构成、差异。
open /compare?left=…&right=…引用差异同一仓库的两个引用:版本或分支之间的规模变化。
open /diff?repo=…&base=v1.0&head=v1.1API分析、任务、报告、徽章、SEO 与统计端点。
GET https://api.octocounts.com/api/stats命令行工具在终端或 CI 脚本中运行 OctoCounts,输出文本或 JSON。
npx octocounts https://github.com/owner/repo --jsonGitHub Action在拉取请求中备注 SLOC 变化,进入评审流程。
uses: huanglizhuo/OctoCounts/action@mainMCP 服务面向智能体工作流与开发者助手的 SLOC 报告。
npx octocounts-mcp使用场景
开发者统计代码行的常见原因评估依赖项
在采用新的开源库之前,先看清它的实际规模,而不是只看文件数。一个 50 个文件的仓库,可能是 2 万行密集的 C++,也可能是 500 行胶水代码。SLOC 让你在做决定前了解真实情况。
估算项目规模
客户和利益相关者会问代码库有多大。SLOC 能在评审或审计前给你一个扎实的数字:8 种语言共 1.2 万行,89% 代码,4% 注释。
比较分支或替代方案
粘贴两个仓库,并排比较语言细分。看看一个分支偏离了多少,或者同一规范的两个不同实现实际上有多大差异。
工作原理
归档进,tokei 报告出解析
OctoCounts 验证公开 GitHub 链接,并通过 GitHub API 将请求的分支、标签或提交 SHA 解析为固定的提交哈希。相同提交 SHA、引擎版本和有效计数规则下的结果可复现。分支或标签可能指向新的提交,因此实时报告会变化。
计数
Rust 后端下载压缩归档,而不是完整的 git 克隆。解压前会跳过生成的文件夹(node_modules、vendor、.git),然后 tokei 在后台工作队列中计数每个源文件。
缓存
报告按所有者、仓库、提交 SHA 和 tokei 版本存储。当你重新分析同一提交时,缓存会立即命中,无需重新下载,无需重新计数。重新运行会强制进行全新分析并更新缓存。浏览器扩展还会将结果本地缓存,以便离线即时查看。
常见问题
关于 SLOC、OctoCounts 与导出什么是 SLOC?
SLOC 代表源代码行数(Source Lines of Code),是一种通过统计源代码行数来衡量程序规模的软件度量指标。与原始行数不同,SLOC 区分代码行(编译器或解释器实际处理的指令)、注释行(文档与说明)和空行(空白字符)。这种细分很重要:一个 10,000 行、其中 40% 是注释的文件,和一个 95% 都是代码的文件,讲述的是完全不同的故事。
开发者用 SLOC 评估项目复杂度、在选型依赖时对比代码库规模、估算计费与审计工作量,以及向不读代码的相关方传达仓库体量。OctoCounts 在两个层面报告 SLOC:按编程语言逐项统计,以及整个仓库的汇总合计。底层计数器是 tokei,一个用 Rust 编写、并行处理文件的开源行数统计工具。
为什么用 OctoCounts,而不是本地克隆后运行 tokei?
OctoCounts 下载的是压缩归档 tarball,而不是带历史的完整 git 克隆。git 克隆会传输仓库历史中的每一个 commit、tree 和 blob 对象;对长期维护的项目来说,即使当前源码树很小,也可能意味着数百 MB 甚至数 GB 的数据。OctoCounts 只获取所请求 ref 对应工作树的归档,因此传输只覆盖当前源码树,而不是仓库的全部历史。
此外,无需安装任何东西:不需要 git、不需要 Rust 工具链、也不需要 tokei 二进制。把 GitHub 链接粘贴进网页应用,或一次性安装浏览器扩展即可。结果按 commit SHA 和 tokei 版本缓存,重复分析同一提交会立即返回,零重复下载、零重复计算。这让你无需搭建本地环境,就能快速评估依赖或不熟悉的仓库。
OctoCounts 有浏览器扩展吗?
有。OctoCounts 为 Chrome、Edge 和 Firefox 提供浏览器扩展,名称均为 OctoCounts – GitHub SLOC & Code Statistics。从 Chrome 应用商店、Microsoft Edge 加载项或 Firefox 附加组件安装后,GitHub 仓库侧边栏会直接出现一个紧凑的 SLOC 卡片。卡片在任何公开仓库页面自动出现,显示总行数和分析状态。点击卡片可打开完整面板,展示文件数、总行数、代码行、注释行、空行及各语言明细,与网页应用相同的统计口径。
扩展内置本地缓存,重复访问同一仓库和 ref 时结果即时加载。你可以配置自动分析设置,在页面加载时立即获取计数,也可以手动触发。位置设置控制卡片在 GitHub 侧边栏中的显示位置。无需 GitHub 账号或 API 令牌。扩展源代码在 GitHub 上公开可用。
OctoCounts 免费吗?
免费。OctoCounts 对公开 GitHub 仓库完全免费:无需账号、无需 API 密钥、无需注册,也没有公开文档记载的速率限制。网页应用和浏览器扩展均免费,没有付费层级。后端开源,使用 Rust 和 Axum 框架编写;前端使用 React 和 TypeScript 编写。如果你愿意,可以自行部署整套服务,源代码在 github.com/huanglizhuo/OctoCounts。
OctoCounts 有意只分析公开仓库:不请求 GitHub 账号权限、不支持私有仓库、不接受源代码上传。OctoCounts 没有广告,也不收集个人数据。
OctoCounts 支持哪些编程语言?
OctoCounts 使用 tokei 做语言检测,支持超过 200 种编程语言和文件类型,涵盖 Rust、Python、JavaScript、TypeScript、Go、Java、C、C++、C#、Ruby、Swift、Kotlin、PHP、Scala、Haskell、Elixir、Erlang、Clojure、F#、Lua、R、Julia、Dart、Perl、Shell、Bash、PowerShell、HTML、CSS、SCSS、SQL、GraphQL、Dockerfile、YAML、JSON、TOML、XML、Markdown 等等。
tokei 主要按文件扩展名检测语言,对有歧义的文件回退到 shebang 行和基于内容的检测。它支持多语言文件,并支持配置排除特定目录,例如 node_modules、vendor 或构建产物目录。OctoCounts 在把归档交给 tokei 之前会自动跳过重型生成目录,这意味着 SLOC 计数反映的是实际由人编写的源代码,而不是会虚增数字的自动生成文件。
可以导出源代码行数统计结果吗?
可以。OctoCounts 支持三种导出格式,可从分析结果下方的操作按钮使用。纯文本会把一张格式化表格复制到剪贴板,按列对齐展示语言名称、文件数、总行数、代码行、注释行和空行,适合粘贴到 README、GitHub issue 或文档中。JSON 下载包含各语言统计和汇总合计的完整结构化报告,适合脚本、CI 流水线或其他消费 JSON 的工具。
PNG 下载一张 1200 × 630 的图片卡片,展示语言占比,适合分享到 Twitter、LinkedIn、GitHub 仓库 README 或作品集页面。PNG 卡片使用与网页应用相同的深浅配色,包含仓库名称、总行数和语言分布。三种格式均在浏览器端基于已加载的分析数据生成,无需额外的服务器请求。
OctoCounts 支持私有仓库吗?
OctoCounts 仅支持公开 GitHub 仓库。它不请求 GitHub 账号权限、不支持私有仓库、也不接受源代码上传。如果你需要统计私有仓库的代码行数,请在本地运行 tokei:从 github.com/XAMPPRocky/tokei 下载 tokei,克隆你的仓库,然后在仓库根目录运行 tokei。tokei 免费开源,输出格式与 OctoCounts 使用的完全一致。