🎯

tmux

🎯Skill

from johnlindquist/claude

VibeIndex|
What it does

Manages tmux sessions to run, control, and monitor background processes across multiple terminal windows and panes.

πŸ“¦

Part of

johnlindquist/claude(50 items)

tmux

Installation

πŸ“‹ No install commands found in docs. Showing default command. Check GitHub for actual instructions.
Quick InstallInstall with npx
npx skills add johnlindquist/claude --skill tmux
18Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Manage tmux sessions for background processes. Use to run long-running commands, manage multiple terminals, and capture output from background processes.

Overview

# Tmux Session Manager

Run and manage background processes using tmux.

Prerequisites

Install tmux:

```bash

brew install tmux

# or

apt install tmux

```

CLI Reference

Create Session

```bash

# Basic session

tmux new-session -d -s mysession

# With window name

tmux new-session -d -s mysession -n mywindow

# With working directory

tmux new-session -d -s mysession -c /path/to/dir

# With initial command

tmux new-session -d -s mysession "npm run dev"

# Combined

tmux new-session -d -s dev -n server -c /project "npm run dev"

```

List Sessions

```bash

# List all sessions

tmux list-sessions

# Short format

tmux ls

# With format

tmux list-sessions -F "#{session_name}: #{session_windows} windows"

```

Send Keys to Session

```bash

# Send command

tmux send-keys -t mysession "npm test" Enter

# Send to specific window

tmux send-keys -t mysession:mywindow "command" Enter

# Send without Enter

tmux send-keys -t mysession "partial command"

# Send special keys

tmux send-keys -t mysession C-c # Ctrl+C

tmux send-keys -t mysession C-d # Ctrl+D

tmux send-keys -t mysession Escape # Escape

tmux send-keys -t mysession Up # Arrow up

```

Capture Output

```bash

# Capture visible pane

tmux capture-pane -t mysession -p

# Capture with history (last N lines)

tmux capture-pane -t mysession -p -S -100

# Capture all history

tmux capture-pane -t mysession -p -S -

# Save to file

tmux capture-pane -t mysession -p > output.txt

```

Kill Session

```bash

# Kill specific session

tmux kill-session -t mysession

# Kill all sessions

tmux kill-server

```

Attach to Session

```bash

# Attach

tmux attach -t mysession

# Attach or create

tmux new-session -A -s mysession

```

Window Management

```bash

# New window

tmux new-window -t mysession -n windowname

# Select window

tmux select-window -t mysession:windowname

# Kill window

tmux kill-window -t mysession:windowname

# List windows

tmux list-windows -t mysession

```

Pane Management

```bash

# Split horizontally

tmux split-window -t mysession -h

# Split vertically

tmux split-window -t mysession -v

# Select pane

tmux select-pane -t mysession:0.1

# Kill pane

tmux kill-pane -t mysession:0.1

```

Workflow Patterns

Run Dev Server in Background

```bash

# Start server

tmux new-session -d -s devserver -c /project "npm run dev"

# Check output

tmux capture-pane -t devserver -p -S -50

# Stop server

tmux send-keys -t devserver C-c

tmux kill-session -t devserver

```

Run Tests with Output Capture

```bash

# Start tests

tmux new-session -d -s tests "npm test"

# Wait and capture output

sleep 30

tmux capture-pane -t tests -p -S - > test-output.txt

# Cleanup

tmux kill-session -t tests

```

Multiple Services

```bash

# Create session with multiple windows

tmux new-session -d -s services -n frontend

tmux new-window -t services -n backend

tmux new-window -t services -n database

# Start each service

tmux send-keys -t services:frontend "npm run dev" Enter

tmux send-keys -t services:backend "go run main.go" Enter

tmux send-keys -t services:database "docker-compose up db" Enter

# Check all services

for win in frontend backend database; do

echo "=== $win ==="

tmux capture-pane -t services:$win -p -S -10

done

```

Long-Running Process

```bash

# Start process

tmux new-session -d -s build "npm run build:production"

# Monitor progress

watch -n 5 "tmux capture-pane -t build -p -S -20"

# Or periodic check

while tmux has-session -t build 2>/dev/null; do

sleep 10

echo "Still running..."

done

echo "Build complete"

```

Socket Mode (for Agents)

When running in agent context, use a dedicated socket:

```bash

SOCKET_PATH="/tmp/agent-tmux-$$"

# Create session with socket

tmux -S $SOCKET_PATH new-session -d -s agent "command"

# Send keys via socket

tmux -S $SOCKET_PATH send-keys -t agent "input" Enter

# Capture via socket

tmux -S $SOCKET_PATH capture-pane -t agent -p

# Cleanup

tmux -S $SOCKET_PATH kill-server

rm -f $SOCKET_PATH

```

Best Practices

  1. Name sessions descriptively - Easy to identify later
  2. Use -d for detached - Don't block the terminal
  3. Capture output regularly - Before killing sessions
  4. Set working directory - Use -c /path for context
  5. Clean up sessions - Kill when done
  6. Use sockets for isolation - Prevent conflicts between agents