Skip to main content

tmux

Remote control tmux sessions for interactive CLIs, background tasks, and services.

Quellinformationen

Repository
Dwsy/agent
Letzte Quellaktivität
13. Februar 2026 um 14:01
Erkannte Sprache von SKILL.md
Englisch
Sterne
23
Forks
3

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
35 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
tmux
description
Remote control tmux sessions for interactive CLIs, background tasks, and services.
license
MIT
# tmux Skill ## Core Concepts **Socket**: `/tmp/pi-tmux-sockets/pi.sock` (private, no conflicts with personal tmux) **Session Naming**: `pi-{category}-{name}-{timestamp}` - Categories: `task` (temporary), `service` (long-running), `agent` (agent-specific) **Session States**: `running` | `idle` | `exited` **Persistence**: `/tmp/pi-tmux-sessions.json` **Auto-cleanup**: Inactive sessions > 24h removed (configurable) ## CLI Commands ```bash bun ~/.pi/agent/skills/tmux/lib.ts <command> create <name> <command> [category] # Create session, prints monitoring command list [filter] # List sessions with status status <id> # Session details send <id> <keys> # Send keystrokes (literal mode, safe) capture <id> [lines] # Capture pane output (default: 200) kill <id> # Terminate session cleanup [hours] # Remove old sessions (default: 24h) attach <id> # Print attach command sync # Sync session state with tmux ``` **TUI**: `bun ~/.pi/agent/skills/tmux/tui.ts` (visual management, shortcuts: r/n/c/s/a/k/q) ## TypeScript API ```typescript import { TmuxManager } from "~/.pi/agent/skills/tmux/lib.ts"; const tmux = new TmuxManager({ autoCleanup: false }); // optional config // Session lifecycle const session = await tmux.createSession(name, command, category); await tmux.killSession(session.id); // Output handling const output = await tmux.capturePane(target, lines); const success = await tmux.waitForText(target, pattern, { timeout: 60 }); // State management const sessions = await tmux.listSessions(filter); const status = await tmux.getSessionStatus(id); await tmux.sync(); await tmux.cleanup(hours); ``` ## Key Rules 1. **Always print monitoring command** after session creation: ``` tmux -S /tmp/pi-tmux-sockets/pi.sock attach -t {session-id} ``` 2. **Use `send` for interactive tools** (Python REPL, gdb, databases): ```bash # Python REPL: always use PYTHON_BASIC_REPL=1 bun ~/.pi/agent/skills/tmux/lib.ts create python "PYTHON_BASIC_REPL=1 python3 -q" task bun ~/.pi/agent/skills/tmux/lib.ts send pi-task-python-* "print('Hello')" ``` 3. **Category selection**: - `task`: compilation, testing, temporary operations - `service`: dev servers, databases, persistent services - `agent`: training, data processing, agent-specific tasks 4. **Safe key injection**: `send` uses literal mode (`-l`), no shell escaping needed 5. **Session recovery**: Run `sync` if session not found ## Helper Scripts ```bash # Wait for text pattern with timeout ./scripts/wait-for-text.sh -t session:0.0 -p 'pattern' [-F] [-T 20] [-i 0.5] [-l 2000] # List sessions with metadata ./scripts/find-sessions.sh -S "$SOCKET" ./scripts/find-sessions.sh --all ``` ## Requirements - tmux (Linux/macOS) - Bun runtime - Bash (helper scripts)
Auf GitHub ansehen