By echoulen
Skill that teaches Claude Code agents to detect $CMUX_SESSION and coordinate with peer sessions via `cmux send`.
Minimal pty wrapper for Claude Code sessions. Forwards bytes verbatim (colors, modifier keys, mouse, clipboard all unchanged) and exposes a unix socket so other processes can inject input — one Claude can poke another with one shell command.
curl -sSL https://raw.githubusercontent.com/echoulen/cmux/main/install.sh | bash
Symlinks cmux into ~/.local/bin (source kept at ~/.local/share/cmux).
Re-run the same command to update.
Optional — override default paths:
CMUX_INSTALL_DIR=/opt/cmux CMUX_BIN_DIR=/usr/local/bin \
curl -sSL https://raw.githubusercontent.com/echoulen/cmux/main/install.sh | bash
Optional — manual install instead:
git clone https://github.com/echoulen/cmux.git ~/.local/share/cmux
ln -s ~/.local/share/cmux/cmux ~/.local/bin/cmux
Python 3.9+ stdlib only.
cmux run [<name>] [-- cmd args...] # wrap cmd in pty (default $SHELL)
cmux send <name> <message> # inject <message>+Enter into <name>
cmux list # list active sessions
If <name> is omitted, defaults to <basename(cmd)>-N, picking the lowest
free N (claude-1, claude-2, ...).
cmux run -- claude --permission-mode bypassPermissions
cmux send claude-1 "take a look at /tmp/foo.txt"
cmux list
Each wrapped child gets CMUX_SESSION=<name> in its env. When cmux send runs
inside a wrapped session, it auto-prefixes the message with [from <name>]
so the receiver knows the source.
This repo also ships a Claude Code plugin (a single skill named cmux) that
teaches the agent to detect $CMUX_SESSION and coordinate with peer sessions.
Install via the Claude Code marketplace:
/plugin marketplace add echoulen/cmux
/plugin install cmux@cmux
After install, agents running inside cmux run -- claude ... will
automatically know they can cmux list peers and cmux send <name> ... to
hand off work.
[host terminal] ──stdin/stdout passthrough──> [cmux] ──pty──> [child]
▲
│ unix socket (~/.cmux/<name>.sock)
│
[cmux send <name> "..."]
Host terminal in raw mode → escape sequences and modifier keys pass through. A session lives only as long as its wrapper; closing the owning terminal kills the child (cmux has no detach/attach).
MIT — see LICENSE.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub echoulen/cmux --plugin cmuxRegister an out-of-tree UE5 project with Epic Games Launcher's My Projects tile grid on macOS via a symlink into ~/Documents/Unreal Projects/
Launch a UE5 project through its repo-root launch-project.sh helper (kills stale editor, cleans hot-reload dylib residue, headless pre-build, detached launch); offers to scaffold the script when missing
Maintain a UE project's ue-assets plugins.json / content.json dependency manifest and apply it with npx ue-assets install / update (UE plugins & content from GitHub Releases)
查台北/新北/基隆/台中即時公車到站時間(TDX v2 Bus API)
查台北/新北/基隆/桃園/台中即時停車格剩餘量
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Frontend design skill for UI/UX implementation
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Memory compression system for Claude Code - persist context across sessions
Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.