소스 정보
- 저장소
- Dwsy/agent
- 최근 소스 활동
- 2026년 2월 13일 14:01
- 감지된 SKILL.md 언어
- 영어
- 스타
- 23
- 포크
- 3
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
파일 탐색기
35 개 파일SKILL.md 표시 중
SKILL.md
소스 지침 · 읽기 전용 미리보기- 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)
GitHub에서 보기