trantorBLOCK
The hub-world for AI agent crews — orchestrate Claude Code, Codex, Gemini, Kimi & DeepSeek as live crews with a plan-aware Advisor, a Kanban/flow command center, a testing gate, and an economics brain (Scrooge).
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
████████╗██████╗ █████╗ ███╗ ██╗████████╗ ██████╗ ██████╗ ╚══██╔══╝██╔══██╗██╔══██╗████╗ ██║╚══██╔══╝██╔═══██╗██╔══██╗ ██║ ██████╔╝███████║██╔██╗ ██║ ██║ ██║ ██║██████╔╝ ██║ ██╔══██╗██╔══██║██║╚██╗██║ ██║ ██║ ██║██╔══██╗ ██║ ██║ ██║██║ ██║██║ ╚████║ ██║ ╚██████╔╝██║ ██║ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
The hub-world for AI agent crews.
*One Advisor decides how your work runs — solo, cheap inline calls, or a live crew of Claude Code, Codex, GLM, Kimi, DeepSeek — or any model you bring — in their own terminal windows, routed by your actual plans, supervised on a live + historical board you can scroll back through, learning from every failure.*
[](./LICENSE)
Install
npm install -g trantor trantor setup # hub becomes an always-on service + config + wires your AI CLIs + doctor
Then give Claude Code (the orchestrator) the plugin:
claude plugin marketplace add sashabogi/trantor claude plugin install trantor
Kimi Code CLI as orchestrator (same capabilities — the relay_* MCP tools, the crew/handoff/ research skills, and the full hook set: session registration, focus cards, todo mirroring, heartbeats, inbox delivery, handoff/baton pass, sub-agent cards):
- Register the relay MCP server in
~/.kimi-code/mcp.json:
{
"mcpServers": {
"relay": {
"command": "node",
"args": ["/mcp.mjs"],
"env": { "RELAY_AGENT": "kimi-orch" },
"startupTimeoutMs": 15000,
"toolTimeo677084b994b1OBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add trantor --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN} --env DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} --env GEMINI_API_KEY=${GEMINI_API_KEY} -- npx -y [email protected]{
"mcpServers": {
"trantor": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
"CLAUDE_CODE_OAUTH_TOKEN": "${CLAUDE_CODE_OAUTH_TOKEN}",
"DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}",
"GEMINI_API_KEY": "${GEMINI_API_KEY}"
}
}
}
}Exposed tools (27)
19 read · 8 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
alpha | read | Build alpha |
beta | read | Build beta |
gamma | read | Explore gamma |
relay_advise | write | THE ADVISOR — ask the brain how to execute a body of work before spending tokens. Give it your work packages (with difficulty); it weighs task shape x the user |
relay_ask | read | Ask a BLOCKING question on your card without forfeiting the contract (#7756). This is the correct move when the contract omits a fact you cannot proceed without — never invent the value. Sends a kind:ask message to the card |
relay_board | read | Show a project |
relay_contracts | read | |
relay_duty_failure | read | Duty-seat only: record that a required cross-session socket nudge was skipped or that a relay send returned 403. The hub appends the failure to the target project |
relay_handoff | write | Write a rich handoff for THIS session so a fresh session (any agent) can take over with a full context window instead of compacting. Provide a complete markdown summary (TASK / STATE / KEY DECISIONS / NEXT STEPS / KEY FILES). Universal — works in any agent, not just Claude |
relay_inbox | read | |
relay_lesson | read | Record a LESSON learned from a failure so future crews avoid it — injected into agents |
relay_peers | read | Find who you can talk to: the live agent sessions on the relay (online in last 5 min), including sessions in projects linked to yours. Call this BEFORE concluding you have no way to reach someone — the session ids it returns are what relay_send takes. |
relay_phase_goal | write | Set what a PHASE is for — its goal — shown as the phase header in the Flow view (overrides the theme auto-derived from card titles). Capture this when you plan a phase so the board says what each milestone needs to do, not just |
relay_project_brief | write | Set a one-paragraph brief for a project shown on the dashboard: what it is, why it matters, and the goal. Defaults to THIS project; pass |
relay_proposals | read | List THIS session |
relay_propose | read | |
relay_scrooge | read | Delegate a SMALL, SELF-CONTAINED piece of grunt work (draft a function, summarize, extract, classify, boilerplate) to a cheap external model via Scrooge — costs a fraction of a cent and keeps the result OUT of expensive context where possible. Returns the model |
relay_send | write | Send a live message to another agent session (or |
relay_status | write | Set this session |
relay_task_add | write | Add a Kanban card to a project |
relay_task_check | read | Tick (or untick) ONE acceptance item on a card |
relay_task_move | write | Move a Kanban card as you progress: todo -> doing -> testing -> done. NEVER move straight to done: move to |
relay_verify_gate | read | Record a VERIFICATION GATE — a claim that MUST be independently verified before the related work ships (e.g. |
relay_wait | read | Block up to |
relay_whoami | read | Show this session |
relay_withdraw_proposal | read | Withdraw one of THIS session |
wflow | read | WF step |
Trust audit
BLOCKgrade F · trust 45/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | FAIL |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (11 observation(s))
- Network
- declared (10 observation(s))
- Shell
- declared (9 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
crew-payload.mjs
exec(compile(open(SCROOGE).read(), "scrooge", "exec"), g)
try { r = exec(["ps", "--format", "{{.ID}} {{.Names}}"]); } catch { return null; }try { r = exec(["stop", ...ids]); } catch { return { unavailable: true, stopped: [], failed: [] }; }const parsed = JSON.parse(exec(bin, ["agent", "list"], { encoding: "utf8", timeout: 4000, stdio: ["ignore", "pipe", "ignore"] }));DATABASE_URL=postgresql://trantor:[email protected]:5432/trantor
.DS_Store
migrate-store.mjs
icon.icns
scrooge-capabilitiescpython-314.pyc
migrations.mjs
if (r.ok) console.log(`Invite token: ${j.token}\nShare this with the new member: trantor enroll ${j.token}`);try { await signedPost("http://127.0.0.1:4477/balances", snap, { timeoutMs: 2500 }); } catch {}const SECRET = "sk-1111secretmiddle2222";
ghp: "ghp_AbCdEf0123456789AbCdEf0123456789ab",
"github pat": "ghp_abcdefghijklmnopqrstuvwxyz0123456789",
"pem private key": "-----BEGIN RSA PRIVATE KEY-----",
"pem private key plain": "-----BEGIN PRIVATE KEY-----",
"slack token": "xoxb-1234567890-abcdefghij",
"stripe live key": "sk_live_abcdefghijklmnop1234",
.DS_Store
.DS_Store
test-crew-payload.mjs
test-payload-prefix.mjs
const parent = join(home, ".kimi", "sessions", createHash("md5").update(cwd).digest("hex"));Gates applied: no_behavioural_pass.
677084b994b1full audit observations/trust-audit/mcp-server/sashabogi__trantor.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 677084b994b1 | BLOCK | F | 45 | first audit |
Questions
What is the trantor MCP server?
The hub-world for AI agent crews — orchestrate Claude Code, Codex, Gemini, Kimi & DeepSeek as live crews with a plan-aware Advisor, a Kanban/flow command center, a testing gate, and an economics brain (Scrooge).
What tools does trantor expose?
27 in total: 19 read-only, 8 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is trantor safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (45/100) and found 6 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does trantor need?
It reads ANTHROPIC_API_KEY, CLAUDE_CODE_OAUTH_TOKEN, DEEPSEEK_API_KEY, GEMINI_API_KEY, GITHUB_TOKEN, GOOGLE_API_KEY, OPENROUTER_API_KEY, RELAY_AUTH, RELAY_BOOTSTRAP_TOKEN, TRANTOR_IDENTITY_KEYCHAIN, TRANTOR_NO_KEYCHAIN and TRANTOR_SECRETS_BACKEND from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does trantor run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as trantor at 0.18.90.
How current is this page?
The grade is for one exact copy of the source (677084b994b1), read on 2026-10-12. The repository is watched and re-audited when it changes.