tmux-opencode

star 67

Control OpenCode sessions via tmux for background and parallel coding tasks.

minpeter By minpeter schedule Updated 3/1/2026

name: tmux-opencode description: "Control OpenCode sessions via tmux for background and parallel coding tasks." metadata: openclaw: emoji: "πŸ–₯️"


tmux-opencode

tmux둜 OpenCode μ„Έμ…˜μ„ μ œμ–΄ν•΄μ„œ μ½”λ“œ μž‘μ—…μ„ μ‹œν‚¨λ‹€.

μ–Έμ œ μ“°λ‚˜

  • μ½”λ“œ μž‘μ—… (κ΅¬ν˜„, λ¦¬νŒ©ν† λ§, 버그 ν”½μŠ€)
  • λ©€ν‹°μŠ€ν… νƒœμŠ€ν¬
  • 병렬 μž‘μ—… (μ—¬λŸ¬ μ„Έμ…˜ λ™μ‹œ μ‹€ν–‰)
  • λ°±κ·ΈλΌμš΄λ“œ μž‘μ—… (μ±„νŒ… 블둝 μ•ˆ 함)

Quick Start

# μ†ŒμΌ“ 경둜
SOCKET="${TMPDIR:-/tmp}/openclaw-tmux-sockets/openclaw.sock"

# μ„Έμ…˜ 생성 + OpenCode μ‹€ν–‰
tmux -S "$SOCKET" new -d -s "opencode-myproject" -c ~/myproject
tmux -S "$SOCKET" resize-window -t "opencode-myproject" -x 300 -y 80
tmux -S "$SOCKET" send-keys -t "opencode-myproject" 'opencode' Enter

# 3초 λŒ€κΈ° ν›„ ν”„λ‘¬ν”„νŠΈ 전솑
sleep 3
tmux -S "$SOCKET" send-keys -t "opencode-myproject" -l 'ulw Fix bug in auth module. Commit and push when done.'
tmux -S "$SOCKET" send-keys -t "opencode-myproject" Enter

ν”„λ‘¬ν”„νŠΈ κ·œμΉ™

  • μ˜μ–΄λ‘œ μž‘μ„± (OpenCode μ΅œμ ν™”)
  • -l ν”Œλž˜κ·Έ ν•„μˆ˜ (특수문자 처리)
  • ulw 둜 μ‹œμž‘ (λ³΅μž‘ν•œ μž‘μ—…)
  • 끝에 "Commit and push when done"

μ›Œν¬ν”Œλ‘œμš°

1. μ„Έμ…˜ 생성

tmux -S "$SOCKET" new -d -s "$SESSION" -c "$PROJECT_DIR"
tmux -S "$SOCKET" resize-window -t "$SESSION" -x 300 -y 80
tmux -S "$SOCKET" send-keys -t "$SESSION" 'opencode' Enter

2. ν”„λ‘¬ν”„νŠΈ 전솑

tmux -S "$SOCKET" send-keys -t "$SESSION" -l 'ulw Your task here. Commit and push when done.'
tmux -S "$SOCKET" send-keys -t "$SESSION" Enter

3. μƒνƒœ 확인

tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -100

μƒνƒœ νŒλ‹¨:

μƒνƒœ μ‹ ν˜Έ
thinking ν”„λ‘œκ·Έλ ˆμŠ€λ°” μ›€μ§μž„, tool μ‹€ν–‰ 쀑
ready μ…Έ ν”„λ‘¬ν”„νŠΈ (❯), 체크리슀트 μ™„λ£Œ
error μ—λŸ¬ λ©”μ‹œμ§€, rate limit
stuck 15λΆ„ 이상 λ³€ν™” μ—†μŒ

4. μ™„λ£Œ 확인

  • μ…Έ ν”„λ‘¬ν”„νŠΈ 볡귀 (❯ λ˜λŠ” ➜)
  • "Committed and pushed" λ©”μ‹œμ§€
  • 체크리슀트 μ „λΆ€ [βœ“]

λͺ¨λΈ λ³€κ²½

# Ctrl+X M으둜 λͺ¨λΈ 피컀 μ—΄κΈ°
tmux -S "$SOCKET" send-keys -t "$SESSION" C-x m
sleep 0.5
tmux -S "$SOCKET" send-keys -t "$SESSION" -l 'opus'
tmux -S "$SOCKET" send-keys -t "$SESSION" Enter

μ—μ΄μ „νŠΈ 선택

Tab ν‚€λ‘œ μˆœν™˜ (@ λ©˜μ…˜ μ•ˆ 됨):

  • Sisyphus β†’ Hephaestus β†’ Prometheus β†’ Atlas β†’ ...
μ—μ΄μ „νŠΈ μš©λ„
Sisyphus 탐색적 μž‘μ—…
Hephaestus λͺ…ν™•ν•œ κ΅¬ν˜„ μž‘μ—…
Oracle μ•„ν‚€ν…μ²˜, 디버깅, 리뷰
Librarian λ¬Έμ„œ 검색

Rate Limit 볡ꡬ

# ESC둜 μž¬μ‹œλ„ μ·¨μ†Œ
tmux -S "$SOCKET" send-keys -t "$SESSION" Escape
tmux -S "$SOCKET" send-keys -t "$SESSION" Escape
sleep 1

# 계속 μ§„ν–‰
tmux -S "$SOCKET" send-keys -t "$SESSION" -l 'continue'
tmux -S "$SOCKET" send-keys -t "$SESSION" Enter

Idle μ„Έμ…˜ μ±„μ°μ§ˆ

# ESC + continue
tmux -S "$SOCKET" send-keys -t "$SESSION" Escape
tmux -S "$SOCKET" send-keys -t "$SESSION" -l 'continue'
tmux -S "$SOCKET" send-keys -t "$SESSION" Enter

병렬 이슈 μž‘μ—…

# μ΄μŠˆλ³„ worktree
git worktree add ../project-issue-1 -b feature/issue-1
git worktree add ../project-issue-2 -b feature/issue-2

# μ„Έμ…˜λ³„ μž‘μ—…
tmux -S "$SOCKET" new -d -s "issue-1" -c ~/project-issue-1
tmux -S "$SOCKET" new -d -s "issue-2" -c ~/project-issue-2

μ„Έμ…˜ 좔적

memory/tmux-sessions.json:

{
  "sessions": {
    "opencode-myproject": {
      "project": "~/myproject",
      "task": "Fix auth bug",
      "status": "running"
    }
  }
}

status: running | completed | failed | stuck

μžλ™ μ™„λ£Œ μ•Œλ¦Ό

watch-session.sh 둜 μ„Έμ…˜ μ™„λ£Œ μ‹œ Discord μ•Œλ¦Ό:

# λ°±κ·ΈλΌμš΄λ“œ κ°μ‹œ
~/clawd/scripts/watch-session.sh "opencode-myproject" > /tmp/watch.log 2>&1 &

# 30μ΄ˆλ§ˆλ‹€ 체크, μ™„λ£Œλ˜λ©΄ #internal에 μ•Œλ¦Ό
# μ™„λ£Œ μ‹ ν˜Έ: ❯, ➜, "Committed and pushed"

μ„Έμ…˜ μ’…λ£Œ

tmux -S "$SOCKET" kill-session -t "$SESSION"
Install via CLI
npx skills add https://github.com/minpeter/oh-my-openclaw --skill tmux-opencode
Repository Details
star Stars 67
call_split Forks 2
navigation Branch main
article Path SKILL.md
More from Creator