Claude-skill-registry gemini-tmux-orchestration
Use when delegating coding tasks to Gemini CLI agent, when you need parallel AI execution, or when tasks benefit from Gemini's 1M+ context window - orchestrates Gemini via tmux since headless mode cannot write files
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gemini-tmux-orchestration" ~/.claude/skills/majiayu000-claude-skill-registry-gemini-tmux-orchestration && rm -rf "$T"
manifest:
skills/data/gemini-tmux-orchestration/SKILL.mdsource content
Gemini CLI Orchestration via tmux
Overview
Gemini CLI in headless mode (
-p) cannot execute shell commands or write files. Use tmux send-keys to control Gemini interactively while monitoring via capture-pane.
Quick Reference
| Action | Command |
|---|---|
| Start (split pane) | |
| Start (session) | |
| Send text | |
| Send Enter | |
| Check output | |
| Clear input | |
| Kill pane | |
| Kill session | |
Target:
{right} for split pane, gemini for named session.
Status Markers
Detect Gemini state by grepping capture-pane output:
| Marker | State |
|---|---|
| Idle, ready for input |
| Working on task |
/ | Action completed |
| Build failed |
| TypeScript error |
| Needs intervention (send + Enter) |
| OAuth expired |
Workflow
# 1. Start Gemini tmux split-window -h -d "cd ~/project && gemini --yolo" sleep 5 # 2. Send task (TWO separate calls - critical!) tmux send-keys -t {right} 'Build the app per PLAN.md' tmux send-keys -t {right} Enter # 3. Poll for completion while true; do output=$(tmux capture-pane -t {right} -p -S -50) # Check if idle (task done) if echo "$output" | grep -q "Type your message"; then break fi # Handle loop detection if echo "$output" | grep -q "potential loop"; then tmux send-keys -t {right} '2' tmux send-keys -t {right} Enter fi sleep 10 done # 4. Check result tmux capture-pane -t {right} -p -S -200 | tail -100
Common Mistakes
| Mistake | Fix |
|---|---|
in one call | Enter не регистрируется — отправлять отдельно |
Chaining: | Команды утекают в ввод Gemini — separate bash calls |
Fixed | Используй polling с маркерами |
| Ignoring loop detection | Gemini зависает — детектить и отправлять |
| Long prompts | Создай |
Custom Commands
Для повторяющихся задач создай
.gemini/commands/:
# .gemini/commands/improve-design.toml [command] description = "Improve app design" [[steps]] prompt = "Improve design: gradients, shadows, animations. Run build when done."
Вызов:
tmux send-keys -t {right} '/improve-design' + Enter
When NOT to Use
- Read-only analysis →
gemini -p "analyze" --output-format json - Simple questions → direct API call
- Need deterministic output → headless with JSON schema