Skip to content
cccskills
FreePublished on GitHub

tmux

Use tmux to control interactive command-line sessions: send keystrokes, inspect pane output, wait for prompts, and manage isolated sessions. It also shows how to monitor several coding agents running in separate sessions and clean up when finished.

OriginalShow the original description

Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.

HKUDS/AutoSwarm2,083 stars(GitHub 2,083 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Sending input to an interactive CLI
  • Checking output from a running terminal session
  • Waiting for a prompt before continuing
  • Monitoring coding agents in separate sessions

Files included (3)

  • SKILL.md3.3 KB
  • scripts/find-sessions.sh2.9 KB
  • scripts/wait-for-text.sh2.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

tmux Skill

Use tmux only when you need an interactive TTY. Prefer shell_exec for long-running, non-interactive tasks.

Quickstart (isolated socket)

SOCKET_DIR="${OPC_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/opc-tmux-sockets}"
mkdir -p "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/opc.sock"
SESSION=opc-python

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

After starting a session, always print monitor commands:

To monitor:
  tmux -S "$SOCKET" attach -t "$SESSION"
  tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200

Socket convention

  • Use OPC_TMUX_SOCKET_DIR environment variable.
  • Default socket path: "$OPC_TMUX_SOCKET_DIR/opc.sock".

Targeting panes and naming

  • Target format: session:window.pane (defaults to :0.0).
  • Keep names short; avoid spaces.
  • Inspect: tmux -S "$SOCKET" list-sessions, tmux -S "$SOCKET" list-panes -a.

Finding sessions

  • List sessions on your socket: {baseDir}/scripts/find-sessions.sh -S "$SOCKET".
  • Scan all sockets: {baseDir}/scripts/find-sessions.sh --all (uses OPC_TMUX_SOCKET_DIR).

Sending input safely

  • Prefer literal sends: tmux -S "$SOCKET" send-keys -t target -l -- "$cmd".
  • Control keys: tmux -S "$SOCKET" send-keys -t target C-c.

Watching output

  • Capture recent history: tmux -S "$SOCKET" capture-pane -p -J -t target -S -200.
  • Wait for prompts: {baseDir}/scripts/wait-for-text.sh -t session:0.0 -p 'pattern'.
  • Attaching is OK; detach with Ctrl+b d.

Spawning processes

  • For python REPLs, set PYTHON_BASIC_REPL=1 (non-basic REPL breaks send-keys flows).

Orchestrating Coding Agents

tmux excels at running multiple coding agents in parallel:

SOCKET="${TMPDIR:-/tmp}/opc-army.sock"

for i in 1 2 3 4 5; do
  tmux -S "$SOCKET" new-session -d -s "agent-$i"
done

tmux -S "$SOCKET" send-keys -t agent-1 "cd /tmp/project1 && codex --yolo 'Fix bug X'" Enter
tmux -S "$SOCKET" send-keys -t agent-2 "cd /tmp/project2 && codex --yolo 'Fix bug Y'" Enter

for sess in agent-1 agent-2; do
  if tmux -S "$SOCKET" capture-pane -p -t "$sess" -S -3 | grep -q "❯"; then
    echo "$sess: DONE"
  else
    echo "$sess: Running..."
  fi
done

tmux -S "$SOCKET" capture-pane -p -t agent-1 -S -500

Cleanup

  • Kill a session: tmux -S "$SOCKET" kill-session -t "$SESSION".
  • Kill all sessions on a socket: tmux -S "$SOCKET" list-sessions -F '#{session_name}' | xargs -r -n1 tmux -S "$SOCKET" kill-session -t.
  • Remove everything on the private socket: tmux -S "$SOCKET" kill-server.

Helper: wait-for-text.sh

{baseDir}/scripts/wait-for-text.sh polls a pane for a regex (or fixed string) with a timeout.

{baseDir}/scripts/wait-for-text.sh -t session:0.0 -p 'pattern' [-F] [-T 20] [-i 0.5] [-l 2000]
  • -t/--target pane target (required)
  • -p/--pattern regex to match (required); add -F for fixed string
  • -T timeout seconds (integer, default 15)
  • -i poll interval seconds (default 0.5)
  • -l history lines to search (integer, default 1000)

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

clawhub

FreeSummary

Search ClawHub, a public registry for agent skills, using a natural-language query, then install a selected skill into a project or update installed skills. It also explains how to list skills already installed in that project.

  • Finding a skill for an unfamiliar task
  • Installing a selected skill in a project
  • Updating or listing project skills
HKUDS/AutoSwarm2.1KUpdated Oct 29, 2026

Set shared coordination practices for roles in an AutoSwarm company, including work-item boundaries, reviewable handoffs, peer messaging, meetings, and blocking requests. This playbook guides when to communicate and what information to leave for colleagues so work can continue across roles.

  • Preparing a reviewer-friendly handoff for a work item
  • Deciding when to message a teammate or request a response
  • Coordinating a meeting about a cross-role decision
HKUDS/AutoSwarm2.1KUpdated Oct 29, 2026

cron

FreeSummary

Use this skill to schedule recurring or one-time commands through the system crontab and `at`. It shows how to list, add, and remove jobs, with common schedules and practical notes about command paths and output logs.

  • Setting a recurring break reminder
  • Scheduling a one-time meeting reminder
  • Listing or removing scheduled jobs
HKUDS/AutoSwarm2.1KUpdated Oct 29, 2026

github

FreeSummary

Use the `gh` command-line tool to inspect GitHub issues, pull requests, and CI workflow runs. Check status and failure logs, retrieve specific repository data through the API, and filter structured JSON output for focused results.

  • Checking a pull request’s CI status
  • Finding failed steps in a workflow run
  • Listing recent repository workflow runs
HKUDS/AutoSwarm2.1KUpdated Oct 29, 2026

memory

FreeSummary

Maintain durable Markdown memory for stable preferences shared across projects and details specific to the current project. The skill guides when to update, what to exclude, and how to merge notes in the designated memory files.

  • Save a confirmed communication preference for future sessions
  • Record current project paths and coding conventions
  • Update project memory after the user confirms a lasting constraint
HKUDS/AutoSwarm2.1KUpdated Oct 29, 2026

opc-collab

FreeSummary

Coordinate work with other agents in AutoSwarm company mode. Use the `opc-collab` CLI to send messages, ask for user input, delegate work, review a manager board, respond in meetings, and propose task changes.

  • Messaging a teammate about a blocker
  • Asking the user for missing input
  • Delegating work to direct reports
HKUDS/AutoSwarm2.1KUpdated Oct 29, 2026

See all skills by HKUDS

Report a problem with this skill