把每日编码活动画成 GitHub 风格年度贡献热力图
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/luoyiyxo/dsh-happycode.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 3 处,展示前 3 条)
- 读取本地文件lib/paths.js:98
return readdirSync(profilesRoot, { withFileTypes: true }) - 读取本地文件lib/paths.js:102
try { mtime = statSync(join(profilesRoot, entry.name)).mtimeMs } catch { } - 读取本地文件lib/paths.js:105
.filter(entry => existsSync(join(profilesRoot, entry.name, 'package.json')))
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
你在 DeepSeek Harness 上的活动,用 GitHub 风格的贡献图呈现。
README
由 DeepSeek 最新模型翻译生成Happycoding Everyday
把你在 DeepSeek Harness 的活动,画成 GitHub 风格的年度贡献热力图。
显示名 Happycoding Everyday;npm 包名、仓库名与插件 id 仍是 dsh-happycode。
Happycoding Everyday 读取 DSH 本来就写在你自己机器上的会话日志,把每天的活动折算成一个数,再用 GitHub 的那套画法画出来:横向是周、纵向是周一到周日、五档绿、每个格子都有 tooltip。
它是一个插件,不是一个服务 —— 数据不会离开这台机器。
安装
在 DSH 插件市场搜索 Happycoding Everyday 一键安装;或用命令行:
dsh plugin --profile <profile> add dsh-happycode
DSH Desktop 用户请在 设置 → 插件 里安装(那个 profile 归 App 管)。装完重启一次 DSH,服务端半侧才会加载;客户端半侧刷新页面即可生效。
然后点左下角头像菜单,HappyCode 就夹在 设置 与 意见反馈 之间—— 菜单用短名,弹窗里才是完整品牌语。
你会得到什么
- 账号菜单里的一行:字号、行高、左右内边距、悬停态与相邻三项完全一致,前置一枚迷你热力格图标。
展开完整文档(README 剩余 1 节)
Happycoding Everyday
把你在 DeepSeek Harness 的活动,画成 GitHub 风格的年度贡献热力图。
显示名 Happycoding Everyday;npm 包名、仓库名与插件 id 仍是 dsh-happycode。
Happycoding Everyday 读取 DSH 本来就写在你自己机器上的会话日志,把每天的活动折算成一个数,再用 GitHub 的那套画法画出来:横向是周、纵向是周一到周日、五档绿、每个格子都有 tooltip。
它是一个插件,不是一个服务 —— 数据不会离开这台机器。
安装
在 DSH 插件市场搜索 Happycoding Everyday 一键安装;或用命令行:
dsh plugin --profile <profile> add dsh-happycode
DSH Desktop 用户请在 设置 → 插件 里安装(那个 profile 归 App 管)。装完重启一次 DSH,服务端半侧才会加载;客户端半侧刷新页面即可生效。
然后点左下角头像菜单,HappyCode 就夹在 设置 与 意见反馈 之间—— 菜单用短名,弹窗里才是完整品牌语。
你会得到什么
- 账号菜单里的一行:字号、行高、左右内边距、悬停态与相邻三项完全一致,前置一枚迷你热力格图标。
- 个人资料行:约 120px 圆角头像 + 24px 间距 + 文字列(用户名 24px 加粗 / Coding since Oct 2026 16px),文字列底部与头像底部对齐。取数来自宿主已经渲染的账号按钮;没有头像就用品牌色圆角底 + 首字母;账号信息完全拿不到时整行不画。不显示邮箱——读到带 @ 的文本一律当作「没有名字」。
- 与宿主设置同款的弹窗:品牌语居中于 90px 标题带(28–30px 加粗,极窄时降到 24px),右上角可关,Esc 与点遮罩同样能关;宽度取 min(1500px, 94vw),高度随内容,最多 88vh。
垂直节奏:标题带↔资料行 40px、资料行↔总数标题 36px、底部 24px。
- 只有一个视图:自然年。1 月到 12 月,周一起始,首末列补位留空,不会串进相邻年份。
- 图区铺满弹窗:格子尺寸按卡片实测宽度算 —— 设计宽度下 21px、14px 下限,窗口缩放时重排。
- 坐标标签放大:Jan…Dec 与 Mon/Wed/Fri 都是 18px。
- 图例在 GitHub 的位置:卡片内部、格子正下方、右对齐。
- 卡片右侧的年份选择器:当前年份 ∪ 有活动的年份,降序,最多 3 个。新年即使还没有活动,也保留一个按钮(跨年当天不会只剩旧年份)。
- 每个格子都有 tooltip:19 contributions on October 24th.、No contributions on October 23rd.,措辞照抄 GitHub,日期带序数词。
- 深浅两套 GitHub 官方色阶,跟随宿主主题实时切换。
- 可改的权重:在 插件 页本插件自己的配置里,三个数字 + 一个 Recalculate。
统计口径
每天一个贡献值,由会话日志里的三类事件合成:
| 事件 | 权重 | 默认 |
| 你发出的消息(user/message 且来源是真实用户) | m | 1 |
| 工具调用(tool/call) | t | 1 |
| 写文件的工具调用(write、edit、str_replace_editor 等) | f | 3 |
贡献值 = 1·m + 1·t + 3·f
不计入:注入的上下文(运行时快照、技能目录、时间上下文)、助手消息、工具结果、子智能体会话、空会话。规则与实测依据见 docs/data-schema.md。
颜色分档按你自己的数据算:取当前窗口内非零贡献日的 25/50/75 分位数作为三个阈值。
活跃日少于 8 天,或分位数并列,则回退 GitHub 固定档位 1–9 / 10–19 / 20–39 / 40+。
隐私
- 零网络请求:插件只和宿主自己的 loopback HTTP 路由通信,没有遥测、没有外链字体、没有头像拉取。
- 会话日志只读:~/.dsh/sessions/ 与投影缓存只读不写。
- 只写一个目录:~/.dsh/profiles/<profile>/.dsh-happycode/,里面是 daily.json、sessions.json、settings.json。
- 不落任何会话内容:诊断信息只有文件名、计数与错误消息。
兼容性
- DSH 0.2.1 及以上(目标是账号菜单与插件配置页)。
- Node 22.15 及以上,用于内置 Zstandard 解码;更低版本会跳过压缩日志并记录一条日志,不会崩。
工作原理
~/.dsh/sessions/<工作区>/session-<id>/session.v4.jsonl.zstd (只读) │ 拼接的 zstd 帧 → JSONL ▼
daily.json { "2026-10-24": { m: 8, t: 11, f: 0 } } (缓存)
│
▼
GET /dsh-happycode/api/graph?year=2026 → { total, days[], thresholds, … } GET /dsh-happycode/api/graph?range=last365 (留给后续路线图,当前 UI 不调用) │ ▼ 客户端 bundle → 账号菜单行 → 弹窗
首次索引在后台跑完;之后只重新解析大小或修改时间变过的会话。单个会话解析失败就跳过并计入状态,不重试、不致命。
开发
npm test # 53 个测试:解码、计数、缓存、路由、UI
npm run render:preview # 用同一套网格几何重新生成 README 预览图
客户端 bundle 是手写的 CommonJS(client/client.js),没有构建步骤:它自己注册到宿主的 window.__ModuleLoader__,只从宿主 module table 里 require react 与 @deepseek-ai/dsh-client-ui-primitives。
账号菜单那一行是怎么塞进去的、为什么只能这么塞,见 docs/host-ui-notes.md。
许可证
MIT。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
luoyiyxo/dsh-happycode
把每日编码活动画成 GitHub 风格年度贡献热力图
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,025未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,358已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13938 个插件含 PR 收录与…
★ 350已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目