本文へ移動
cccskills
無料GitHub で公開

tmux

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

インストール方法を見る

含まれるファイル(3)

  • SKILL.md4.0 KB
  • scripts/find-sessions.sh2.9 KB
  • scripts/wait-for-text.sh2.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

tmux Skill

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

Quickstart (isolated socket, exec tool)

SOCKET_DIR="${MEMMY_AGENT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/memmy-tmux-sockets}"
mkdir -p "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/memmy.sock"
SESSION=memmy-node

tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'node' 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 MEMMY_AGENT_TMUX_SOCKET_DIR environment variable.
  • Default socket path: "$MEMMY_AGENT_TMUX_SOCKET_DIR/memmy.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 MEMMY_AGENT_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 Node.js REPLs, start with node and send complete expressions or .exit as literal keys.

Windows / WSL

  • tmux is supported on macOS/Linux. On Windows, use WSL and install tmux inside WSL.
  • This skill is gated to darwin/linux and requires tmux on PATH.

Orchestrating Coding Agents (Codex, Claude Code)

tmux excels at running multiple coding agents in parallel:

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

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

# Launch agents in different workdirs
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

# Poll for completion (check if prompt returned)
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

# Get full output from completed session
tmux -S "$SOCKET" capture-pane -p -t agent-1 -S -500

Tips:

  • Use separate git worktrees for parallel fixes (no branch conflicts)
  • pnpm install first before running codex in fresh clones
  • Check for shell prompt (❯ or $) to detect completion
  • Codex needs --yolo or --full-auto for non-interactive fixes

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)

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

On-demand provisioning guide for a Memmy GUI task that fully connects an explicitly named local Agent: discover its active history store, install or remove its rendered Memmy Skill, bootstrap a scan boundary, persist a validated automatic-sync recipe, and verify GUI-visible readiness.

日本語の概要は準備中です。原文の説明を表示しています。

MemTensor/memmy-agent2,0872026年10月10日 更新

Answer questions about what the user recently did on their computer — who contacted them, what they were working on, where they left off — by reading the local Computer History summaries and raw event streams.

日本語の概要は準備中です。原文の説明を表示しています。

MemTensor/memmy-agent2,0872026年10月10日 更新

cron

無料

Schedule reminders and recurring tasks.

日本語の概要は準備中です。原文の説明を表示しています。

MemTensor/memmy-agent2,0872026年10月10日 更新

docx

無料

Create, read, edit, review, redline, comment on, merge, audit, render, and verify .docx Word documents, including layout-sensitive and OOXML-level work.

日本語の概要は準備中です。原文の説明を表示しています。

MemTensor/memmy-agent2,0872026年10月10日 更新

github

無料

Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.

日本語の概要は準備中です。原文の説明を表示しています。

MemTensor/memmy-agent2,0872026年10月10日 更新

Generate images and iteratively edit saved image artifacts.

日本語の概要は準備中です。原文の説明を表示しています。

MemTensor/memmy-agent2,0872026年10月10日 更新

MemTensor のスキルをすべて見る

このスキルの問題を報告する