Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

tmux-aware

verified

Automatically activates when running in a TMUX session (detected by SessionStart hook). Use when starting/stopping/restarting services, checking process status or logs, or when user references panes or windows by name.

View on GitHub

Marketplace

sjungling-plugins

sjungling/claude-plugins

Plugin

tmux-tools

Repository

sjungling/claude-plugins
7stars

plugins/tmux-tools/skills/tmux-aware/SKILL.md

Last Verified

February 1, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/sjungling/claude-plugins/blob/main/plugins/tmux-tools/skills/tmux-aware/SKILL.md -a claude-code --skill tmux-aware

Installation paths:

Claude
.claude/skills/tmux-aware/
Powered by add-skill CLI

Instructions

# TMUX-Aware Process Management

## Overview

When running inside a TMUX session, you can manage services in dedicated panes without cluttering the user's current view. All Claude-created panes go in a dedicated "claude-controlled" window.

## Key Principles

1. **Never clutter the current window** - Always create panes in the "claude-controlled" window
2. **Find panes by name** - Search for existing panes/windows by title, not by process
3. **Verify commands worked** - Capture output after sending commands to detect errors
4. **Ask when uncertain** - If a pane can't be found by name, list options and ask the user

## Starting a Service

When the user asks to start a service (e.g., "start the API server"):

### Step 1: Check for claude-controlled window

```bash
# List windows, look for claude-controlled
tmux list-windows -F '#{window_index}:#{window_name}' | grep ':claude-controlled$'
```

### Step 2: Create window if needed

```bash
# Create the claude-controlled window
tmux new-window -n "claude-controlled"
```

### Step 3: Create a named pane for the service

```bash
# If claude-controlled window already has panes, split it
tmux split-window -t claude-controlled -v

# Name the pane after the service
tmux select-pane -t claude-controlled -T "api-server"
```

### Step 4: Send the start command

```bash
tmux send-keys -t "claude-controlled:0.api-server" "npm run dev" Enter
```

### Step 5: Verify it started (capture output after brief delay)

```bash
sleep 2
tmux capture-pane -t "claude-controlled:0.api-server" -p -S -20
```

Check the output for errors. Report success or detected issues.

## Naming Convention

- **Window:** `claude-controlled` (all Claude-created panes go here)
- **Pane titles:** Lowercase, hyphenated, match the service (e.g., `api-server`, `redis`, `vite-dev`, `postgres`)

## Finding Existing Panes

When the user asks to interact with a process (e.g., "check the redis logs"):

### Step 1: List panes with names

```bash
tmux list-panes -a -F '#{wi

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
4926 chars