CKB Pulse

io.github.LusoCryptoLabs由 GitHub 帳號 LusoCryptoLabs 發布v1.0.0更新於 Nov 3, 2026

誰在Nervos CKB上建立,來自公開GitHub:專案、人員、更新、DAO資助的工作。唯讀。

AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。

原文描述

Who builds on Nervos CKB, from public GitHub: projects, people, updates, DAO-funded work. Read-only.

已驗證Streamable HTTP可網頁執行

概覽

CKB Pulse 的託管 MCP 服務(pulse-lab.lusocryptolabs.com);無需登入;Streamable HTTP;8 個工具。

暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。

端點
pulse-lab.lusocryptolabs.com
最近檢查

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 CKB Pulse,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.LusoCryptoLabs%2Fckb-pulse/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "ckb-pulse": {
      "type": "http",
      "url": "https://pulse-lab.lusocryptolabs.com/mcp"
    }
  }
}

README

CKB Pulse

Live GitHub activity of the CKB ecosystem, drawn in 3D.

Each project is a block that lights up when people work on it. Live, last 24 hours or last 7 days. English, 中文, Português. The counters at the top open the same picture as lists of projects and people, for keyboards and screen readers.

https://pulse-lab.lusocryptolabs.com

Run

sh
npm installGITHUB_TOKEN=<read-only token> node server.mjs

Node 20 or later. Two dependencies: resvg draws the share pictures, web-push sends browser notices (its keys are made on first start in DATA_DIR/vapid.json). PORT defaults to 8080, DATA_DIR to ./data. PUBLIC_URL is the address the digest, the feed and Telegram name (without it, the one each request came to).

Test

sh
npm test

The rules (what counts as CKB work, manifests, the burst cap, agents and schedules), the words in every language, the share cards, the badges, the digest page and the feed, the visit counts, the long history, and no long dashes. CI runs them on every push.

GET /health answers 200 while the server lives; collector.ok turns false when no organisation feed has answered for 10 minutes. It also carries today's visits.

Visits

Page views and visitors per day for the page, the Fiber map, the digest, the feed and the badges, at GET /api/visits (30 days) and in DATA_DIR/visits.json (90 days). No cookies and no accounts: a visitor is a hash of the day's salt, the address and the browser, and the salt and the hashes are dropped when the day ends, so only the counts remain. Uptime checks, crawlers, link previews, scripts and headless browsers count apart, as bots, by their user agent: on 2026-10-26 they made 1997 of the page's views, while its script was fetched 26 times.

