GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者提供的说明(英文原文)
Local CI broker and test-impact ledger for coding agents: queue, lane modes and red-run packets.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"tracegate-ci": {
"command": "npx",
"args": [
"-y",
"tracegate-ci",
"mcp"
]
}
}
}在终端中运行这条命令
claude mcp add tracegate-ci -- npx -y tracegate-ci mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"tracegate-ci": {
"command": "npx",
"args": [
"-y",
"tracegate-ci",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"tracegate-ci": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"tracegate-ci",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 davidscotttufts 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.10.1)于5天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:GitHub, Desktop Commander, Cloudflare MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Local CI for TypeScript that runs only the tests a change can affect, and has to earn the right to skip the rest.
Tracegate records what each test file touches when it runs: the functions it executes, the modules it loads, and the files it reads. When you change code, a test whose recorded inputs didn't change can reuse its last green result. The rest run.
It doesn't skip anything until that has been shown to be safe:
It can't turn a red into a green. A failing test's record is dropped, and no record older than 72 hours is reused.
Tracegate came out of a private TypeScript monorepo with about 3,700 test files, where it gates every merge. Its measured miss rate there is published in docs/evidence/.
npm install --save-dev tracegate-ci
npx tracegate init --write --mcp # writes tracegate.config.json and wires the recorder npx tracegate doctor --canary # checks the setup by recording one test file npx tracegate run # runs the lane; in shadow, everything still runs npx tracegate savings # what skipping would have saved so far
To try it for two weeks and share what it measured, see docs/trial.md.
init without --write only prints what it would do. It never overwrites an existing config, and it tells you which Vitest configs to edit by hand.
Requirements: Node 22+, git, Vitest 4.1–5.x or Jest 30, and TypeScript 5 or 6 in your repository. On TypeScript 7, also install 6 under an alias Tracegate looks for: npm i -D tracegate-typescript@npm:typescript@6.
/plugin marketplace add davidscotttufts/tracegate-ci
/plugin install tracegate@tracegate
The plugin adds an MCP server, two subagents (red-reader, deps-oracle), two skills, and a hook. In a Tracegate repository, the hook stops agents from running a bare vitest or npm test outside the queue, and from triaging misses or approving skipped tests themselves. TRACEGATE_HOOK=off turns it off.
What the plugin runs and touches (also in PRIVACY.md):
node on its own files (the MCP server over stdio, and the hook), git, your test runner, the commands you give tracegate lease, and ssh-keygen or gpg when you run attest.ps, vm_stat, sysctl and pmset on macOS; /proc on Linux)..git/tracegate/, temporary files and a socket in the OS temp directory, git notes under refs/notes/tracegate when you run attest, and the files init --write lists.attest --status posts a GitHub commit status with gh, and the release bus reads and writes a GCS bucket you name, with gcloud.A test reuses its last green result when nothing it depends on has changed since. That means no change to:
package.json, a lockfile or the Vitest config;git on it.Uncommitted edits count. Edits inside functions the test never ran don't.
What a recording can't see is the clock, environment variables, the network, and other processes. The 72-hour limit, the random audit, and a full run at least once a day cover those. The full rules are in How a decision is made.
| Command | What it does |
|---|---|
tracegate run | Select, run the tests, record, and learn from the result. |
tracegate status | Each lane's mode and progress toward the entry bar. |
tracegate savings | What skipping would have saved so far. |
tracegate report-card | Miss rates with 95% confidence intervals. --redact for a private repo. |
tracegate triage | Mark a miss as a flaky test or a recorder bug. |
tracegate lease | Run a command when the machine has room for it. |
tracegate train | Gate a queue of branches and land the green ones. |
tracegate daemon | Run full lanes at night and pre-test queued branches. |
tracegate bus | See what another machine is gating or deploying. |
tracegate attest / verify | Sign, and check, what was tested on a commit. |
tracegate mcp | The MCP server for agents. |
tracegate --help lists every command and flag.
tracegate init --write creates tracegate.config.json. A lane is one test project:
{
"lanes": { "api": { "dir": "packages/api", "src": "src", "globals": ["test/setup/"] }, "web": { "dir": "packages/web", "src": "src" } } }
List your test setup directory under globals: every test loads it, so a change there runs the whole lane. All settings are in the guide.
| Feature | What it's for |
|---|---|
| Broker | One queue for the machine. Gates, background jobs and every agent's test runs share the CPU and memory instead of fighting over them. |
| Merge train | Gates a batch of branches as their real merge commit, bisects a red batch, and lands only exactly what passed. |
| Red Reader | An agent reads each failed run and can mark a "flaky" failure as a real bug. It can never do the reverse. |
| Silence guard | Fails a change that skips, focuses or deletes tests, until a person approves it. |
| Conductor | Runs the tests most likely to fail first, and advises which branches to gate alone. |
| Dependency changes | A lockfile change re-runs only the tests that loaded a changed package. |
| Keyed inputs | An edit to one string in a translation file re-runs only the tests that used it. |
| Daemon | Uses idle hours for full runs and for pre-testing queued branches. |
| Release bus | Lets two machines see each other's trains and deploys. |
| Attestation | A signed record of what ran on a commit's exact tree. |
Why not Vitest's `recordDependencies`? The comparison runs both on the same commits. Tracegate selects per function, sees files read at run time, and audits its own skips.
bin/ci script.Apache-2.0. See LICENSE and NOTICE.