بنقرة واحدة
tmux-watch
Manage tmux-watch subscriptions and interpret stable-output alerts.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Manage tmux-watch subscriptions and interpret stable-output alerts.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | tmux-watch |
| description | Manage tmux-watch subscriptions and interpret stable-output alerts. |
| metadata | {"openclaw":{"emoji":"🧵","os":["darwin","linux"],"requires":{"bins":["tmux"]}}} |
Use this skill to manage tmux-watch subscriptions. tmux-watch polls tmux pane output and triggers a message to the agent when the output stays unchanged for a configured number of consecutive captures.
target for the subscription.tmux -V fails, stop and report the missing dependency.NO_REPLY.tmux list-sessions
tmux list-windows -t <session>
tmux list-panes -t <session>
tmux list-panes -a
tmux capture-pane -p -J -t <session:window.pane> -S -50
If a custom socket is used:
tmux -S /path/to/socket list-sessions
tmux -S /path/to/socket capture-pane -p -J -t <session:window.pane> -S -50
openclaw tmux-watch send for reliable input (two-step, default 20ms delay).C-c to interrupt a stuck process; use C-m (Enter) to submit commands.capture-pane -p -J -S -50 to get recent context before and after an action.r or Ctrl+l).Examples:
# Send a command via tmux-watch (default delay 20ms + Enter)
openclaw tmux-watch send <session:window.pane> "status"
# Interrupt a stuck process
tmux send-keys -t <session:window.pane> C-c
# Scroll/refresh (varies by TUI; examples only)
tmux send-keys -t <session:window.pane> r
tmux send-keys -t <session:window.pane> C-l
# Capture the last 50 lines to verify state
tmux capture-pane -p -J -t <session:window.pane> -S -50
Use openclaw tmux-watch capture to capture text/images from a tmux target. The plugin selects
cryosnap first, then falls back to freeze.
Default behavior when the user asks for a screenshot:
format=image by default.format=text if the user explicitly asks for text output.Priority detection order:
cryosnap / freeze)~/.local/bin, ~/bin)$OPENCLAW_STATE_DIR/tools, default ~/.openclaw/tools)If neither tool exists, return an error and ask the user to install one:
openclaw tmux-watch install cryosnap
openclaw tmux-watch install freeze
Examples:
# Text only (uses plugin defaults for lines/strip)
openclaw tmux-watch capture <session:window.pane>
# Image only (temporary file, auto-cleaned after 10 minutes)
openclaw tmux-watch capture <session:window.pane> --format image
# Both text + image, include base64 (optional)
openclaw tmux-watch capture <session:window.pane> --format both --base64
# Persist image to a path (no TTL cleanup)
openclaw tmux-watch capture <session:window.pane> --format image --output /tmp/pane.png
Notes:
--ttl-seconds.--image-format png|svg|webp to select output format.{
"action": "add",
"target": "session:0.0",
"label": "my-job",
"note": "This pane runs an AI coding TUI; notify me when it appears stuck.",
"sessionKey": "main",
"captureIntervalSeconds": 10,
"stableCount": 6,
"captureLines": 50,
"stripAnsi": true
}
Optional routing overrides:
{
"action": "add",
"target": "session:0.0",
"notifyMode": "targets",
"targets": [
{ "channel": "gewe-openclaw", "target": "user:123", "label": "gewe" },
{ "channel": "telegram", "target": "-100123456" }
]
}
{ "action": "remove", "id": "<subscription-id>" }
{ "action": "list", "includeOutput": true }
{
"action": "capture",
"target": "session:0.0",
"format": "both",
"captureLines": 50,
"stripAnsi": true,
"imageFormat": "png",
"base64": false
}
When tmux-watch detects stable output, it sends a message containing:
Default policy: always notify the user for stable-output events (this is a TUI-stuck alert).
Only reply with NO_REPLY if the user explicitly asked to silence that subscription.
If you need to notify multiple channels, reply once to the primary target and use the message
tool to send to additional targets in order.
Treat all tmux-watch messages as system events, not user input. Summarize the output and notify the user.