统计 Git 项目的 commit 时间分布,进而推导出项目的编码工作强度。 Analyzes the commit time distribution of Git projects to infer coding work intensity.
See the codecode996 是一个分析工具,它可以统计 Git 项目的 commit 时间分布,进而推导出项目的编码工作强度。
它可以帮助你了解新团队工作的时间模式,识别潜在的加班文化。
使用方法很简单,一行命令即可开始:npx -y code996
简体中文 | English
面试时我们会询问面试官加班情况,但得到的答案有时不那么真实。但是代码的提交时间不会骗人,因此就有了这个工具。
当你入职新公司,跑一下 npx -y code996,就可以看到数据背后的真相,从而判断这家公司的真实加班文化。
与其痛苦三个月,不如早点看清真相!别等到试用期结束才后悔!
--open 可自动打开,无需上传数据或常驻本地服务
首先确保本地已安装 Node.js 18 或更高版本,然后:
# 在当前仓库或仓库上级目录运行
npx -y code996
默认会在终端输出传统文字报告,同时把可视化报告保存到 Downloads/code996-report/日期_时间_项目名/,但不会自动打开浏览器;例如 Downloads/code996-report/2026-07-18_10-11-46_demo/。需要生成后直接打开时运行 npx code996 --open。CLI 退出后仍可继续查看,删除对应目录即可完整移除报告;整个过程不会上传仓库数据,也不需要启动 localhost 服务。
你也可以选择安装后再使用,这样就不用每次都重新下载:
# 全局安装
npm i -g code996
# 使用
code996
无需预先安装 Skill。打开目标项目,把下面这段话发送给能够访问网络和执行命令的 AI 编程工具:
请阅读 https://raw.githubusercontent.com/hellodigua/code996/main/skills/code996/SKILL.md 及其中引用的文件,并按照说明分析当前 Git 项目的团队工作强度,生成一份 996 分析报告。
AI 会按照 code996 Skill 采集本地 Git 数据,并生成包含加班语义、贡献者对比和改进建议的叙事化报告。你也可以把提示词末尾的分析要求改成:
分析我们团队 2025 年的加班情况,出一份报告
帮我对比 /workspace/proj-a 和 /workspace/proj-b 的加班强度
用 code996 分析这个仓库,并打开本地 Web 报告
运行 code996 需要 Node.js 18+。
code996 会根据上下文自动选择最合适的分析模式:
# 智能检测,自动选择分析模式
code996 # 智能检测当前环境
code996 /path/to/repo # 分析指定仓库
code996 /proj1 /proj2 # 自动进入多仓库模式
code996 /workspace # 自动扫描子目录
| 选项 | 简写 | 描述 |
|---|---|---|
--year <year> | -y | 指定年份或年份范围(推荐)。单年:2025;范围:2023-2025 |
--since <date> | -s | 自定义开始日期 (YYYY-MM-DD) |
--until <date> | -u | 自定义结束日期 (YYYY-MM-DD) |
--all-time | - | 覆盖整个仓库历史数据 |
| 选项 | 简写 | 描述 |
|---|---|---|
--hours <range> | -H | 手动指定标准工作时间(如 9-18)⭐ 推荐使用,可获得更准确的结果 |
--half-hour | - | 以半小时粒度展示时间分布(默认按小时)📊 更精确 |
--timezone <offset> | - | 指定时区进行分析(如 +0800、-0700)🌍 适用于跨时区团队 |
--cn | - | 强制开启中国节假日调休模式(+0800 时区自动启用) |
--self | - | 仅统计当前 Git 用户的提交记录 |
--ignore-author <regex> | - | 排除匹配正则的作者(如 bot|jenkins) |
--ignore-msg <regex> | - | 排除匹配正则的提交信息(如 ^Merge|lint) |
--lang <locale> | - | 指定界面语言(支持 zh-CN、en 及常见别名) |
| 选项 | 行为 |
|---|---|
| 默认 | 输出终端文字报告,同时保存 Web 报告但不打开浏览器 |
--open | 输出终端文字报告、保存 Web 报告并自动打开浏览器 |
--json / --md | 输出稳定的 JSON 数据或 Markdown 表格,不额外生成 Web 报告 |
--output [path] | 将 --json 或 --md 保存到指定路径;省略路径时使用默认文件名 |
--json 和 --md 互斥,--open 不能与这两种结构化输出同时使用。Web 报告支持在页面右上角直接切换中文和英文;--lang 决定初始语言。
code996 会自动根据电脑系统语言选择界面语言。优先级如下:
--lang <locale> 命令行参数CODE996_LANG 环境变量LC_ALL、LC_MESSAGES、LANG)当前支持中文和英文。显式指定时可使用 zh、zh-CN、zh_CN、zh-Hans-CN、en、en-US、en_US;如果指定不支持的语言,命令会报错退出。
# ===== 单仓库分析(智能模式) =====
code996 # 分析当前仓库(最近一年)
code996 /path/to/repo # 分析指定仓库
code996 -y 2025 # 分析2025年
code996 -y 2023-2025 # 分析2023-2025年
code996 --all-time # 查询整个仓库历史
code996 --self # 只分析当前用户的提交
code996 --self -y 2025 # 分析自己在2025年的提交
# ===== 多仓库分析(智能自动检测) =====
code996 # 如果子目录有多个仓库,自动进入多仓库模式
code996 /path/proj1 /path/proj2 # 传入多个路径,自动分析多个仓库
code996 /workspace # 扫描指定目录的所有子仓库
code996 /workspace -y 2025 # 分析2025年的数据和趋势
code996 --self # 只统计当前用户在所有仓库中的提交
# 手动指定工时(推荐)
code996 --hours 9.5-18.5 # 指定 9:30-18:30(支持小数)
code996 --hours 9.5-19 -y 2025 # 结合年份分析
# 精细分析(半小时粒度)
code996 --half-hour # 以半小时粒度展示时间分布
code996 -y 2025 --half-hour # 结合年份分析,精细展示
code996 /proj1 /proj2 --half-hour # 多仓库分析,半小时粒度展示
# 跨时区项目分析
code996 --timezone="+0800" # 只分析东八区(中国)的提交
code996 --timezone="-0700" # 只分析西七区(美国西海岸)的提交
code996 -y 2025 --timezone="+0800" # 分析2025年特定时区的提交
# 中国节假日调休分析
code996 # 系统自动检测主要时区为 +0800 时,会自动启用节假日调休
code996 --cn # 手动强制开启节假日调休模式(适用于非 +0800 时区项目)
code996 --timezone="-0700" --cn # 分析非中国时区项目,但需要按中国节假日调休判断
# 过滤噪音数据(排除 CI/CD 机器人、合并提交等)
code996 --ignore-author "bot" # 排除所有包含 "bot" 的作者
code996 --ignore-author "bot|jenkins|github-actions" # 排除多个作者(使用 | 分隔)
code996 --ignore-msg "^Merge" # 排除所有以 "Merge" 开头的提交消息
code996 --ignore-msg "merge|lint|format" # 排除多个关键词
code996 -y 2025 --ignore-author "renovate|dependabot" --ignore-msg "^Merge" # 综合过滤
# 指定界面语言
code996 --lang zh-CN # 强制中文界面
code996 --lang en # 强制英文界面
# 报告输出
code996 # 输出终端报表,同时保存 Web 报告但不打开
code996 --open # 输出终端报表、保存并打开 Web 报告
code996 --json --output report.json
code996 --md --output report.md
常见排除场景:
# 排除所有 CI/CD 机器人
--ignore-author "bot|jenkins|github-actions|gitlab-ci|circleci|travis"
# 排除依赖更新机器人
--ignore-author "renovate|dependabot|greenkeeper"
# 排除合并和格式化提交
--ignore-msg "^Merge|^merge|lint|format|prettier"
# 排除自动生成的提交
--ignore-msg "^chore|^build|^ci|auto"
Git 仓库 → git log 采集 → 日级首提 + 小时分布 → 分位数推算上/下班 → 996 指数计算 → 结果输出
--cn 参数手动开启如果你想要协助校准code996的计算算安抚,那么可以在要分析的 Git 仓库中运行:
npx code996 benchmark
命令只在本地分析,不会上传任何内容。它会生成一个无标签的 code996-benchmark-*.json 文件;发送给维护者前,请先打开文件人工检查。无标签样本可用于发现算法的明显误判和异常分布,但不能证明它与团队真实作息之间的误差。
如果愿意补充信息,可以使用可选参数生成更适合计算误差的有标签样本:
npx code996 benchmark \
--reference-hours 9.5-18.5 \
--team-size 20
--reference-hours:团队真实或通常执行的标准工时,用于与自动结果比较--team-size:只用于按团队规模分组研究算法表现,不参与 996 指数计算;未提供时仍会自动记录 Git 贡献者人数区间--schedule、--label-confidence:补充排班类型和参考标签的可信度-y / --since --until:固定分析范围,便于不同数据集之间复现和比较JSON 不包含任何隐私信息。它会保留提交数、按半小时和星期聚合的时间分布、月份范围、贡献者人数区间以及自动结果;仅在提供参考工时后包含参考结果和误差。
以下是一些常见问题,如果你有其他问题,欢迎随时提出issue。
并非如此。code996 的核心价值在于打破信息差,用真实数据对抗口头画饼。
影响会有,但 code996 依赖的是统计学规律,只要 commit 样本达到一定数量,最终呈现的是团队整体的集体工作模式,特殊提交习惯在统计学上会被视为“噪声”被过滤掉。
接下来的功能都会沿着 WLB 和工作避坑的路线来开发,包括:更精细的加班比例分析、以及分析代码的屎山指数(复杂度分析),毕竟维护屎山也是导致 996 的罪魁祸首之一。
🤖 AI 协作伙伴注意:本项目采用标准化的 AI 协作流程,详情请查看 .docs/README.md 中的协作规范。
MIT License
(top 24 of 26)
309 followers · starred Nov 2025
1,855 followers · starred Jan 2026
832 followers · starred Nov 2025
847 followers · starred Nov 2025
统计 Git 项目的 commit 时间分布,进而推导出项目的编码工作强度。 Analyzes the commit time distribution of Git projects to infer coding work intensity.
See the codecode996 是一个分析工具,它可以统计 Git 项目的 commit 时间分布,进而推导出项目的编码工作强度。
它可以帮助你了解新团队工作的时间模式,识别潜在的加班文化。
使用方法很简单,一行命令即可开始:npx -y code996
简体中文 | English
面试时我们会询问面试官加班情况,但得到的答案有时不那么真实。但是代码的提交时间不会骗人,因此就有了这个工具。
当你入职新公司,跑一下 npx -y code996,就可以看到数据背后的真相,从而判断这家公司的真实加班文化。
与其痛苦三个月,不如早点看清真相!别等到试用期结束才后悔!
--open 可自动打开,无需上传数据或常驻本地服务
首先确保本地已安装 Node.js 18 或更高版本,然后:
# 在当前仓库或仓库上级目录运行
npx -y code996
默认会在终端输出传统文字报告,同时把可视化报告保存到 Downloads/code996-report/日期_时间_项目名/,但不会自动打开浏览器;例如 Downloads/code996-report/2026-07-18_10-11-46_demo/。需要生成后直接打开时运行 npx code996 --open。CLI 退出后仍可继续查看,删除对应目录即可完整移除报告;整个过程不会上传仓库数据,也不需要启动 localhost 服务。
你也可以选择安装后再使用,这样就不用每次都重新下载:
# 全局安装
npm i -g code996
# 使用
code996
无需预先安装 Skill。打开目标项目,把下面这段话发送给能够访问网络和执行命令的 AI 编程工具:
请阅读 https://raw.githubusercontent.com/hellodigua/code996/main/skills/code996/SKILL.md 及其中引用的文件,并按照说明分析当前 Git 项目的团队工作强度,生成一份 996 分析报告。
AI 会按照 code996 Skill 采集本地 Git 数据,并生成包含加班语义、贡献者对比和改进建议的叙事化报告。你也可以把提示词末尾的分析要求改成:
分析我们团队 2025 年的加班情况,出一份报告
帮我对比 /workspace/proj-a 和 /workspace/proj-b 的加班强度
用 code996 分析这个仓库,并打开本地 Web 报告
运行 code996 需要 Node.js 18+。
code996 会根据上下文自动选择最合适的分析模式:
# 智能检测,自动选择分析模式
code996 # 智能检测当前环境
code996 /path/to/repo # 分析指定仓库
code996 /proj1 /proj2 # 自动进入多仓库模式
code996 /workspace # 自动扫描子目录
| 选项 | 简写 | 描述 |
|---|---|---|
--year <year> | -y | 指定年份或年份范围(推荐)。单年:2025;范围:2023-2025 |
--since <date> | -s | 自定义开始日期 (YYYY-MM-DD) |
--until <date> | -u | 自定义结束日期 (YYYY-MM-DD) |
--all-time | - | 覆盖整个仓库历史数据 |
| 选项 | 简写 | 描述 |
|---|---|---|
--hours <range> | -H | 手动指定标准工作时间(如 9-18)⭐ 推荐使用,可获得更准确的结果 |
--half-hour | - | 以半小时粒度展示时间分布(默认按小时)📊 更精确 |
--timezone <offset> | - | 指定时区进行分析(如 +0800、-0700)🌍 适用于跨时区团队 |
--cn | - | 强制开启中国节假日调休模式(+0800 时区自动启用) |
--self | - | 仅统计当前 Git 用户的提交记录 |
--ignore-author <regex> | - | 排除匹配正则的作者(如 bot|jenkins) |
--ignore-msg <regex> | - | 排除匹配正则的提交信息(如 ^Merge|lint) |
--lang <locale> | - | 指定界面语言(支持 zh-CN、en 及常见别名) |
| 选项 | 行为 |
|---|---|
| 默认 | 输出终端文字报告,同时保存 Web 报告但不打开浏览器 |
--open | 输出终端文字报告、保存 Web 报告并自动打开浏览器 |
--json / --md | 输出稳定的 JSON 数据或 Markdown 表格,不额外生成 Web 报告 |
--output [path] | 将 --json 或 --md 保存到指定路径;省略路径时使用默认文件名 |
--json 和 --md 互斥,--open 不能与这两种结构化输出同时使用。Web 报告支持在页面右上角直接切换中文和英文;--lang 决定初始语言。
code996 会自动根据电脑系统语言选择界面语言。优先级如下:
--lang <locale> 命令行参数CODE996_LANG 环境变量LC_ALL、LC_MESSAGES、LANG)当前支持中文和英文。显式指定时可使用 zh、zh-CN、zh_CN、zh-Hans-CN、en、en-US、en_US;如果指定不支持的语言,命令会报错退出。
# ===== 单仓库分析(智能模式) =====
code996 # 分析当前仓库(最近一年)
code996 /path/to/repo # 分析指定仓库
code996 -y 2025 # 分析2025年
code996 -y 2023-2025 # 分析2023-2025年
code996 --all-time # 查询整个仓库历史
code996 --self # 只分析当前用户的提交
code996 --self -y 2025 # 分析自己在2025年的提交
# ===== 多仓库分析(智能自动检测) =====
code996 # 如果子目录有多个仓库,自动进入多仓库模式
code996 /path/proj1 /path/proj2 # 传入多个路径,自动分析多个仓库
code996 /workspace # 扫描指定目录的所有子仓库
code996 /workspace -y 2025 # 分析2025年的数据和趋势
code996 --self # 只统计当前用户在所有仓库中的提交
# 手动指定工时(推荐)
code996 --hours 9.5-18.5 # 指定 9:30-18:30(支持小数)
code996 --hours 9.5-19 -y 2025 # 结合年份分析
# 精细分析(半小时粒度)
code996 --half-hour # 以半小时粒度展示时间分布
code996 -y 2025 --half-hour # 结合年份分析,精细展示
code996 /proj1 /proj2 --half-hour # 多仓库分析,半小时粒度展示
# 跨时区项目分析
code996 --timezone="+0800" # 只分析东八区(中国)的提交
code996 --timezone="-0700" # 只分析西七区(美国西海岸)的提交
code996 -y 2025 --timezone="+0800" # 分析2025年特定时区的提交
# 中国节假日调休分析
code996 # 系统自动检测主要时区为 +0800 时,会自动启用节假日调休
code996 --cn # 手动强制开启节假日调休模式(适用于非 +0800 时区项目)
code996 --timezone="-0700" --cn # 分析非中国时区项目,但需要按中国节假日调休判断
# 过滤噪音数据(排除 CI/CD 机器人、合并提交等)
code996 --ignore-author "bot" # 排除所有包含 "bot" 的作者
code996 --ignore-author "bot|jenkins|github-actions" # 排除多个作者(使用 | 分隔)
code996 --ignore-msg "^Merge" # 排除所有以 "Merge" 开头的提交消息
code996 --ignore-msg "merge|lint|format" # 排除多个关键词
code996 -y 2025 --ignore-author "renovate|dependabot" --ignore-msg "^Merge" # 综合过滤
# 指定界面语言
code996 --lang zh-CN # 强制中文界面
code996 --lang en # 强制英文界面
# 报告输出
code996 # 输出终端报表,同时保存 Web 报告但不打开
code996 --open # 输出终端报表、保存并打开 Web 报告
code996 --json --output report.json
code996 --md --output report.md
常见排除场景:
# 排除所有 CI/CD 机器人
--ignore-author "bot|jenkins|github-actions|gitlab-ci|circleci|travis"
# 排除依赖更新机器人
--ignore-author "renovate|dependabot|greenkeeper"
# 排除合并和格式化提交
--ignore-msg "^Merge|^merge|lint|format|prettier"
# 排除自动生成的提交
--ignore-msg "^chore|^build|^ci|auto"
Git 仓库 → git log 采集 → 日级首提 + 小时分布 → 分位数推算上/下班 → 996 指数计算 → 结果输出
--cn 参数手动开启如果你想要协助校准code996的计算算安抚,那么可以在要分析的 Git 仓库中运行:
npx code996 benchmark
命令只在本地分析,不会上传任何内容。它会生成一个无标签的 code996-benchmark-*.json 文件;发送给维护者前,请先打开文件人工检查。无标签样本可用于发现算法的明显误判和异常分布,但不能证明它与团队真实作息之间的误差。
如果愿意补充信息,可以使用可选参数生成更适合计算误差的有标签样本:
npx code996 benchmark \
--reference-hours 9.5-18.5 \
--team-size 20
--reference-hours:团队真实或通常执行的标准工时,用于与自动结果比较--team-size:只用于按团队规模分组研究算法表现,不参与 996 指数计算;未提供时仍会自动记录 Git 贡献者人数区间--schedule、--label-confidence:补充排班类型和参考标签的可信度-y / --since --until:固定分析范围,便于不同数据集之间复现和比较JSON 不包含任何隐私信息。它会保留提交数、按半小时和星期聚合的时间分布、月份范围、贡献者人数区间以及自动结果;仅在提供参考工时后包含参考结果和误差。
以下是一些常见问题,如果你有其他问题,欢迎随时提出issue。
并非如此。code996 的核心价值在于打破信息差,用真实数据对抗口头画饼。
影响会有,但 code996 依赖的是统计学规律,只要 commit 样本达到一定数量,最终呈现的是团队整体的集体工作模式,特殊提交习惯在统计学上会被视为“噪声”被过滤掉。
接下来的功能都会沿着 WLB 和工作避坑的路线来开发,包括:更精细的加班比例分析、以及分析代码的屎山指数(复杂度分析),毕竟维护屎山也是导致 996 的罪魁祸首之一。
🤖 AI 协作伙伴注意:本项目采用标准化的 AI 协作流程,详情请查看 .docs/README.md 中的协作规范。
MIT License
(top 24 of 26)
309 followers · starred Nov 2025
1,855 followers · starred Jan 2026
832 followers · starred Nov 2025
847 followers · starred Nov 2025