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.
git clone --depth 1 https://github.com/cmj0121/batonWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/plugins/cmj0121/baton/agentplugin)<a href="https://agentmods.dev/plugins/cmj0121/baton/agentplugin"><img src="https://agentmods.dev/badge/plugins/cmj0121/baton/agentplugin/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/plugins/cmj0121/baton/agentplugin"><img src="https://agentmods.dev/badge/plugins/cmj0121/baton/agentplugin.svg" alt="Reviewed on agentmods" width="80" height="20"></a>Grade A, and why
baton 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.
What it actually says
{
"name": "baton",
"version": "2.7.1",
"description": "Agent Skills for driving baton, the terminal multiplexer for AI coding agents, from an agent running outside it: what baton is, how to reach it, how to conduct its fleet.",
"author": {
"name": "cmj",
"url": "https://github.com/cmj0121"
},
"license": "MIT"
}
What it installs
The manifest is a name and a version. 3 skills travel with it, and installing the plugin installs all of them — 104 tokens a session between them. Each is measured on its own page, and each can be installed alone.
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 Changed d724cf1fc7ea
- 8d ago First seen · 11 lines scan A a6747c588f26
baton is a plugin published in the GitHub repository cmj0121/baton (2 stars, last pushed 3d ago), licensed MIT. Its token cost is not measured: this kind of file is read by the harness, not the model. 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-10-29.
baton compared with plugins from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| batoncmj0121/baton | Plugin | 2 | 3d ago | MIT | A | — | Claude Code |
| better-fullstackMarve10s/Better-Fullstack | Plugin | 818 | yesterday | MIT | A | — | Claude Code |
| bktavivsinai/bitbucket-cli | Plugin | 257 | 5d ago | MIT | A | — | Claude Code |
| jkavivsinai/jenkins-cli | Plugin | 98 | 3d ago | MIT | A | — | Claude Code |
| slop-chopdcadolph/slop-chop | Plugin | 5 | 4d ago | MIT | A | — | Claude Code |
| promptkittybaldaworks/promptkitty | Plugin | 5 | 11d ago | MIT | A | — | Claude Code |
| trvlMikkoParkkola/trvl | Plugin | 93 | 4d ago | none | A | — | Claude Code |