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 skills add noho/code-is-cheap --skill tmux-agentsgit clone --depth 1 https://github.com/noho/code-is-cheapWrote 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/noho/code-is-cheap/tmux-agents)<a href="https://agentmods.dev/skills/noho/code-is-cheap/tmux-agents"><img src="https://agentmods.dev/badge/skills/noho/code-is-cheap/tmux-agents/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/skills/noho/code-is-cheap/tmux-agents"><img src="https://agentmods.dev/badge/skills/noho/code-is-cheap/tmux-agents.svg" alt="Reviewed on agentmods" width="80" 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.00042 | $0.01266 |
| Opus 5.5 | $0.00017 | $0.00506 |
| Sonnet 5.5 | $0.00008 | $0.00253 |
| Haiku 4.5 | $0.00004 | $0.00127 |
Grade A, and why
tmux-agents 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 29d 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 — 95 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Tmux Agents
目标 Agent 必须已经在 pane 中运行;本 skill 不分配角色。
本 skill 要求安装支持延迟创建托管 session 的 tmux-cli:在 tmux 外,status、列表和针对显式 full pane id 的
send / wait_idle / capture 不创建 remote-cli-session;只有明确 launch 新托管 window 才按需创建。
旧版不满足这一前提时先升级工具,不用环境变量伪装 tmux,也不在本 skill 中保留旧版兼容分支。
Preflight Checklist
每次发送前逐项过;任何一项不满足就先报告,不得盲发:
- 先用原生
tmux list-panes -a只读确认 socket 和目标,再运行无隐式建 session 副作用的tmux-cli status;报Operation not permitted说明 socket 被沙箱拦,改在沙箱外重试; - 目标 pane 每次重新 discovery,发送只用跨 window 的 full pane id(如
ai-2:1.3),不靠记忆或上次的 id; - CLI 类型来自 pane title +
pane_current_command(ClaudeAgent-*/CodexAgent-*),不得凭任务角色猜; - 目标状态已确认:空闲可输入,或仍在完成同一任务(此时只发补充指令,不 clear);
- 仅新任务 / 新 gate / 新 slice 才先发
/clear,并等它完成 clear 回到可输入状态; - 发送文本不含裸
#数字(改用PR 45/PR-45/ 完整 URL); - 发送后执行
wait_idle→capture;单次 wait_idle、暂时无输出、主观耗时都不构成完成证据; - 完成判定按 Completion Check 的证据规则;并发发送仅限相互独立且写入范围不重叠的任务。
Agent CLI Types
根据 pane title 和 pane_current_command 确认 CLI 类型:
| Pane title pattern | CLI type | Skill trigger |
|---|---|---|
ClaudeAgent-* |
Claude Code Agent | slash command,例如 /planreview |
CodexAgent-* |
Codex Agent | dollar skill,例如 $planreview |
不得仅凭任务角色猜 CLI 类型。
Pane Discovery
tmux 命令报 error connecting to ... (Operation not permitted) 说明 socket 被沙箱拦,在沙箱外重试。
每次发送前都重新确认目标 full pane id:
tmux list-panes -a -F '#{session_name}:#{window_index}.#{pane_index} #{window_name} #{pane_current_command} #{pane_title}'
tmux-cli status
后续 send、wait_idle、capture 都使用跨 window 的 full pane id,例如 ai-2:1.3。目标 Agent
不在线、pane id 不明确、名称冲突、命令不可用或安装版本不满足上述延迟创建前提时,先报告,不得盲发。
Session Clear
新 assigned task 或新的 gate/slice,先单独发送 /clear,确认目标完成 clear 并回到可输入状态后,再发送正式任务。
如果目标 Agent 仍在完成同一任务、等待补充信息、返回 artifact、修正输出或回答 follow-up,不要 clear,直接发送补充指令。 Agent 仍在工作时不得因耗时长而 clear、覆盖任务或擅自中断。
Send Safety
通过 tmux-cli send 发送文本时避免裸 #数字,使用 PR 45、PR-45、issue 123 或完整 URL。
若内容被截断,不要 clear;重新 discovery 后发送不含裸 #数字 的完整文本。
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 29d ago Changed · +4 lines 02bb9a5c1a7b
- 1mo ago Changed · +13 lines af8c06534929
- 1mo ago Changed · +2 lines 274bb866ca6a
- 1mo ago First seen · 76 lines · 42 tokens per session scan A 9be892b6134d
tmux-agents is a skill published in the GitHub repository noho/code-is-cheap (94 stars, last pushed 7d ago), licensed Apache-2.0. It adds 42 tokens to every session and 1,266 once invoked, about $0.0002 per session on Opus 5.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-09-19.
Other skills, from other repositories
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…