
Product
Socket Threat Intel Now Shows Which Malware Campaigns Were Blocked or Detected
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.
code996 是一个分析工具,它可以统计 Git 项目的 commit 时间分布,进而推导出项目的编码工作强度。
它可以帮助你了解新团队工作的时间模式,识别潜在的加班文化。
使用方法很简单,一行命令即可开始:npx code996
简体中文 | English
面试时我们会询问面试官加班情况,但得到的答案有时不那么真实。但是代码的提交时间不会骗人,因此就有了这个工具。
当你入职新公司,跑一下 npx code996,就可以看到数据背后的真相,从而判断这家公司的真实加班文化。
与其痛苦三个月,不如早点看清真相!别等到试用期结束才后悔!
--open 可自动打开,无需上传数据或常驻本地服务
首先确保本地已安装 Node.js 18 或更高版本,然后:
# 在当前仓库或仓库上级目录运行
npx code996
默认会在终端输出传统文字报告,同时把可视化报告保存到 Downloads/code996-report/日期_时间_项目名/,但不会自动打开浏览器;例如 Downloads/code996-report/2026-07-18_10-11-46_demo/。需要生成后直接打开时运行 npx code996 --open。CLI 退出后仍可继续查看,删除对应目录即可完整移除报告;整个过程不会上传仓库数据,也不需要启动 localhost 服务。
你也可以选择安装后再使用,这样就不用每次都重新下载:
# 全局安装
npm i -g code996
# 使用
code996
用 Codex、Claude Code、WorkBuddy 等支持 Agent Skills 的 AI 编程工具时,可以装上 code996 的 skill:一句话让 AI 帮你跑分析,并写出人能看懂的报告——不只是数字,还会说清加班在干什么、谁加班多、怎么改进。
# 需要 Node.js 18 及以上;会检测本机装了哪些 AI 工具,让你选装到哪里
npx skills add hellodigua/code996 --skill code996 -g
装完如果还没生效,重启一下对应的 AI 工具。然后打开要分析的项目,对 AI 说:
帮我用 code996 分析当前项目团队的工作强度,生成一份 996 分析报告
也可以这样说:
分析我们团队 2025 年的加班情况,出一份报告
帮我对比 /workspace/proj-a 和 /workspace/proj-b 的加班强度
用 code996 分析这个仓库,并打开本地 Web 报告
安装 skill 和运行 code996 CLI 都需要 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 参数手动开启以下是一些常见问题,如果你有其他问题,欢迎随时提出issue。
并非如此。code996 的核心价值在于打破信息差,用真实数据对抗口头画饼。
影响会有,但 code996 依赖的是统计学规律,只要 commit 样本达到一定数量,最终呈现的是团队整体的集体工作模式,特殊提交习惯在统计学上会被视为“噪声”被过滤掉。
虽然技术上可以实现,但最终刻意放弃了这个功能:
按用户查看 996 指数,这个功能太容易被异化和滥用了,它很容易被一些人拿去分析团队成员的“加班情况”。
虽然我前面已经不止一次强调了工具的局限性(实际工作还包括开会、学习、维护文档、调试自测等等),但你就是拦不住有些人只看数字🤦
这个项目的初衷是用来避坑项目的,而不是给内卷提供新的弹药。因此,项目只提供看团队和看自己(--self)两种视角。
最后,代码提交量和时间点不等于工作产出。如果将其用于绩效考核,不仅会导致团队为了刷数据而产生大量垃圾提交,更会破坏团队的信任。
接下来的功能都会沿着 WLB 和工作避坑的路线来开发,包括:更精细的加班比例分析、以及分析代码的屎山指数(复杂度分析),毕竟维护屎山也是导致 996 的罪魁祸首之一。
🤖 AI 协作伙伴注意:本项目采用标准化的 AI 协作流程,详情请查看 .docs/README.md 中的协作规范。
MIT License
FAQs
统计 Git commit 的时间分布,进而推导出项目的编码工作强度
The npm package code996 receives a total of 4 weekly downloads. As such, code996 popularity was classified as not popular.
We found that code996 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.

Security News
Fixes for eMudhra and Brotli are out. Getting them everywhere they’re needed means tracking down bundled libraries, runtimes, and certificate stores.

Threat Research
/Security News
Socket uncovered secret-stealing workflows that ran in LiteLLM’s GitHub repository 11 days before the supply chain attack on PyPI and Docker.