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 skills/epilande/ccmux/relaynpx skills add epilande/ccmux --skill relaygit clone --depth 1 https://github.com/epilande/ccmuxWrote 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/skills/epilande/ccmux/relay)<a href="https://agentmods.dev/skills/epilande/ccmux/relay"><img src="https://agentmods.dev/badge/skills/epilande/ccmux/relay.svg" alt="Measured on agentmods" height="20"></a>What 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.1 | $0.00147 | $0.01786 |
| Opus 5 | $0.00073 | $0.00893 |
| Sonnet 5 | $0.00029 | $0.00357 |
| Haiku 4.5 | $0.00015 | $0.00179 |
Grade A, and why
relay 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 6d 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 — 121 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Reading and relaying between agent sessions
The ccmux daemon tracks live agent sessions in tmux panes and reads their transcripts. The two commands here move output between sessions that already exist; launching new workers is the dispatch skill's job. The choice is one question: does the content need to be in your context?
| Motion | Command | Payload goes |
|---|---|---|
| Read-and-reason | ccmux last <ref> [--turns N] |
to your stdout, i.e. into your context |
| Relay | ccmux handoff <from> <to> |
daemon-side, straight into the target |
Relay with handoff whenever you are only a router: a peer's 8 KB answer costs one command
line instead of passing through your context twice. Read with last only when you actually
have to reason about the content (judge it, merge answers, decide what happens next).
# Read: pull a peer's last response into your context (stdout is pure payload, so it pipes)
ccmux last codex
ccmux last codex --turns 3 # widen: N assistant turns + the prompts between them
ccmux last <id> --json # the structured response, incl. how the ref resolved
# Relay: move it without ever holding it
ccmux handoff codex claude --note "failing test + repro, take it from here"
ccmux handoff self codex --note "..." # hand off YOUR OWN conclusion
ccmux handoff self --spawn --agent codex # ...into a session that doesn't exist yet
Naming a session
Both take a session reference: a session id, %pane, session:window.pane, self
(your own pane), an agent type (codex), or a project / directory name. Exact forms are
tried first; fuzzy ones are scoped by caller proximity (same window > same tmux session >
global). Ambiguity refuses, it never guesses: a bare claude matching two sessions
returns the candidate list, and there is no --first flag on purpose. Re-run with an id or
coordinate from the listing. A fuzzy ref that did resolve is echoed on stderr
(codex -> 9ff6db28... (same window)), so stdout stays clean for a pipe.
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.
- 6d ago First seen · 121 lines · 147 tokens per session scan A 7445adc2af07
relay is a skill published in the GitHub repository epilande/ccmux (159 stars, last pushed yesterday), licensed MIT. It adds 147 tokens to every session and 1,786 once invoked, about $0.0007 per session on Opus 5. 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-30.
Other skills, from other repositories
ensembl-database
Query Ensembl genome database REST API for 250+ species. Gene lookups, sequence retrieval, variant analysis, comparative genomics, orthologs, VEP predictions, for genomic research.
colab-finetuning
Fine-tune LLMs on Google Colab GPUs directly from openscience. Connects to Colab runtimes via WebSocket bridge for remote training with Unsloth. Supports SFT, GRPO, DPO, vision, and TTS workflows on free T4 to Pro A100 GPUs.
swarm-pr-review
Run a graph-guided, tool-augmented PR review using context packing, parallel exploration, mandatory repository-agnostic risk-family coverage with dispatch scaled to diff size and risk, independent reviewer validation, critic challenge, and metrics writeback. Use for deep pull request review with low false-positive…
rust-system-calls
Guides using bunsys for system calls and file I/O in Rust. Use when implementing file operations, opening fds, or any syscall path instead of std::fs or libc.
loop
Full execution protocol for MODE: LOOP — the compound-engineering loop: brainstorm → plan → build → review → improve, iterating under defense-in-depth stop conditions with generator/critic separation, durable resumable state, and mandatory compounding learning capture. Loaded on demand by the architect when the loop…
docker-extend
Use when: User wants to extend Docker with custom tools, personalize the Docker environment, or set up user-specific Docker customization. Triggers: 'extend docker', 'docker-extend', 'add tools to docker', 'customize docker', 'add my tools to the container', 'personalize docker setup', 'docker user setup', 'install…