tmux-autopilot
npx skills add https://github.com/tukuaiai/vibe-coding-cn --skill tmux-autopilot
Agent 安装分布
Skill 文档
tmux-autopilot Skill
让 AI åçç»è¿ç»´ä¸æ ·æä½ tmuxï¼è¯»åç»ç«¯è¾åºãåéæé®ãæ¹éå·¡æ£ãåä½/ææ´å
¶ä»ç»ç«¯ï¼é»è®¤å
¼å®¹ assets/repo/.tmuxï¼gpakosz/oh-my-tmuxï¼ã
When to Use This Skill
è§¦åæ¡ä»¶ï¼æ»¡è¶³å ¶ä¸å³å¯ï¼ï¼
- éè¦è¿ç¨è¯»å/å¤å¶æä¸ª tmux pane çææ°è¾åºï¼æ¥å¿ãæç¤ºãé误ï¼ã
- éè¦åæå® pane åéæé®/å½ä»¤ï¼ç¡®è®¤
yãEnterãCtrl+Cã广æåä¸çªå£ï¼ã - éè¦æ¹éå·¡æ£/æ¥ç®¡å¤ AI ç»ç«¯ï¼è群åä½ãèªå¨ææ´å¡æ»ä»»å¡ï¼ã
- éè¦å¿«éåå¿ oh-my-tmux å¿«æ·é®ãåç¼æåæ¥é¢æ¿æä½ã
- éè¦å¨å½åä»åºå¤ç¨
assets/repo/.tmuxé 置并é¿å ä¿®æ¹ä¸»é ç½®ã
Not For / Boundaries
- ä¸ç¨äºæ§è¡é tmux ç¯å¢ï¼ç®æ ä¸å卿¶å å建 session/window/paneï¼ã
- ä¸ç´æ¥ç¼è¾
~/.tmux.conf/.tmux.confï¼éµå¾ª oh-my-tmuxï¼ä¿®æ¹è¯·æ¾å°.tmux.conf.localï¼ã - ä¸ç²åç ´åæ§æé®ï¼
kill-serverãrm -rfçå¿ é¡»å capture-pane ç¡®è®¤ç®æ ä¸ä¸æã - 妿 tmux çæ¬ < 2.6ï¼éå å级åä½¿ç¨æ¬æè½çå½ä»¤ç»åã
Quick Reference
å¸¸ç¨æ¨¡å¼ï¼â¤20 æ¡ï¼ç´æ¥å¤å¶å³ç¨ï¼
æ¥çå¿«æ·é®å¸®å©ï¼oh-my-tmux ååç¼ï¼ä¸» C-aï¼å¤ç¨ C-bï¼åç¼åæ ?ï¼
[æ] <prefix> ?
æä¸¾ææï¼session/window/paneï¼
tmux list-sessions
tmux list-windows -a -F '#S:#I:#W#F'
tmux list-panes -a -F '#S:#I.#P #{pane_current_command} #{pane_title}'
读åæå® pane æè¿ 120 è¡
tmux capture-pane -t <session>:<window>.<pane> -p -S -120
åæå® pane åé确认é®
tmux send-keys -t <session>:<window>.<pane> "y" Enter
å®å ¨ä¸ææä½ä»»å¡
tmux send-keys -t <session>:<window>.<pane> C-c
å¼å¯/å ³éçªå£å 广æï¼åæ¥å ¨é¨ paneï¼
tmux set-window-option synchronize-panes on
tmux set-window-option synchronize-panes off
䏿¬¡æ«æå ¨é¨çªå£å¹¶æªåæè¿è¾åºï¼è群巡æ£éª¨æ¶ï¼
for w in $(tmux list-windows -a -F '#S:#I'); do
tmux capture-pane -t "$w" -p -S -80 | sed "s/^/[$w] /";
done
è¿ç¨ææ´ï¼åç°çå¾ è¾å ¥å³åé y
target="0:3.0" # 示ä¾
tmux capture-pane -t "$target" -p -S -50 | grep -qi "(y/n)" && \
tmux send-keys -t "$target" "y" Enter
æ°å»º AI è群工ä½å°ï¼1 ææ¥ + 3 工人ï¼
tmux new-session -d -s ai-hub -n commander 'bash'
tmux new-window -t ai-hub -n worker1 'kiro-cli chat'
tmux new-window -t ai-hub -n worker2 'kiro-cli chat'
tmux new-window -t ai-hub -n worker3 'kiro-cli chat'
tmux attach -t ai-hub
å¯ç¨ oh-my-tmux é ç½®ï¼ä»åºå çæ¬ï¼
ln -sfn /home/lenovo/zip/vibe-coding-cn/assets/repo/.tmux/.tmux.conf ~/.tmux.conf
cp -n /home/lenovo/zip/vibe-coding-cn/assets/repo/.tmux/.tmux.conf.local ~/.tmux.conf.local
è®°å½ pane è¾åºå°æä»¶
tmux pipe-pane -t <session>:<window>.<pane> -o 'cat >> /tmp/tmux-<session>-<window>-<pane>.log'
Rules & Constraints
- MUSTï¼å¨åéæé®åç¨
capture-pane夿 ¸ç®æ ä¸ä¸æï¼æé®æä½å¿ 须带<session>:<window>.<pane>ç»å¯¹å®ä½ã - MUSTï¼éµå¾ª oh-my-tmux 约å®ï¼ä¸ä¿®æ¹ä¸»é
ç½®æä»¶ï¼èªå®ä¹åå
¥
~/.tmux.conf.localã - MUSTï¼æ¹éæä½åå
list-windows/list-panes建ç«ç½ååï¼é¿å 误æ§ç¨æ·çªå£ã - SHOULDï¼ææ´/确认åå
grep å
³é®è¯ï¼å¦
(y/n)ãpasswordï¼ï¼åªå¯¹å¹é ç®æ åéã - SHOULDï¼åé宿´å½ä»¤è¡æ¶é¿å
å
å
Escapeï¼å C-c䏿ãC-uæ¸ è¡ï¼åç¨send-keys -léååé宿´å½ä»¤ã - SHOULDï¼pane å¤å¨ Codex UI æ¶ï¼å
åé
/exitåå° shell åæ§è¡å½ä»¤ã - SHOULDï¼é¿ä»»å¡å¼å¯
pipe-paneè®°å½å®¡è®¡ï¼å¹¿æå®æåç«å³synchronize-panes offã - NEVERï¼å¨æªç¥ pane åéç ´åæ§å½ä»¤ï¼NEVER å¨ root ä¼è¯ä¸ç»ç¡®è®¤åé
Ctrl+C/Ctrl+Dã
Examples
Example 1ï¼èªå¨ç»å¡ä½çå®è£ èæ¬å车确认
- è¾å
¥ï¼å®è£
èæ¬åå¨
Proceed? (y/n)ï¼ä½ç½®å¨0:3.0ã - æ¥éª¤ï¼
tmux capture-pane -t 0:3.0 -p -S -50 | grep -qi "(y/n)"确认çå¾ è¾å ¥ãtmux send-keys -t 0:3.0 "y" Enteråé确认ã
- éªæ¶ï¼èæ¬ç»§ç»è¿è¡ï¼æ é¢å¤å¤ä½è¾å ¥ã
Example 2ï¼èç¾¤å·¡æ£ + èªå¨ææ´
- è¾å
¥ï¼4 个 AI ç»ç«¯åå¸å¨ session
ai-hubçå¤ä¸ªçªå£ã - æ¥éª¤ï¼
- è¿è¡ Quick Reference å·¡æ£å¾ªç¯æ¶éæè¿ 80 è¡å¹¶è§å¯ç¶æã
- 对å¹é
"(y/n)"ç pane 触åãè¿ç¨ææ´ãçæ®µèªå¨åyã - 对è¾åºå
å«
TracebackæERRORç paneï¼å capture-paneè®°å½å人工ä»å ¥ã
- éªæ¶ï¼çå¾ ç¡®è®¤çç»ç«¯æ¢å¤ï¼æªè¯¯ä¼¤æ£å¸¸ä»»å¡ï¼å·¡æ£æ¥å¿ä¿å卿¬å°ã
Example 3ï¼å¿«éæå»º oh-my-tmux AI å·¥ä½å°
- è¾å ¥ï¼éè¦ 1 ä¸ªææ¥ + 3 个 workerï¼å¹¶ä½¿ç¨ä»åºå oh-my-tmux é ç½®ã
- æ¥éª¤ï¼
- è¿è¡ãå¯ç¨ oh-my-tmux é ç½®ãçæ®µå®æè½¯é¾åæ¬å°å¯æ¬ï¼è¥å·²åå¨è·³è¿ï¼ã
- è¿è¡ãæ°å»º AI è群工ä½å°ãçæ®µå建 session å¹¶ attachã
- å¨ commander pane 使ç¨ãæä¸¾ææã确认 worker çªå£åå¨ã
- éªæ¶ï¼åç¼é®ä¸º
C-aï¼ç¶ææ æ£å¸¸ï¼4 个çªå£å¯äºç¸æè·/åéæé®ã
FAQ
- Q: 为ä»ä¹æ
C-bæ ååºï¼- A: oh-my-tmux é»è®¤ä¸»åç¼æ¯
C-aï¼C-bä» ä½å¤ç¨ï¼ç¡®ä¿æ å ¶ä»ç¨åºå ç¨C-aã
- A: oh-my-tmux é»è®¤ä¸»åç¼æ¯
- Q: å¦ä½åªå¹¿æå½åçªå£èä¸å½±åå
¶ä»çªå£ï¼
- A: åªå¯¹å½åçªå£æ§è¡
set-window-option synchronize-panes onï¼ä½¿ç¨å®ç«å³å ³éã
- A: åªå¯¹å½åçªå£æ§è¡
- Q: è¿ç¨åéå½ä»¤åå¦ä½ç¡®è®¤å½åå·¥ä½ç®å½ï¼
- A:
tmux display-message -pt <target> '#{pane_current_path}'ï¼å¿ è¦æ¶å send-keys 'cd /path' Enterã
- A:
Troubleshooting
no such session/window/paneâ æ£æ¥ç®æ åç§°ï¼å list-sessions/list-windowsæ ¡éªåéè¯ã- åç¼é®å²çª â æ¥ç
~/.tmux.conf.localæ¯å¦æ¹ååç¼ï¼å¯å¨å ¶ä¸è®¾ç½®set -g prefix C-b #!importantã - ç¶ææ æ ·å¼éä¹±/éå¤ â æ README 建议ç¨
tmux -f /dev/null -L testææ¥ï¼å¤åæ¯ç»ç«¯å®½å符/åä½å¯¼è´ã - åéå½ä»¤æ²¡ææ â ç®æ pane å¯è½å¨ copy-modeï¼ä¼å
ç¨
tmux display-message -pt <target> '#{pane_in_mode}'夿ï¼åç¨tmux send-keys -t <target> -X canceléåºï¼é¿å ç¨Escapeï¼ä¼è§¦å Meta åç¼ï¼å¯è½åæé¦å符ï¼ã
References
references/index.md: 导èªä¸æä»¶éè§references/getting_started.md: æ¯è¯ãoh-my-tmux æå°æ¥å ¥æ¥éª¤references/api.md: tmux/oh-my-tmux 常ç¨å½ä»¤ãéé¡¹ä¸ gpakosz ç¹è²é®ä½references/examples.md: è群åè®®èæ¬ä¸é¿ç¤ºä¾references/troubleshooting.md: å ¸åæ éå°ä¿®å¤è·¯å¾
Maintenance
- Sources:
assets/repo/.tmux/README.mdãèç¾¤å®ææç¤ºè¯ãSkill Seeker çæçæåææï¼å¦éæ©å±èªå¨åï¼ã - Last updated: 2026-01-17
- Known limits: æªæ¶µç tmux æä»¶ç®¡çï¼tpmï¼åå¤ç¨æ·å ±äº«æéé ç½®ï¼éæ¶åè¡¥å ã
Quality Gate
åå¸åèªæ£ï¼é
å skills-skills æ ¡éªèæ¬ï¼ï¼
descriptionå·²å«âcapture-pane/send-keys/è群âç触åå ³é®è¯ã- ãWhen to UseããNot Forãå·²è¦çè¾¹çï¼åç¼/çæ¬è¦æ±æ¸ æ°ã
- Quick Reference ⤠20 æ¡ä¸åå¯ç´æ¥æ§è¡ï¼æ é¿ç¯è§£éã
- â¥3 个端å°ç«¯ç¤ºä¾ï¼å«è¾å ¥/æ¥éª¤/éªæ¶ã
- é¿ææ¡£æ¾å¨
references/å¹¶å¯å¯¼èªï¼æ ææ¡£å ç ã - ä¸ç¡®å®é¡¹ç»åºéªè¯è·¯å¾ï¼ç¦æ¢èæ tmux è¡ä¸ºã
- è¿è¡
assets/skills/skills-skills/scripts/validate-skill.sh assets/skills/tmux-autopilotéè¿ã