Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/maxlumiere/bot-relay-mcp/external-cli-setupgit clone --depth 1 https://github.com/Maxlumiere/bot-relay-mcpWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.02153 |
| Opus 5 | $0.00000 | $0.01077 |
| Sonnet 5 | $0.00000 | $0.00431 |
| Haiku 4.5 | $0.00000 | $0.00215 |
Grade A, and why
external-cli-setup scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 148 lines — stays where its author put it; the contents beside it link to each section on GitHub.
External CLI agent setup
This doc covers wiring an MCP-aware command-line agent into bot-relay-mcp without the agent calling register_agent itself. Use it when:
- Your CLI client's safety monitor cancels follow-up tool calls when the same response calls
register_agentand then immediately uses the returned token. (Codex was the canonical case as of 2026-04-27. Cursor and similar agents may exhibit the same pattern — see the platform notes below.) - You're provisioning agents from a CI script and want a deterministic, scriptable identity-issuance path without an interactive register/use ceremony.
- You're embedding bot-relay-mcp into a multi-LLM workflow where one operator script provisions every agent and hands plaintext tokens out via env vars.
If your CLI client supports the standard SessionStart hook (hooks/check-relay.sh) and doesn't trip the safety pattern, you don't need this doc — keep using the hook flow. The env-token pattern below is the universal fallback.
How it works
- Operator runs
relay mint-token <name>outside the agent's process. - The CLI generates a random 32-byte token, bcrypt-hashes it (matching
src/auth.ts'sBCRYPT_ROUNDS), and writes the hash directly to the agent row in the active per-instance DB. The plaintext token is printed ONCE to stdout. - Operator captures the plaintext token, exports it as
RELAY_AGENT_TOKEN, exports the agent name asRELAY_AGENT_NAME, and launches the CLI client. - The agent's first MCP tool call (e.g.
get_messages) carries the token via theagent_tokenfield orX-Agent-TokenHTTP header. The relay's standard auth path bcrypt-verifies it. The agent never seesregister_agentin its own trace.
The agents row that mint-token creates is byte-identical to the row that register_agent would create on first registration. The auth layer cannot tell the two paths apart — both produce an auth_state='active', agent_status='idle' row with the same column shape.
Step-by-step: first mint
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 148 lines · 0 tokens per session scan A 0205c7e30105
external-cli-setup is an agent published in the GitHub repository Maxlumiere/bot-relay-mcp (4 stars, last pushed 2d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 2,153 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
backlog-groomer
For one operator's assigned beads, finds what is ready/urgent to sprint next, proposes cohesive sprint sets from interdependencies, finds duplicates, and surfaces high-priority/urgent-sounding items whose content quality is too low to act on. Full beads mutation authority (merge/close/defer/reject), always…
doer
Works assigned bead ids (task-type work, impl and test-dev), commits after each, stops at VERIFY checkpoint.
integ-test-runner
Runs integ-test-playbook.md per cycle to close or assess this cycle's implemented features and verify-set beads (any issuetype, all children closed) against real evidence; closes passing ones, files [integ] bugs for failures.
planner
Reads open beads sprint goals/features/bugs and creates a feature+task DAG in beads with clear acceptance criteria.
plan-reviewer
Reviews beads DAG structure for coverage, task size, and acceptance criteria; classifies each task complexity bucket and reads its assigned model; returns APPROVED or CHANGESNEEDED.
regression-test-runner
Runs regression-test-playbook.md once per sprint -- the playbook's functional suite plus its sandbox smoke test -- owning the test sandbox lifecycle; files carry-over bugs for failures.