What it follows

  • The organisations and accounts in config.mjs, polled every minute with ETags. An account's repositories are read one by one, since its own feed only lists what that account did.
  • GitHub delays its events API by 30 seconds to several hours, so neither can this page be faster.
  • It can also stop sending pushes: from about 11:00 UTC on 2026-10-30 no organisation feed carried one for two days, while pull requests and commits went on. So the main branch of every repository with work in the last 14 days is also read as commits, every 15 minutes. A commit that no push brought in 45 minutes later counts as a push by its author (a repository's new commits wait for each other and count together), and a push that arrives after that for the same commit is dropped.
  • Builders: public repositories that depend on CKB libraries (CCC, Lumos, Spore, RGB++, JoyID, the JS, Go and Java SDKs, ckb-std, ckb-types, ckb-testtool and others, listed in config.mjs), call a Fiber node (its RPC fields, in any source file) or carry CKB topics, found by search every 6 hours.
  • Projects the CKB Community Fund DAO pays for, listed in config.mjs with their proposal, whatever discovery finds: several carry no CKB topic and no dependency code search can see.
  • Only public repositories. A repository that turns private leaves the page with its first private event, or at the latest within 6 hours, its stored work included. Owners with no human activity in 30 days are hidden.
  • Automatic work shows as grey sparks and stays out of the counts and medals: bots; what AI agents push, branch and propose on their own branches (claude/, codex/, copilot/, cursor/, devin/, and Claude Code's cloud ccr- branches), while merging their work still counts; and a commit title one account pushes to one project on 15 or more days of the last 30.
  • People at work in followed repositories are checked for CKB projects of their own once a week, and anyone can suggest an organisation or a person on the page. Either joins when GitHub shows public CKB work (topics, names, a CKB dependency or calls to a Fiber node) from the last 30 days. BLOCKED in config.mjs keeps an owner off.
  • Once a day each followed repository's own event list fills the week, since an organisation's feed keeps only its last 300 events.

History

The events API reaches back 90 days. Months and years come from GitHub's contributor statistics: commits per week and author for every known CKB repository, quiet ones included, refreshed weekly into DATA_DIR/history.json. From them: active developers per month (a commit in the month), new developers (their first commit among these repositories) and commits, two years back; and commits per month for each project. Authors that are not people (bots, actions-user, AI agents committing as claude or cursoragent, listed in config.mjs) are left out, as they are from the live counts.

Every repository read once stays counted after it goes quiet or leaves the page. A repository asked for by an old name (renamed or moved) is counted once, under its new name: GitHub answers both with the same numbers. Projects that stopped before this page began are still missing, so older months read low and the growth looks larger than it was.

On chain

Once a day: every script the CKB explorer knows with a source repository (its repository is then followed too), and the mainnet contracts projects record in their committed ckb-cli migrations, measured on a public CKB node (CKB_RPC, default mainnet.ckb.dev): CKB in live cells that use each one and its last use. Shown in each project's card, with a tag in the scene.

Fiber

/fiber maps the Fiber payment network on mainnet and testnet. Nodes, public channels and their updates come from a Fiber node of your own that only listens (no channels, no funds, auto-accept off): set FIBER_MAINNET_RPC and FIBER_TESTNET_RPC to its RPC. Openings and closings come from the chain block by block, as cells under Fiber's FundingLock appear and are spent, so private channels count there too (CKB_RPC, CKB_TESTNET_RPC). Payments travel encrypted between nodes and are not visible.

Gossip fills in slowly. Measured on testnet on 2026-10-10: a new listening node had 317 channels after 2 minutes and 537 more when their nodes announced them again 20 minutes later (that wave carried updates 41 minutes old). Outside the wave, channel updates reached it 14 to 62 s after their own timestamp (6 in 90 minutes). Openings and closings come from the chain, which is the fast path.

The page draws the network the way the LSP live view draws one LSP: each announced node a cell (a hub, 8 or more neighbours, with a nucleus of squares), each pair of nodes with channels a root, thicker with more CKB. Only real changes move it: a new channel grows a root, one that leaves the map withers, a sign of life lights a root and rings its ends, a new node swells in. "Simple" keeps the plain map; the page switches to it by itself when it cannot keep 20 drawings a second (measured on testnet with Chrome's CPU throttling: 30 a second up to 6x slower, Simple at 20x).

New projects and following

A followed public repository created in the last 14 days is a new project: it is listed under New and announced once to the open pages. Forks are not. Outside the followed organisations, a new repository needs chain words in its name, description or topics. "ckb" alone does not make a repository CKB work (it is also Central Kurdish and a Codebase Knowledge Base format), and neither does the fiber-network topic, which optical fibre projects use too.

Visitors follow projects and people on their device, without an account. With browser notices allowed, the server sends one when something followed moves (at most once per project in ten minutes) and, on request, when a new project appears. On iPhone that needs the page on the Home Screen.

Digest, feed and badges

/digest?p=day|week|month is the period's highlights as a plain page, in the three languages (lang=), to read, forward or print, with its own link preview. Every Monday at 08:00 UTC the week's highlights are kept in DATA_DIR/digests.json (a year of them; the first one as soon as the page has a week of work), and /feed.xml is an Atom feed of those weeks and of the new projects, for feed readers. With TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID and PUBLIC_URL set, the weekly digest is also posted to that chat, picture first, in DIGEST_LANG (en).

Badges are the last 7 days as a small SVG for a README or a site, grey when quiet or not followed, kept 10 minutes:

md
[![CKB Pulse](https://pulse-lab.lusocryptolabs.com/badge/repo.svg?name=owner/repo)](https://pulse-lab.lusocryptolabs.com/?repo=owner/repo)[![CKB Pulse](https://pulse-lab.lusocryptolabs.com/badge/person.svg?login=someone)](https://pulse-lab.lusocryptolabs.com/?person=someone)[![CKB Pulse](https://pulse-lab.lusocryptolabs.com/badge/ckb.svg)](https://pulse-lab.lusocryptolabs.com/)

Each project's and person's card on the page shows its badge with the markdown to copy.

Funded projects

/funded shows the projects the CKB Community Fund DAO pays for (FUNDED in config.mjs): commits per week on each repository's main branch since the vote, from GitHub's statistics, next to the team's own posts in the proposal's thread on Nervos Talk, read once a day into DATA_DIR/funded.json. A post counts as a milestone report or a completion report by its first words. A grant is quiet after 30 days with no work on GitHub and no report, until its completion report. /api/funded gives the same as JSON.

The scene

The independent builders, the largest cluster, sit by language: each language with four or more repositories gets its own small grid with a label, the rest share one. On a first visit the camera flies to the project and the person of the week before settling; any touch ends the flight.

On a phone the projects are bars by default: one row per project with work by people, as long as that work (square root) and in the colours of its kinds, with the faces of who did it at the end. Rows slide to their new place as work arrives, and hold still while a finger is on the list. A switch above them turns to the scene and back, and the choice is kept on the device. The scene is not drawn while the bars are up.

In the scene, a phone frames it into whatever the panels leave free, and the panel is a sheet at the bottom: drag its bar to a peek, to half the screen or to the top; past half, the ticker steps aside. The timeline and the sheet keep clear of the home indicator.

24 hours and 7 days show the whole period at once, and the play button replays it. With a filter on, the counts are what it keeps ("filtered, of 247 updates"). A tidier layout is on trial at ?ui=next (and ?ui=old turns it off; the choice is kept in the browser): bars on every screen, filters behind a button, the strip above the timeline only while it says something the panel does not, and the README badge folded under "For developers".

Look

Every page shares public/theme.css, the look of the Cellula pages: Space Grotesk for words and JetBrains Mono for numbers and small labels, lime on a warm black. The fonts are served from public/vendor/fonts (latin subsets, SIL Open Font License, the licence texts beside them), so a visit asks no font host for anything; Chinese uses the system's faces. Reading pages (/funded, /digest, /use) open with a small label, a large title with its key words lit, and one line under it.

Menu

Every page (the live page, /fiber, /funded, /digest, /use) has the same menu, from public/menu.js and public/menu.css: see (live, Fiber, funded, the week's digest), keep up (notices, the feed), for builders (add a project, the badge, AI agents and the API), and what this is. On wide screens the three views (live, Fiber, funded) also sit side by side next to the name. Links that open the live page at a part of it: /?tab=new, /?tab=notices, /?tab=suggest, /?about=1.

Share

A link to a period's highlights (?h=day|week|month), a project (?repo=owner/name) or a person (?person=login) opens the page on it, and its preview is a 1200 x 630 picture drawn by the server. So do /funded (all grants, or one with ?g=<topic>), /fiber?net=mainnet|testnet (the real graph) and /use, and a project created in the last 14 days carries a "new on CKB" ribbon. Each picture's address carries a stamp of what it draws (v=) and each shared link the day (d=), since X and Telegram keep a preview per address; a funded project's picture names its state only when it is in progress or delivered. The cards use the pages' fonts, from fonts/. Medals ignore bursts: per person, project and hour at most 10 updates count, and opening a branch never does.

API

  • GET /api/state: repositories, highlights, 7 days of history; built at most once a minute, with an ETag (send If-None-Match for a 304 when nothing changed)
  • GET /api/repo?name=owner/repo: one repository, 30 days; the name in any case, the answer with the spelling kept
  • GET /api/stream: new events, Server-Sent Events
  • GET /og/highlights.png?p=, /og/repo.png?name=, /og/person.png?login=, each with lang=en|pt|zh: share pictures
  • GET /api/push/key, POST /api/push with {sub, repos, people, news, lang}, POST /api/push/off with {endpoint}: browser notices
  • GET /api/fiber?net=mainnet|testnet: the Fiber map, channels open on chain, a week of openings and closings
  • GET /api/fiber/stream: Fiber changes as they happen, Server-Sent Events
  • GET /version.json: the build the server runs, for the new-version notice
  • POST /api/propose with {"login"}, then GET /api/propose?id=: a suggestion and how its check went
  • GET /digest?p=day|week|month&lang=: the highlights as a page; GET /feed.xml?lang=: the Atom feed
  • GET /badge/repo.svg?name=, /badge/person.svg?login=, /badge/ckb.svg, each with lang=: badges
  • GET /api/visits: views and visitors per day, 30 days
  • POST /mcp: the same data for AI agents, see below
  • GET /use?lang=: everything Pulse does, as a page for people, linked from the menu and the other pages' footers; GET /llms.txt: the same for AI agents

MCP

Pulse is also a Model Context Protocol server at /mcp (Streamable HTTP, no session, nothing to install):

sh
claude mcp add --transport http ckb-pulse https://pulse-lab.lusocryptolabs.com/mcp

A browser that opens /mcp is sent to /use#ai, which shows how to connect.

It is listed in the MCP Registry as io.github.LusoCryptoLabs/ckb-pulse (server.json, published with mcp-publisher publish).

Its tools only read what Pulse already stores (no GitHub call), people only, over the last 30 days:

  • overview: updates, people and projects in a day, week or month, the most active, and the projects new to Pulse
  • find_projects: the followed projects by words and by area (ckb, fiber, dob/spore, rgb++, ccc, nervos)
  • project: one project, its activity, months, people and latest updates
  • person: one person's projects, the areas and languages of those projects, and the kinds of updates they make
  • who_works_on: the people most active in an area or in the projects that match some words
  • recent_updates: the latest updates, everywhere, in one project or by one person
  • dao_funded: the Community Fund DAO grants, code next to reports
  • trends: developers, new developers and commits per month

Another ecosystem

Almost everything that says "CKB" lives in config.mjs (the organisations, the searches, the vetting words, the tags) and in the group names in public/words.js. The on-chain and Fiber parts are CKB's own; without their variables they stay quiet. Point the configuration at another ecosystem's organisations and libraries and the same page follows it.

License

MIT. Three.js (MIT) and d3 (ISC) are vendored in public/vendor under their own licences.

來源:README.md,提交 e1414a9

工具

8

overview

What is happening in CKB

The CKB ecosystem over the last day, week or month: how many updates, people and projects, the most active projects, people and organisations, and the projects new to Pulse.

輸入參數period

find_projects

Find CKB projects

Search the projects Pulse follows by words in their name, description or topics, by area (ckb, fiber, dob/spore, rgb++, ccc, nervos), or both; the most active first.

輸入參數arealimitquery

project

One CKB project

One followed project in detail: description, language, topics, activity per day over 30 days, commits and developers per month, its people and its latest updates.

輸入參數name必填

person

One CKB developer

What one person works on across the CKB projects Pulse follows: their projects, the areas and languages of those projects, and the kinds of updates they make.

輸入參數login必填

who_works_on

Who works on what

The people most active in the projects of an area (ckb, fiber, dob/spore, rgb++, ccc, nervos) or in the projects that match some words, with the projects they work on. Useful to find who to ask about a part of CKB.

輸入參數arealimitquery

recent_updates

Latest updates

The latest updates by people (pushes, pull requests, issues, reviews, releases) across CKB, or in one project, or by one person; newest first.

輸入參數limitloginproject

dao_funded

Grants of the Community Fund DAO

The projects the Nervos Community Fund DAO pays for: their code activity next to their reports on Nervos Talk, and whether each is in progress, quiet or delivered.

無需輸入參數。

版本歷史

1
  1. v1.0.0最新Nov 3, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分