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 instructions/echoedinvoker/chatmux/claude-mdgit clone --depth 1 https://github.com/echoedinvoker/chatmuxWrote 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/instructions/echoedinvoker/chatmux/claude-md)<a href="https://agentmods.dev/instructions/echoedinvoker/chatmux/claude-md"><img src="https://agentmods.dev/badge/instructions/echoedinvoker/chatmux/claude-md.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 | $0.02037 | $0.02037 |
| Opus 5 | $0.01019 | $0.01019 |
| Sonnet 5 | $0.00407 | $0.00407 |
| Haiku 4.5 | $0.00204 | $0.00204 |
Grade A, and why
chatmux CLAUDE.md 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 3d 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 — 134 lines — stays where its author put it; the contents beside it link to each section on GitHub.
chatmux
Local-first personal chat data layer daemon. Connects IM platforms (v0.1: LINE) via child-process adapters, stores messages to JSONL + SQLite/FTS5, exposes MCP tools for AI clients (Claude Code). Not a chat app — no UI, pure data layer.
Commands
bun run start— Start daemon (core + adapters + MCP server)bun test— Run all tests (bun:test)bun run dev— Start daemon with --watch (auto-reload on change)
Directory Structure
src/core/daemon.ts— Entry: start storage → SafetyRail → adapter runner → MCP serversrc/core/adapter-runner.ts— Spawn/watch/restart adapter child processes via stdio JSON-RPCsrc/core/safety.ts— SafetyRail: RateLimiter → ErrorTracker → KillSwitchsrc/core/storage/jsonl.ts— JSONL append-only event writer (truth source)src/core/storage/sqlite.ts— SQLite schema + JSONL→SQLite sync (query view)src/core/storage/fts.ts— FTS5 trigram setup + sync triggerssrc/core/storage/query.ts— High-level queries: search, paginated read, event cursor, statssrc/core/storage/replay.ts—replayJsonl: rebuild SQLite by replaying JSONL through the projectionsrc/core/ingest.ts— Ingest boundary: shape validation + per-event isolation (no storage semantics)src/core/mcp/server.ts— MCP Streamable HTTP on TCP (loopback by default, host settable) + unix socket (shared handler)src/core/mcp/tools.ts— 8 MCP tools (list_chats, read_messages, read_events, search_messages, send_message, get_media, probe_latest, get_status)src/core/mcp/resources.ts— 4 MCP resources + subscriptionsrc/adapters/line/— LINE adapter (Node+tsx, NOT Bun — LEGY Push needs HTTP/2)examples/notifier/— Reference consumer: cursor-based event tailing. NOT core (see NEVER #11)tests/— Mirrors src/ structuredocs/— Architecture and protocol referencesconfig/chatmux.service— systemd user service
Architecture
LINE adapter ←── stdio JSON-RPC ──→ core daemon ←── MCP Streamable HTTP ──→ Claude Code
(child process) ├─ SafetyRail (127.0.0.1 TCP / unix socket)
├─ Storage (JSONL → SQLite/FTS5)
├─ Adapter Runner
└─ MCP Server
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.
- 3d ago First seen · 134 lines · 2,037 tokens per session scan A 080026112e4e
chatmux CLAUDE.md is an instructions file published in the GitHub repository echoedinvoker/chatmux (1 stars, last pushed 10d ago), licensed MIT. It adds 2,037 tokens to every session, about $0.0102 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-31.
Other instructions, from other repositories
gini-agent AGENTS.md
AGENTS.md instructions for Open-Curiosity/gini-agent, covering gini agent instructions, shape, adrs, boundaries and branches.
syncular AGENTS.md
Instructions for syncular/syncular, covering syncular agent instructions, doctrine (enforced), coding rules, prose rules for docs and voice.
gno AGENTS.md
AGENTS.md instructions for gmickel/gno, covering knowledge cutoff warning, apis - bun first!, must use bun, acceptable node:\ (no bun equivalent) and testing.
cicero AGENTS.md
AGENTS.md instructions for 5uck1ess/cicero, covering agent guidance, product boundary, toolchain, verification and reliability and security invariants.
Binder AGENTS.md
Instructions for mpazik/Binder, covering binder, tech stack, monorepo structure, testing and development.
rosetta local-db-grounding.instructions.md
In a checkout, the resolved ros-help.db is untrusted until verified; the latest CI release DB is the grounding source of truth.