用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/joshka0/foxctl --skill tmux-bridge命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Protocol for participant agents in transport-first rooms: join, check membership, handle inbox/tasks, reply durably, and escalate.
Operate inside an existing foxctl room: orient from status or inbox, manage tasks correctly, escalate, and close with durable updates.
Run durable multi-agent rooms with transport-first delivery, participant state, room tasks, and optional tmux or zellij viewers.
基于 SOC 职业分类
正在显示 SKILL.md
| name | tmux-bridge |
| description | Compatibility alias for the room viewer layer. Prefer `foxctl-room-view` for current tmux, zellij, and GUI guidance. |
| metadata | {"openclaw":{"emoji":"🌉","os":["darwin","linux"],"requires":{"bins":"[Truncated]"}}} |
tmux-bridge is now a compatibility name.
Use foxctl-room-view for current guidance.
The architecture split is:
foxctl-room: canonical room model and deliveryfoxctl-room-agent: participant-agent protocolfoxctl-room-operator: coordinator/reviewer operating protocolfoxctl-room-view: tmux/zellij/gui presentation layerKeep using the existing foxctl mux ... commands and the ./scripts/tmux-bridge
helper when you need them. The rename is about responsibility, not command
removal.
foxctl mux send is the default for agent-to-agent messaging:
--sender[tmux-bridge from=...] headerfoxctl room ... now follows the same identity rule: derive the current pane
participant first, then fall back to canonical ids like tmux:<session>:%7 or
zellij:<session>:terminal_3 when no human-friendly pane name is present.
Viewer metadata:
mux listroom status for health and mux list for viewer placementFor spawned zellij panes, prefer foxctl mux list --backend zellij --session <session-name>.
That view is driven by persisted terminal_binding metadata and is more
reliable than trying to infer pane names from non-interactive layout dumps.
Room policy is intentionally asymmetric:
Use type plus keys only when you intentionally need manual control, such as interacting with a non-agent prompt.
The bridge enforces read-before-act:
read marks a target as safe to interact withsend, type, and keys fail if you did not read firstThat means the safe manual cycle is:
./scripts/tmux-bridge read agent-b 20
./scripts/tmux-bridge type agent-b "y"
./scripts/tmux-bridge read agent-b 20
./scripts/tmux-bridge keys agent-b Enter
When you send to another agent pane, do not poll that pane for the reply. The intended pattern is that the other agent sends a bridge message back into your pane.
Read the target pane again only when:
Bridge send already frames the message for you.
If you are replying manually with type, keep the stable header format:
[tmux-bridge from=agent-b pane=%4 reply_to=agent-b] I reviewed the mailbox code; the lease path looks safe.
tmux is the live coordination plane. ContextWiki is the durable continuity plane.
Promote only derived facts:
foxctl mux observe agent-b --lines 80
foxctl mux observe agent-b \
--statement "agent-b is reviewing mailbox ack semantics in internal/runtime/actor/supervisor.go"
Do not treat raw pane scrollback as canonical history.
Reference doc: docs/general/tmux-collaboration.md