tmux
This Claude Code skill enables programmatic control of tmux sessions by sending keystrokes to interactive terminal applications and capturing pane output. Use it when monitoring existing tmux sessions, sending input to long-running interactive processes, scraping terminal output, or navigating between panes and windows. Avoid using it for one-off shell commands, creating new sessions, or non-interactive scripts that should run directly.
git clone --depth 1 https://github.com/the-open-agent/openagent /tmp/tmux && cp -r /tmp/tmux/skills/tmux ~/.claude/skills/tmuxSKILL.md
# tmux Session Control
Control tmux sessions by sending keystrokes and reading output. Essential for managing long-running terminal sessions.
## When to Use
✅ **USE this skill when:**
- Monitoring sessions in tmux
- Sending input to interactive terminal applications
- Scraping output from long-running processes in tmux
- Navigating tmux panes/windows programmatically
- Checking on background work in existing sessions
## When NOT to Use
❌ **DON'T use this skill when:**
- Running one-off shell commands → run them directly
- Starting new background processes → use shell backgrounding
- Non-interactive scripts → run them directly
- The process isn't in tmux
- You need to create a new tmux session → use `tmux new-session`
## Common Commands
### List Sessions
```bash
tmux list-sessions
tmux ls
```
### Capture Output
```bash
# Last 20 lines of pane
tmux capture-pane -t shared -p | tail -20
# Entire scrollback
tmux capture-pane -t shared -p -S -
# Specific pane in window
tmux capture-pane -t shared:0.0 -p
```
### Send Keys
```bash
# Send text (doesn't press Enter)
tmux send-keys -t shared "hello"
# Send text + Enter
tmux send-keys -t shared "y" Enter
# Send special keys
tmux send-keys -t shared Enter
tmux send-keys -t shared Escape
tmux send-keys -t shared C-c # Ctrl+C
tmux send-keys -t shared C-d # Ctrl+D (EOF)
tmux send-keys -t shared C-z # Ctrl+Z (suspend)
```
### Window/Pane Navigation
```bash
# Select window
tmux select-window -t shared:0
# Select pane
tmux select-pane -t shared:0.1
# List windows
tmux list-windows -t shared
```
### Session Management
```bash
# Create new session
tmux new-session -d -s newsession
# Kill session
tmux kill-session -t sessionname
# Rename session
tmux rename-session -t old new
```
## Sending Input Safely
For interactive TUIs, split text and Enter into separate sends to avoid paste/multiline edge cases:
```bash
tmux send-keys -t shared -l -- "Please apply the patch in src/foo.ts"
sleep 0.1
tmux send-keys -t shared Enter
```
## Check All Sessions Status
```bash
for s in $(tmux list-sessions -F '#{session_name}'); do
echo "=== $s ==="
tmux capture-pane -t $s -p 2>/dev/null | tail -5
done
```
## Notes
- Use `capture-pane -p` to print to stdout (essential for scripting)
- `-S -` captures entire scrollback history
- Target format: `session:window.pane` (e.g., `shared:0.0`)
- Sessions persist across SSH disconnectsSet up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Create, search, and manage Bear notes via grizzly CLI.
Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
BluOS CLI (blu) for discovery, playback, grouping, and volume.
Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
Capture frames or clips from RTSP/ONVIF cameras.