Skip to content

Instantly share code, notes, and snippets.

@kevinma2010
Last active January 28, 2026 06:46
Show Gist options
  • Select an option

  • Save kevinma2010/5618f1eeeee431814c15218cc4c095e5 to your computer and use it in GitHub Desktop.

Select an option

Save kevinma2010/5618f1eeeee431814c15218cc4c095e5 to your computer and use it in GitHub Desktop.
一键启动多 Agent tmux 工作区:OpenCode/Droid/Claude/Codex 负责执行
#!/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