BlogParallel agents

Can I run Gemini CLI or Aider in parallel like Claude Code?

Yes. Gemini CLI and Aider are terminal agents, so the layout that works for Claude Code works for them: one git worktree and one terminal per agent. Gemini CLI has an experimental --worktree flag and optional notifications. Aider has a --notifications flag, and it commits every edit by default, which makes its own branch even more important.

What differs is the config each tool needs to tell you it's waiting. Here it is for both, as of October 2026.

One caveat on access: Google announced on May 19, 2026 that Gemini CLI would stop serving requests on June 18, 2026 for Google AI Pro and Ultra subscribers and free Gemini Code Assist for individuals users, who move to Antigravity CLI. It stays available with a Gemini Code Assist Standard or Enterprise license, or with a paid Gemini API key.

Gemini CLI

1. Turn on worktrees and notifications

Both are experimental and off by default. In ~/.gemini/settings.json, or through /settings:

{
  "experimental": { "worktrees": true },
  "general": { "enableNotifications": true }
}

2. Start each session in its own worktree

gemini --worktree feature-search
gemini --worktree fix-pagination

The name you pass becomes the directory under .gemini/worktrees/. Without a name, Gemini CLI generates one. Install dependencies in each new worktree, as you would in any fresh checkout.

When you exit, Gemini CLI keeps the worktree and its branch, uncommitted work included, and prints how to resume or remove it. To resume:

cd .gemini/worktrees/feature-search
gemini --resume <session_id>

Cleanup is yours:

git worktree remove .gemini/worktrees/feature-search

3. Know when it waits

With enableNotifications on, Gemini CLI sends a notification when it's waiting for input or tool approval, and when a session completes. It uses the OSC 9 escape sequence, which iTerm2, WezTerm, Ghostty and Kitty support, and falls back to a terminal bell elsewhere.

For a custom alert, Gemini CLI has hooks configured in settings.json. The Notification event fires when the CLI emits a system alert such as a tool permission request. It can't block or approve anything:

{
  "hooks": {
    "Notification": [
      {
        "matcher": "*",
        "hooks": [
          {
            "name": "mac-alert",
            "type": "command",
            "command": "osascript -e 'display notification \"Gemini CLI needs you\" with title \"Gemini CLI\"'"
          }
        ]
      }
    ]
  }
}

--approval-mode sets how much it asks: default, auto_edit, yolo or plan.

Aider

1. Give it its own branch

Aider commits each edit it makes with a descriptive message, and commits pre-existing dirty files before editing them. In a shared checkout, that means commits land on whatever branch is checked out. Use a worktree:

git worktree add ../app-aider-refactor -b aider/refactor
cd ../app-aider-refactor
aider --notifications

--no-auto-commits stops the per-edit commits if you prefer to commit yourself. Inside Aider, /diff shows changes since your last message and /undo discards the last change.

2. Know when it waits

--notifications makes Aider notify you when the model has finished and is waiting for your input. On macOS it uses terminal-notifier if installed, AppleScript otherwise. You can set your own command:

aider --notifications-command "say 'Aider is ready'"

Or put notifications: true in Aider's config file.

A ready-made layout instead

If you'd rather not wire this up per tool:

  • Claude Squad is a terminal app that runs each agent in a tmux session with its own git worktree. It defaults to claude. Launch others with cs -p "gemini" or cs -p "aider ...". It needs tmux and gh.
  • cmux is a macOS terminal built on Ghostty. Any terminal agent runs in it, Gemini CLI and Aider included, and panes get a notification ring when an agent needs attention, driven by terminal escape sequences (OSC 9/99/777) or hooks.

More options in tools for running multiple coding agents on Mac.

Limits of this setup

  • Each agent needs its own config. Gemini settings, Aider flags and Claude Code hooks are three different formats.
  • Gemini's worktrees and notifications are experimental. Behavior can change between releases.
  • Aider's notification means "your turn". It fires when a response is done, which is when Aider waits for input.
  • Nothing gives you one view. Each agent reports in its own terminal. Usage limits are per provider.
  • Merge conflicts are still yours. Separate worktrees keep checkouts apart, not tasks. See stopping agents from overwriting each other's files.

With Kanbell

Kanbell is a macOS app (Apple Silicon) with one window per project and real terminals in panes and tabs. Gemini CLI and Aider both run in those terminals. Tracking differs:

  • Gemini CLI is tracked. Kanbell shows whether it's working, waiting or done, and when it waits for a permission. Quota and subagents show as "not available", because Gemini CLI doesn't publish them.
  • Aider runs without tracking. It works in the terminal like any CLI, but Kanbell doesn't know its state. Keep --notifications on.
  • Claude Code and Codex CLI, if you run them in the same window, are tracked too. Claude Code gets the full picture, including subagents and subscription usage.

When a tracked agent waits, an orange dot shows in the window, the menu bar and the overview, with a macOS notification. ⌘⇧J jumps to the next waiting agent. The Git panel beside the terminals shows changes, diffs, history and worktrees, including Aider's commits. There is no account and no Kanbell server.

FAQ

Does Gemini CLI support git worktrees?

Yes, as an experimental feature. Set experimental.worktrees to true in settings.json, then run gemini --worktree <name>. Worktrees go under .gemini/worktrees/ and are not deleted when you exit.

How do I get notified when Gemini CLI needs approval?

Turn on general.enableNotifications in settings.json. Gemini CLI then notifies you when it waits for input or tool approval, using OSC 9 or a terminal bell. A Notification hook can also forward ToolPermission alerts.

Does Aider commit on its own?

Yes. Aider commits each edit with a descriptive message and commits pre-existing dirty files first. --no-auto-commits and --no-dirty-commits turn that off.

Is there a tool that runs these agents for me?

Claude Squad runs Claude Code, Codex, Gemini and Aider in tmux sessions with a git worktree each, for example cs -p "gemini". cmux is a macOS terminal where any terminal agent runs, with notification rings when one needs attention.