tmux
Skill13 starsChanged 13 days agoMITView on GitHub
Optional, only for tmux users: the workplace driver that lets scripts/workplace.py and the cockpit steer agent tabs in tmux, inside any terminal app (iTerm, Terminal, Ghostty, VS Code). Trigger: "tmux driver", "workplace with tmux", "agent tabs in tmux", "cockpit without cmux".
69 other projects use a version of this.
Adopted by
Most recently taken up by
- insight68/Skillstheir own version, first seen Nov 8, 2026
- QVerisAI/QVerisBottheir own version, first seen Nov 1, 2026
- jav-ed/skill_Managtheir own version, first seen Nov 1, 2026
- gabrielkoerich/skillstheir own version, first seen Nov 1, 2026
- jellydn/my-ai-toolstheir own version, first seen Oct 18, 2026
- OpenClawAndroid/openclaw-android-assistanttheir own version, first seen Oct 17, 2026
Used with
Projects with it also use taskflow-inbox-triage, session-logs and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
AtomicBot-aiSkilltaskflow-inbox-triage
Also in 6 projects that use this
seedprodSkillsession-logs
Search and analyze your own session logs (older/parent conversations) using jq.
Also in 20 projects that use this
seedprodSkillvoice-call
Start voice calls via the OpenClaw voice-call plugin.
Also in 18 projects that use this
AtomicBot-aiSkilltaskflow
Also in 7 projects that use this
jiulingyunSkillBlueBubbles
为Clawdbot构建或更新BlueBubbles外部通道插件(扩展包,REST发送/探测,webhook入站)。
Also in 16 projects that use this
hkyutongSkillopenclaw-release-maintainer
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
Also in 4 projects that use this
- +5 more from seedprod
Other versions69 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 69
- moltbot/clawdbot★ 394ksame name
- steipete/warelay★ 394ksame name
- steipete/clawdis★ 394ksame name
- moltbot/moltbot★ 394ksame name
- clawdbot/clawdbot★ 394ksame name
- openclaw/openclaw★ 394ksame name
- molt-bot/clawdbot★ 391ksame name
- spinabot/brigade★ 11ksame name
- the-open-agent/openagent★ 5.7ksame name
- casibase/casibase★ 5.7ksame name
59 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository44 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/board-pilot/references/agents.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- a2aSkill
- archiveSkill
- board-pilotSkill
- bridge-auditSkill
- bridge-contributeSkill
- bridge-curatorSkill
- bridge-explorerSkill
- bridge-greetingSkill
- bridge-leak-checkSkill
- bridge-learnSkill
- bridge-onboardSkill
- bridge-overlaySkill
- bridge-promoteSkill
- bridge-statusSkill
- bridge-syncSkill
- briefingSkill
- calendarSkill
- capability-brokerSkill
- channelSkill
- cmuxSkill
- cockpitSkill
- dashboardSkill
- debriefSkill
- doc-systemSkill
- github-projects-managerSkill
- html-canvasSkill
- html-slidesSkill
- knowledge-repo-initSkill
- mail-draftSkill
- mandantsSkill
- meeting-transcriptionSkill
- object-storeSkill
- onboard-simSkill
- remoteSkill
- scheduleSkill
- secretsSkill
- spec-kickoffSkill
- task-close-postmortemSkill
- tracker-syncSkill
- workloadSkill
- workspaceSkill
The file
We split this skill into the rules it gives an agent
1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 64 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 43
All these verbs are served: tabs, sessions, open, launch, send, rename, control, caps, focus, key, keys, screen, close, rename_workspace, …
“Common” is measured: kept by at least 6 in 10 of the 64 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
tmux
A second terminal driver beside skills/cmux. It speaks the
workplace JSON protocol (docs/workplace.md § Writing a driver), so the plan, the
briefing, the inbox and the cockpit work the same in any terminal app that runs
tmux.
Optional. It needs the tmux binary ($BRIDGE_TMUX_BIN, else tmux on
PATH, else Homebrew's path). Without it the driver answers an error, which
scripts/workplace.py reads as "tab view unknown", never as "no tabs open".
Wire it
workplace:
driver: {command: ["python3", "${root}/skills/tmux/scripts/tmux_driver.py"]}Then python3 scripts/workplace.py open --yes [--here "$TMUX_PANE"], launch,
status, send and adopt steer the tabs, exactly as with cmux.
BRIDGE_TMUX_SOCKET=<name> points the driver at a separate server
(tmux -L <name>); the tests use that so they never touch your own tmux.
Mapping
| Workplace | tmux |
| workspace | session (: and . in a name become _, as tmux does) |
| tab | window, its name is the tab name |
ref / id | pane id of the window's active pane, %3 |
is_self | the window holds $TMUX_PANE of the caller |
ws_ref | the session id, $2; it stays when the session is renamed |
state | read from the pane: no agent process below the pane is shell; esc to interrupt is working; a permission or numbered choice prompt is needs-you; else waiting |
sessions | --resume <uuid>, -r <uuid> or --session-id <uuid> in the agent's process args |
All these verbs are served: tabs, sessions, open, launch, send,
rename, control, caps, focus, key, keys, screen, close,
rename_workspace, move_tab, new_tab, new_workspace, close_workspace.
rename_workspace renames the session by its id, with : and .
turned into _ as tmux does, and refuses a name another session has after that
same change. move_tab moves a window into another session (move-window -d,
without an index) and never the last window of a session. new_tab adds a
window to a session by its id and new_workspace makes a session (neither is
selected), both answering the new refs; new_workspace refuses a name in use and
a colour. close_workspace kills one session and never the last one of the
server. tmux has no workspace colour or description, so set_color and
set_description are not offered.
What it guarantees
- It never closes a window or a session on its own.
closekills one pane on request, and refuses the last pane of the server, which would end the server;close_workspacekills one session on request and refuses the last session. - It never moves the last window out of a session (tmux destroys an emptied session); such a tab is renamed where it is and the report says so.
openandcontrolreuse a window of the same name in the target session.launchdoes not, like cmux:workplace.pyalready skips an agent that runs, and--againasks for a second tab on purpose.launch --target tabopens in the caller's session (here, else$TMUX_PANE) and refuses when neither is known, never the attached session.- A command over 1000 bytes goes into a private launcher file
(
~/.cache/bridge-tmux/commands/, mode 0600, pruned after 7 days), since tmux carries a command in one message of at most 16 KB. Every command keeps a shell open after the agent exits. - A step tmux refuses is an ERROR line, never a success line. No server running is a true "no tabs".
Limits, honestly
- State is read from the screen, not reported by the agent: cmux gets it from
Claude Code's hooks. A new agent UI wording can misread a state until the
patterns in
tmux_driver.pyfollow it. - No colors, descriptions or ordering for workspaces: tmux has no sidebar. The plan's order and colors are not applied.
- No notifications. cmux can flag a tab that needs you; in tmux the
cockpit has to poll
tabs. focusneeds an attached client. Without one the window is selected and shows on the nexttmux attach; with several clients only the first switches.- A workspace created only to receive moved tabs keeps its starting shell window, since tmux cannot create a session around an existing window.
- Untested with agents other than Claude Code and Codex.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

