一键导入
tmux
Remote-control tmux sessions for interactive CLIs by sending keystrokes and capturing pane output.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Remote-control tmux sessions for interactive CLIs by sending keystrokes and capturing pane output.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create or update SKILL.md packages with deterministic frontmatter, clear trigger descriptions, and valid command/script execution mappings.
Narrative summarization, storytelling, and long-form synthesis in Sigrid's voice — named after the Viking court poets who kept memory alive through story.
Maintain stable user and project facts across sessions using workspace memory files and runtime memory state.
Schedule reminders and recurring tasks with the `cron` tool (add/list/remove/enable/disable/run).
Read, write, and search local Obsidian vault markdown files via the filesystem.
Create, read, and search Apple Notes on macOS using osascript AppleScript.
| name | tmux |
| description | Remote-control tmux sessions for interactive CLIs by sending keystrokes and capturing pane output. |
| always | false |
| metadata | {"clawlite":{"emoji":"🧵","requires":{"bins":["tmux"]},"os":["linux","darwin"]}} |
| script | tmux |
Use tmux only when an interactive TTY is required. Prefer exec background mode for non-interactive long jobs.
SOCKET_DIR="${CLAWLITE_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/clawlite-tmux-sockets}"
mkdir -p "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/clawlite.sock"
SESSION=clawlite-shell
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'PYTHON_BASIC_REPL=1 python3 -q' Enter
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200
Keep one socket per workflow or agent. That makes discovery, retries, and cleanup deterministic.
Inspect one socket directly:
bash clawlite/skills/tmux/scripts/find-sessions.sh -S "$SOCKET"
Scan every socket under CLAWLITE_TMUX_SOCKET_DIR:
bash clawlite/skills/tmux/scripts/find-sessions.sh --all
The output is always socket:session, one row per line.
Wait for a prompt or completion marker:
bash clawlite/skills/tmux/scripts/wait-for-text.sh -S "$SOCKET" -t "$SESSION":0.0 -p '\$' -T 5
Use fixed-string mode when the marker should not be treated as regex:
bash clawlite/skills/tmux/scripts/wait-for-text.sh -S "$SOCKET" -t "$SESSION":0.0 -F 'BUILD SUCCESS' -T 30 -i 1 -l 400
Create a dedicated socket and session per agent:
SOCKET="$SOCKET_DIR/agent-1.sock"
SESSION=agent-1
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -l -- "pytest -q"
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 Enter
bash clawlite/skills/tmux/scripts/wait-for-text.sh -S "$SOCKET" -t "$SESSION":0.0 -p 'passed|failed' -T 120 -l 500
Prefer send-keys -l for literal commands, then send Enter separately. Capture pane history before reusing or tearing down a session.
Stop a single session:
tmux -S "$SOCKET" kill-session -t "$SESSION"
Stop the whole socket server when nothing else should remain:
tmux -S "$SOCKET" kill-server
Remove stale socket files only after tmux -S "$SOCKET" list-sessions or has-session confirms that no server is alive on that socket.