OctoCounts
EN中文GitHub

统计 GitHub 仓库的代码行数

粘贴公开 GitHub 仓库链接,即可查看文件数、代码行、注释行、空行与各语言统计。免费、无需注册、无需克隆,由 tokei 驱动。

开源 · 由 tokei 驱动 · 支持 200+ 种语言ChromeEdgeFirefox

$
高级分析选项
试试:
还可以:在 GitHub 侧栏直接看 SLOC了解更多

浏览器扩展可在桌面端使用。 了解更多

示例报告

下方是一份实时示例报告。在上面粘贴任何公开仓库链接,即可分析你的仓库。

示例示例报告
react/react
v19.3.0 · 1d34f91 ·
来自提交级缓存。
代码行
36.4万
文件
2,133
总行数
46万
注释
59,105
空行
36,343
JavaScript231,461 代码63.5%
前 10 / 共 11 种语言
  • JavaScript: 63.5%
  • Rust: 17.5%
  • TypeScript: 16.4%
  • JSON: 1%
  • CSS: 0.9%
  • 其他: 0.6%
react/react 的分语言代码行数统计
JavaScript1,477293,727231,46163.5%38,45623,810
TypeScript21974,39159,89616.4%10,1694,326
JSON863,5353,5271%08
CSS883,8283,2830.9%61484
TSX151,5911,3330.4%153105
Shell19531316<0.1%11897
TOML14247223<0.1%420
SVG71010<0.1%00
其他(另 1 种)688,91000%6,3602,550
总计2,133459,809364,36159,10536,343

浏览器扩展

在 GitHub 仓库侧边栏显示 SLOC 与代码统计。
OctoCounts 浏览器扩展在 GitHub 仓库上显示 SLOC 结果
browser-extension@octocounts

OctoCounts – GitHub 代码统计

打开 GitHub 仓库,OctoCounts 会在侧边栏添加一个紧凑的 SLOC 卡片。点击卡片可查看包含总计、各语言明细和缓存数据的完整面板。

Chrome 应用商店 5.0 · 2 条评分 · 169 名用户

  • 仓库侧边栏卡片
  • 语言表格
  • 本地缓存

工具

每张卡片都直达真实工具,开箱即用

使用场景

开发者统计代码行的常见原因

评估依赖项

在采用新的开源库之前,先看清它的实际规模,而不是只看文件数。一个 50 个文件的仓库,可能是 2 万行密集的 C++,也可能是 500 行胶水代码。SLOC 让你在做决定前了解真实情况。

估算项目规模

客户和利益相关者会问代码库有多大。SLOC 能在评审或审计前给你一个扎实的数字:8 种语言共 1.2 万行,89% 代码,4% 注释。

比较分支或替代方案

粘贴两个仓库,并排比较语言细分。看看一个分支偏离了多少,或者同一规范的两个不同实现实际上有多大差异。

工作原理

归档进,tokei 报告出
01

解析

OctoCounts 验证公开 GitHub 链接,并通过 GitHub API 将请求的分支、标签或提交 SHA 解析为固定的提交哈希。相同提交 SHA、引擎版本和有效计数规则下的结果可复现。分支或标签可能指向新的提交,因此实时报告会变化。

GET /repos/:owner/:repo
02

计数

Rust 后端下载压缩归档,而不是完整的 git 克隆。解压前会跳过生成的文件夹(node_modules、vendor、.git),然后 tokei 在后台工作队列中计数每个源文件。

tokei --output json
03

缓存

报告按所有者、仓库、提交 SHA 和 tokei 版本存储。当你重新分析同一提交时,缓存会立即命中,无需重新下载,无需重新计数。重新运行会强制进行全新分析并更新缓存。浏览器扩展还会将结果本地缓存,以便离线即时查看。

cache commit + version

常见问题

关于 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 使用的完全一致。