Last active
January 28, 2026 06:46
-
-
Save kevinma2010/5618f1eeeee431814c15218cc4c095e5 to your computer and use it in GitHub Desktop.
一键启动多 Agent tmux 工作区:OpenCode/Droid/Claude/Codex 负责执行
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # 智能session命名:使用当前目录名或自定义名称 | |
| if [ -z "$1" ]; then | |
| SESSION_NAME=$(basename "$PWD" | tr '.' '-' | tr ' ' '-') | |
| else | |
| SESSION_NAME=$1 | |
| fi | |
| # 检查session是否已存在 | |
| tmux has-session -t "$SESSION_NAME" 2>/dev/null | |
| if [ $? != 0 ]; then | |
| # 创建新session | |
| tmux new-session -d -s "$SESSION_NAME" -c "$PWD" | |
| sleep 0.3 | |
| # === 第一层拆分:4个窗格 === | |
| # 1. 左右拆分:右侧 50% | |
| tmux split-window -h -p 50 -t "$SESSION_NAME:0.0" -c "$PWD" | |
| # 窗格:0=左, 1=右 | |
| sleep 0.2 | |
| # 2. 左侧上下拆分:下方 50% | |
| tmux split-window -v -p 50 -t "$SESSION_NAME:0.0" -c "$PWD" | |
| # 窗格:0=左上, 1=左下, 2=右 | |
| sleep 0.2 | |
| # 3. 右侧上下拆分:下方 50% | |
| tmux split-window -v -p 50 -t "$SESSION_NAME:0.2" -c "$PWD" | |
| # 窗格:0=左上, 1=左下, 2=右上, 3=右下 | |
| sleep 0.3 | |
| # === 第二层拆分 === | |
| # 左上(0)不拆分,执行opencode | |
| tmux send-keys -t "$SESSION_NAME:0.0" 'clear; opencode' C-m | |
| sleep 0.2 | |
| # 左下(1)先左右拆分 | |
| tmux split-window -h -p 50 -t "$SESSION_NAME:0.1" -c "$PWD" | |
| # 窗格:0=左上(opencode), 1=左下左, 2=左下右, 3=右上, 4=右下 | |
| sleep 0.2 | |
| # 左下左(1)上下拆分 | |
| tmux split-window -v -p 50 -t "$SESSION_NAME:0.1" -c "$PWD" | |
| # 窗格:0=左上(opencode), 1=左下左上, 2=左下左下, 3=左下右, 4=右上, 5=右下 | |
| sleep 0.2 | |
| # 左下右(3)不拆分,执行codex | |
| tmux send-keys -t "$SESSION_NAME:0.3" 'clear; codex' C-m | |
| sleep 0.2 | |
| # 右上(4)左右拆分 | |
| tmux split-window -h -p 50 -t "$SESSION_NAME:0.4" -c "$PWD" | |
| # 窗格:0=左上(opencode), 1=左下左上, 2=左下左下, 3=左下右(codex), 4=右上左, 5=右上右, 6=右下 | |
| sleep 0.2 | |
| # 右下(6)左右拆分 | |
| tmux split-window -h -p 50 -t "$SESSION_NAME:0.6" -c "$PWD" | |
| # 窗格:0-7 共8个 | |
| sleep 0.2 | |
| # 执行命令 | |
| # 4=右上左 -> droid | |
| tmux send-keys -t "$SESSION_NAME:0.4" 'clear; droid' C-m | |
| # 5=右上右 -> claude | |
| tmux send-keys -t "$SESSION_NAME:0.5" 'clear; claude' C-m | |
| # 6=右下左 -> codex | |
| tmux send-keys -t "$SESSION_NAME:0.6" 'clear; codex' C-m | |
| # 7=右下右 -> gemini | |
| tmux send-keys -t "$SESSION_NAME:0.7" 'clear; gemini' C-m | |
| # 聚焦回左上角 | |
| tmux select-pane -t "$SESSION_NAME:0.0" | |
| echo "✨ Workspace '$SESSION_NAME' forged successfully!" | |
| echo "📐 Layout: 8 panes" | |
| else | |
| echo "🔄 Rejoining existing workspace '$SESSION_NAME'..." | |
| fi | |
| # 进入工作空间 | |
| tmux attach-session -t "$SESSION_NAME" | |
| # 退出后自动清屏 | |
| clear |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment