A lightweight macOS menu bar app for quickly launching AI coding assistants (Claude Code, Codex CLI, Gemini CLI) with a custom prompt in any directory.
- Menu Bar App - Lives in your menu bar, not in the Dock
- Global Hotkey - Press ⌃⇧A (Control+Shift+A) from anywhere to launch
- Screenshot Capture - Press ⌃⇧⌥A to capture the frontmost window and attach it to your task
- Smart Directory Detection - Auto-detects working directory from VS Code, Cursor, Finder, or Terminal
- Spotlight Actions (macOS 14+) - Use Siri or Shortcuts to launch agents
- Per-Directory Preferences - Remembers your preferred agent for each project
- Prompt History - Quick access to recent prompts
- macOS 14.0 (Sonoma) or later
- One or more AI coding assistants installed:
- Claude Code -
claudeCLI - Codex CLI -
codexCLI - Gemini CLI -
geminiCLI
- Claude Code -
# Clone the repository
git clone https://github.com/anthropics/agent-tower.git
cd agent-tower/AgentControlTowerLite
# Build and create app bundle
./scripts/create-app-bundle.sh
# Install to Applications
cp -r .build/release/Agent\ Control\ Tower.app /Applications/Download the latest .dmg from Releases and drag to Applications.
- Press ⌃⇧A (or click the menu bar icon)
- Type your task prompt
- Select an agent (Claude, Codex, or Gemini)
- Choose a working directory (auto-detected from your current app)
- Press Enter to launch
Open Shortcuts.app and find these actions under "Agent Control Tower":
- Launch Claude Task - Start Claude with a prompt
- Launch Codex Task - Start Codex with a prompt
- Launch Gemini Task - Start Gemini with a prompt
You can also use Siri:
- "Launch Claude to fix the bug in main.py"
- "Ask Codex to add unit tests"
| Shortcut | Action |
|---|---|
| ⌃⇧A | Show/hide Quick Capture |
| ⌃⇧⌥A | Quick Capture with Screenshot |
| ⌘N | New Task (from menu) |
| ⌘D | Change Directory |
| Enter | Launch Task |
| ⇧Enter | New line in prompt |
| Escape | Dismiss Panel |
| ⌘, | Open Settings |
| ⌘Q | Quit |
The global hotkey (⌃⇧A) requires Accessibility permissions. On first launch, you'll be prompted to grant this permission in System Settings → Privacy & Security → Accessibility.
Agent Control Tower uses AppleScript to open Terminal.app with your task. You may be prompted to allow automation access.
Access settings via the menu bar icon → Settings, or press ⌘,
- Default Agent - Choose your preferred AI assistant
- Global Hotkey - View the current hotkey (⌃⇧A)
- CLI Path Overrides - Specify custom paths if CLIs aren't in your PATH
- Prompt History - Clear recent prompts
AgentControlTowerLite/
├── Sources/AgentControlTowerLite/
│ ├── AgentControlTowerLiteApp.swift # Entry point, MenuBarExtra
│ ├── AgentType.swift # Agent enum (Claude, Codex, Gemini)
│ ├── ProcessSpawner.swift # AppleScript → Terminal.app
│ ├── DirectoryDetector.swift # Auto-detect from frontmost app
│ ├── GlobalHotkeyManager.swift # ⌃⇧A/⌃⇧⌥A hotkey handling
│ ├── ScreenshotCapture.swift # Window screenshot capture
│ ├── LauncherState.swift # Settings persistence
│ ├── QuickCapturePanel.swift # SwiftUI capture UI
│ ├── QuickCaptureWindowController.swift # NSPanel controller
│ ├── SettingsView.swift # Settings UI
│ └── Intents/ # App Intents for Spotlight/Siri
│ ├── LaunchClaudeIntent.swift
│ ├── LaunchCodexIntent.swift
│ ├── LaunchGeminiIntent.swift
│ └── AgentShortcuts.swift
└── scripts/
├── build.sh # Debug build
├── build-release.sh # Release build
└── create-app-bundle.sh # Create .app bundle
This Lite app is part of the Agent Control Tower ecosystem. It provides a quick-launch experience, while the full Agent Control Tower app offers:
- Visual canvas for managing multiple sessions
- Real-time session monitoring
- Multi-agent collaboration (Council, Debate, Deliberation modes)
- Session persistence and resume
Both apps share settings via the App Group group.com.empatika.AgentControlTower.
# Build debug
swift build
# Build release
swift build -c release
# Run tests
swift test
# Create app bundle
./scripts/create-app-bundle.shMIT License - See LICENSE for details.
