关于 CKB Pulse
CKB Pulse 展示 Nervos CKB 生态的公开 GitHub 活动,面向关注项目、开发者和 DAO 资助进展的人群。它结合实时活动、历史统计、链上数据与 Fiber 网络地图,并提供摘要、订阅源和徽章。
主要功能
- 01可视化实时 GitHub 活动
- 02查看项目与开发者历史
- 03呈现链上合约使用情况
- 04映射 Fiber 支付网络
- 05提供摘要、Atom 订阅源和徽章
适用场景
- 01追踪 CKB 项目近期开发动态
- 02查看开发者及项目的长期活动
- 03了解受资助项目的进展
- 04查看 Fiber 网络节点和通道
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://pulse-lab.lusocryptolabs.com/mcpclaude mcp add --transport http lusocryptolabs-ckb-pulse https://pulse-lab.lusocryptolabs.com/mcp{"mcpServers":{"lusocryptolabs-ckb-pulse":{"type":"http","url":"https://pulse-lab.lusocryptolabs.com/mcp"}}}在 Cursor 中打开{"servers":{"lusocryptolabs-ckb-pulse":{"type":"http","url":"https://pulse-lab.lusocryptolabs.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"lusocryptolabs-ckb-pulse":{"type":"http","url":"https://pulse-lab.lusocryptolabs.com/mcp"}}}{"mcpServers":{"lusocryptolabs-ckb-pulse":{"serverUrl":"https://pulse-lab.lusocryptolabs.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
CKB Pulse
以 3D 方式呈现 CKB 生态的 GitHub 实时动态。
每个项目都是一个方块,有人参与项目时就会亮起。可查看实时动态、过去 24 小时或过去 7 天的数据。支持 English、中文和 Português。顶部的计数器可打开同一内容的项目和人员列表,方便使用键盘和屏幕阅读器浏览。
https://pulse-lab.lusocryptolabs.com
运行
npm install
GITHUB_TOKEN=<read-only token> node server.mjs
需要 Node 20 或更高版本。依赖项只有两个:resvg 用于绘制分享图片,web-push 用于发送浏览器通知(首次启动时会在 DATA_DIR/vapid.json 中生成密钥)。PORT 默认为 8080,DATA_DIR 默认为 ./data。PUBLIC_URL 是摘要、动态源和 Telegram 中显示的地址(未设置时,则使用收到各请求的地址)。
测试
npm test
测试涵盖规则(哪些活动算作 CKB 工作、清单、突发上限、Agent 和计划任务)、各语言文案、分享卡片、徽章、摘要页面和动态源、访问量、长期历史记录,以及不使用长破折号。CI 会在每次推送时运行这些测试。
服务器运行期间,GET /health 会返回 200;如果 10 分钟内没有组织动态源响应,collector.ok 就会变为 false。该接口还会包含今天的访问量。
访问量
通过 GET /api/visits(30 天)和 DATA_DIR/visits.json(90 天),可查看页面、Fiber 地图、摘要、动态源和徽章每天的页面浏览量和访客数。不使用 Cookie,也不需要账户:访客标识是当天的盐、地址和浏览器生成的哈希;一天结束后会删除盐和哈希,只保留计数。运行时间检查、爬虫、链接预览、脚本和无头浏览器会根据其 User-Agent 单独计为 bots:2026-10-26,它们产生了该页面 1997 次浏览,而页面脚本被获取了 26 次。
追踪范围
config.mjs中的组织和账户,每分钟通过 ETag 轮询。逐一读取账户的代码仓库,因为账户自己的动态源只会列出该账户的活动。- GitHub 的事件 API 会延迟 30 秒到数小时,因此本页面也无法更快显示。
- 它有时也会停止发送推送事件:从 2026-10-30 约 11:00 UTC 起,连续两天没有任何组织动态源包含推送事件,但拉取请求和提交仍在持续。因此,每 15 分钟也会读取过去 14 天内有活动的每个代码仓库的主分支提交。若某个提交在 45 分钟后仍未随推送事件出现,就将其视为作者的一次推送(同一代码仓库的新提交会相互等待,并合并计数);之后才到达的、针对同一提交的推送事件则会被丢弃。
- 构建者:依赖 CKB 库(CCC、Lumos、Spore、RGB++、JoyID、JS、Go 和 Java SDK、ckb-std、ckb-types、ckb-testtool 等,在
config.mjs中列出)的公开代码仓库;在任意源文件中调用 Fiber 节点 RPC 字段的代码仓库;以及带有 CKB 主题的代码仓库。每 6 小时搜索一次。 - CKB Community Fund DAO 资助的项目,在
config.mjs中连同其提案一起列出,不论发现机制找到什么:其中有些项目没有 CKB 主题,代码搜索也无法找到依赖项。 - 仅包含公开代码仓库。代码仓库转为私有后,在出现首个私有事件时就会从页面移除,最迟 6 小时内移除,其已存储的活动仍会计入。30 天内没有人工活动的所有者会被隐藏。
- 自动化活动显示为灰色火花,不计入数量和奖牌:机器人;AI Agent 在自己的分支上自行推送、创建分支和提议的活动(
claude/、codex/、copilot/、cursor/、devin/,以及 Claude Code 云端的ccr-分支),但合并其工作仍会计入;以及某个账户在过去 30 天中的 15 天或以上向同一项目推送的提交标题。 - 每周检查一次在已追踪代码仓库中活动的人员,查看他们是否有自己的 CKB 项目;任何人也都可以在页面上推荐一个组织或个人。当 GitHub 显示其过去 30 天内有公开的 CKB 活动(主题、名称、CKB 依赖项或对 Fiber 节点的调用)时,即会将其纳入。
config.mjs中的BLOCKED会将某个所有者排除在外。 - 每天一次,通过每个已追踪代码仓库自身的事件列表补足本周的活动,因为组织动态源只保留最近 300 条事件。
历史记录
事件 API 最多可追溯 90 天。月份和年份数据来自 GitHub 的贡献者统计:每周、每位作者在所有已知 CKB 代码仓库中的提交数,包括近期不活跃的代码仓库;每周刷新至 DATA_DIR/history.json。据此统计过去两年的每月活跃开发者(当月有提交)、新开发者(首次向这些代码仓库提交的开发者)和提交数,以及每个项目的月度提交数。非个人作者(机器人、actions-user、以 claude 或 cursoragent 名义提交的 AI Agent,在 config.mjs 中列出)会被排除在外,实时统计也同样如此。
每个读取过的代码仓库即使停止活跃或从页面移除,仍会继续计入。通过旧名称(重命名或迁移前的名称)请求的代码仓库只会计入一次,使用新名称:GitHub 对两种名称返回相同的数据。本页面开始运行前就已停止的项目仍未纳入,因此较早月份的数据偏低,增长看起来也比实际更大。
链上数据
每天一次:CKB 区块浏览器记录的、带有源代码仓库的每个脚本(其代码仓库也会随之纳入追踪),以及项目在已提交的 ckb-cli 迁移中记录的主网合约。通过公开 CKB 节点(CKB_RPC,默认值为 mainnet.ckb.dev)测量每个脚本所使用的活跃 Cell 中的 CKB 数量及其最近使用时间。数据显示在每个项目的卡片中,并带有场景标签。
Fiber
/fiber 映射主网和测试网上的 Fiber 支付网络。节点、公开通道及其更新来自你自己的 Fiber 节点,该节点仅监听(没有通道、没有资金,且关闭自动接受):将 FIBER_MAINNET_RPC 和 FIBER_TESTNET_RPC 设置为它的 RPC 地址。通道的开启和关闭则逐块从链上获取:Fiber 的 FundingLock 下出现并被花费的单元,因此私有通道也会计入(CKB_RPC、CKB_TESTNET_RPC)。支付在节点间加密传输,无法查看。
Gossip 信息会逐渐补全。2026-10-10 在测试网上测得:一个新的监听节点在 2 分钟后有 317 条通道,20 分钟后,当这些节点再次公告时又增加了 537 条(这波公告携带的更新已有 41 分钟)。在这波公告之外,通道更新会在其时间戳之后 14 到 62 秒到达该节点(90 分钟内共 6 条)。通道的开启和关闭来自链上,这是最快的路径。
页面绘制网络的方式与 LSP 实时视图绘制单个 LSP 的方式相同:每个公告的节点是一个单元(一个枢纽,有 8 个或更多邻居,中心由方块组成),每对有通道的节点之间是一条根线,CKB 越多,根线越粗。只有真实变化才会让图形移动:新通道会长出根线,离开地图的通道会枯萎,生命迹象会点亮根线并让其两端发出涟漪,新节点会膨胀出现。“Simple”会保持地图简洁;当页面无法每秒保持 20 次绘制时,会自动切换到该模式(在测试网上使用 Chrome 的 CPU 限速测得:每秒 30 次绘制可承受高达 6 倍减速,20 倍减速时切换到 Simple)。
新项目与关注
过去 14 天内创建且被关注的公开仓库是新项目:它会列在 New 下,并向打开的页面公告一次。Fork 不算。对于关注组织之外的仓库,其名称、描述或主题中必须包含链相关词语。“ckb”单独出现并不能说明仓库与 CKB 有关(它也可能指中库尔德语或 Codebase Knowledge Base 格式),fiber-network 主题也不行,因为光纤项目也会使用这个主题。
访客可在自己的设备上关注项目和人员,无需账户。允许浏览器通知后,服务器会在关注对象有动态时发送一条通知(每个项目每 10 分钟最多一次),也会在收到请求时发送新项目通知。iPhone 上需要先将页面添加到主屏幕。
摘要、Feed 和徽章
/digest?p=day|week|month 以纯页面形式展示该时段的精选内容,提供三种语言(lang=),方便阅读、转发或打印,并带有专属链接预览。每周一 08:00 UTC,该周的精选内容会保存到 DATA_DIR/digests.json(保存一年;页面运行满一周后就会生成第一份),而 /feed.xml 是一个 Atom Feed,供 Feed 阅读器订阅每周精选内容和新项目。设置 TELEGRAM_BOT_TOKEN、TELEGRAM_CHAT_ID 和 PUBLIC_URL 后,每周摘要也会以 DIGEST_LANG(en)发布到该聊天中,图片在前。
徽章以小型 SVG 展示过去 7 天的数据,可用于 README 或网站;安静或未关注时显示为灰色,缓存 10 分钟:
[](https://pulse-lab.lusocryptolabs.com/?repo=owner/repo)
[](https://pulse-lab.lusocryptolabs.com/?person=someone)
[](https://pulse-lab.lusocryptolabs.com/)
页面上每个项目和人员的卡片都会显示其徽章及可复制的 Markdown。
获资助项目
/funded 显示 CKB Community Fund DAO 资助的项目(config.mjs 中的 FUNDED):每个仓库主分支自投票以来每周的提交数来自 GitHub 的统计数据,旁边显示团队在 Nervos Talk 提案帖子中的动态;数据每天读取一次并写入 DATA_DIR/funded.json。根据帖子的开头文字,将其计为里程碑报告或完成报告。若某项资助连续 30 天没有 GitHub 工作且没有报告,则会显示为暂停,直至发布完成报告。/api/funded 会以 JSON 返回相同内容。
场景
独立构建者是规模最大的群组,按语言排列:拥有 4 个或更多仓库的每种语言都有自己的小网格和标签,其余语言共用一个网格。首次访问时,镜头会飞向项目和本周人物,然后停下来;触摸任意位置都会结束飞行。
在手机上,项目默认显示为条形图:每个项目占一行,显示每个人的工作量,条形长度与工作量的平方根成正比,颜色表示工作类型,末端显示贡献者的头像。随着工作量增加,各行会滑动到新位置;手指按在列表上时,列表会保持静止。上方的开关可切换场景视图,切换选择会保存在设备上。显示条形图时不会绘制场景。
在场景视图中,手机会将画面框入面板留出的空间;面板是底部的一张卡片:拖动卡片栏,可将它展开到预览、半屏或顶部;超过半屏后,动态信息栏会移到一旁。时间轴和卡片会避开主屏幕指示条。
24 小时和 7 天视图会一次显示整个时段,播放按钮可重新播放。启用筛选器后,计数会反映筛选结果(“已筛选,来自 247 条更新”)。?ui=next 会启用试用中的更整洁布局(?ui=old 可关闭;选择会保存在浏览器中):所有屏幕均显示条形图,筛选器收在按钮后面;只有当时间轴上方的条带显示了面板中没有的信息时,才会显示该条带;README 徽章收在“面向开发者”下方。
外观
每个页面都共用 public/theme.css,采用 Cellula 页面的视觉风格:文字使用 Space Grotesk,数字和小标签使用 JetBrains Mono,暖黑底色搭配青柠绿。字体由 public/vendor/fonts 提供(拉丁文字子集,采用 SIL Open Font License,许可文本与字体放在一起),因此访问页面时无需向任何字体托管服务请求资源;中文使用系统字体。阅读页面(/funded、/digest、/use)开头都有一个小标签、一个重点词语高亮的大标题,以及标题下的一行文字。
菜单
每个页面(实时页面、/fiber、/funded、/digest、/use)都使用同一菜单,来自 public/menu.js 和 public/menu.css:浏览(实时、Fiber、资助、本周摘要)、持续关注(公告、动态)、面向构建者(添加项目、徽章、AI Agent 和 API),以及关于本项目。宽屏上,三个视图(实时、Fiber、资助)也会与名称并排显示。可打开实时页面特定位置的链接:/?tab=new、/?tab=notices、/?tab=suggest、/?about=1。
分享
指向某个时段精选内容(?h=day|week|month)、项目(?repo=owner/name)或人物(?person=login)的链接会直接打开对应内容,其预览图由服务端绘制,尺寸为 1200 x 630。/funded(所有资助项目,或使用 ?g=<topic> 查看单个项目)、/fiber?net=mainnet|testnet(真实网络图)和 /use 也一样;最近 14 天内创建的项目会带有“新加入 CKB”飘带。每张图片的地址都带有其绘制内容的标记(v=),每个分享链接都带有日期(d=),因为 X 和 Telegram 会按地址保存预览;只有处于进行中或已交付状态的资助项目,图片才会标明其状态。卡片使用页面中的字体,字体来自 fonts/。奖章不会因短时间内集中更新而增加:每人、每个项目、每小时最多计入 10 条更新,打开分支则永远不会计入。
API
GET /api/state:仓库、精选内容和 7 天的历史记录;每分钟最多构建一次,并附带 ETag(如果内容没有变化,可发送If-None-Match以获取 304 响应)GET /api/repo?name=owner/repo:单个仓库,30 天;名称不区分大小写,响应会保留原有拼写GET /api/stream:新事件,Server-Sent EventsGET /og/highlights.png?p=,/og/repo.png?name=,/og/person.png?login=,每个接口均支持lang=en|pt|zh:分享图片GET /api/push/key、POST /api/push,参数为{sub, repos, people, news, lang},以及POST /api/push/off,参数为{endpoint}:浏览器通知GET /api/fiber?net=mainnet|testnet:Fiber 地图、链上开放的通道,以及一周内的开启和关闭记录GET /api/fiber/stream:实时推送 Fiber 变更,Server-Sent EventsGET /version.json:服务器当前运行的构建版本,用于新版本通知POST /api/propose,参数为{"login"},然后调用GET /api/propose?id=:获取一条提议及其检查结果GET /digest?p=day|week|month&lang=:以页面形式查看精选内容;GET /feed.xml?lang=:Atom 订阅源GET /badge/repo.svg?name=,/badge/person.svg?login=,/badge/ckb.svg,每个接口均支持lang=:徽章GET /api/visits:每日浏览量和访客数,30 天POST /mcp:为 AI Agent 提供相同数据,详见下文GET /use?lang=:以页面形式介绍 Pulse 的全部功能,供用户查看;该页面链接在菜单和其他页面的页脚中;GET /llms.txt:为 AI Agent 提供相同内容
MCP
Pulse 也是一个位于 /mcp 的 Model Context Protocol 服务(Streamable HTTP,无会话,无需安装):
claude mcp add --transport http ckb-pulse https://pulse-lab.lusocryptolabs.com/mcp
在浏览器中打开 /mcp 时,会跳转到 /use#ai,其中介绍了如何连接。
它已列入 MCP Registry,名称为 io.github.LusoCryptoLabs/ckb-pulse(server.json,使用 mcp-publisher publish 发布)。
其工具只读取 Pulse 已存储的数据(不调用 GitHub),仅涉及人员,时间范围为最近 30 天:
overview:按日、周或月查看更新、人员和项目,了解最活跃的对象以及新加入 Pulse 的项目find_projects:按关键词和领域(ckb、fiber、dob/spore、rgb++、ccc、nervos)查找已关注的项目project:查看单个项目的活动、各月情况、人员和最新更新person:查看某人的项目、这些项目所属的领域和使用的语言,以及他们发布的更新类型who_works_on:查看在某个领域或与关键词匹配的项目中最活跃的人员recent_updates:查看最新更新,可涵盖所有内容,也可限定在某个项目或某个人dao_funded:查看 Community Fund DAO 资助项目,并附上与报告对应的代码trends:查看每月的开发者数量、新增开发者数量和提交次数
另一个生态系统
几乎所有提及“CKB”的内容都位于 config.mjs(组织、搜索、审核关键词、标签)和 public/words.js 中的分组名称里。链上和 Fiber 部分专用于 CKB;如果没有设置相应变量,它们就不会运行。将配置指向另一个生态系统的组织和库,同一个页面就会随之适配。
许可证
MIT。Three.js(MIT)和 d3(ISC)以各自的许可证随附于 public/vendor 中。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。