A native macOS desktop app for managing multiple AI coding agents in parallel. Kiro Kantoku gives you a visual interface to create tasks, assign them to AI agents powered by kiro-cli, and monitor their progress -- all from a single window.
# Install via Homebrew
brew tap ryancormack/kiro-kantoku
brew install --cask kiro-kantoku
# Make sure kiro-cli is installed and authenticated
kiro-cli login
# Launch the app
open -a KiroKantoku- The onboarding flow will guide you through verifying your
kiro-clipath. - Create a new task with ⌘⇧T or the + button.
- Give it a name, choose a project directory, and optionally configure a git branch or worktree.
- The agent connects and you can start chatting.
Create named tasks, each tied to a project directory. Tasks go through a full lifecycle -- pending, starting, working, paused, completed, failed, or cancelled -- so you always know what's happening.
Run multiple agents simultaneously across different projects. The dashboard gives you a grid overview of all active tasks, an activity feed, and highlights tasks that need your attention.
Converse with agents directly. The chat panel supports markdown rendering, inline tool call display, slash commands, and image attachments (PNG, JPEG, GIF, WebP).
The chat input supports slash commands with an autocomplete picker. Type / to see available commands. Supported commands include /compact, /context, /help, /tools, and /usage. Selection-type commands (like /model) show an interactive options picker. Commands are provided by the server via both standard ACP and Kiro vendor extensions, then merged into a unified list.
When agents need approval for tool calls (e.g. shell commands, file writes), an interactive permission request UI appears inline. You can allow or reject the request once, or choose to always allow or always reject for that tool. The permission flow integrates with the ACP SDK's requestPermissions callback.
A visual context usage bar shows the percentage of the agent's context window currently in use. The bar is color-coded: green when usage is low, yellow when moderate, and red when nearing the limit. Context usage data arrives via the _kiro.dev/metadata notification.
A collapsible thought bubble displays the agent's internal reasoning in real time as it works. Thought chunks stream in via both ACP agentThoughtChunk session updates and _kiro.dev/session/update notifications with agent_thought_chunk type. Thought content is suppressed during session replay to avoid duplication.
A live execution plan view shows the agent's planned steps along with their current status (pending, in progress, or completed). Plan updates arrive via the _kiro.dev/session/update notification with plan type, and also through the standard ACP planUpdate session update.
Switch between agents and models on the fly. A compact selector bar above the chat input lets you pick which agent (e.g. default, planner) and which model (e.g. Claude Opus, Sonnet, Haiku, DeepSeek, MiniMax, Qwen) to use for the current session. Changes take effect immediately via ACP.
See what the agent is doing in real time:
- Files Changed -- git diff view with syntax-highlighted, word-level diffs
- Terminal -- output from commands the agent executes
- Debug -- raw ACP protocol log for troubleshooting
The code panel position is configurable: place it to the right of the chat or below it. This setting is available in Settings > Appearance.
Kiro Kantoku discovers SKILL.md files from both workspace-local (.kiro/skills/) and global (~/.kiro/skills/) directories. Each skill is parsed from YAML frontmatter for its name and description. Workspace skills override global skills with the same name. A collapsible skills panel shows all discovered skills, and activated skills are highlighted when detected in agent output.
When an MCP server requires browser-based OAuth authentication, an inline prompt appears with an "Open in Browser" button. The OAuth URL is provided by the _kiro.dev/mcp/oauth_request notification.
Status banners appear during context compaction (blue) and history clearing (orange) operations. These are triggered by _kiro.dev/compaction/status and _kiro.dev/clear/status notifications respectively and remain visible while the operation is in progress.
Browse and resume past sessions for a workspace. The session history view lets you load a previous session by its ID, reconnecting the agent to where it left off.
Session-level configuration options (e.g. autonomous mode toggles) are surfaced from the server and displayed in the UI. Options are provided during session creation and updated via configOptionUpdate session updates. Changes are sent back to the server via session/setConfigOption.
When creating a task, Kiro Kantoku detects git repositories automatically. You can optionally create a new git worktree so the agent works on an isolated branch without touching your main working tree.
Define multiple agent profiles in Settings > Agents. Each profile has a name, an agent identifier, and optional tags. Set a default profile or pick one per task at creation time.
Tasks are automatically saved to UserDefaults and restored on relaunch. Active tasks are restored in a paused state. Stale kiro-cli processes from previous launches are detected and terminated on startup, ensuring clean recovery.
When loading a session that has a stale lock (e.g. from a crashed kiro-cli process), Kiro Kantoku automatically detects the SESSION_LOCKED error, removes the stale lock file, and retries the session load. If recovery fails, it falls back to starting a fresh session.
A first-launch wizard guides you through initial setup: auto-detecting the kiro-cli path, validating it exists and is executable, and creating your first workspace.
Tasks and their ACP sessions are saved automatically. When you relaunch the app, paused tasks reconnect to their previous sessions.
Built with SwiftUI. Supports light/dark/system themes, configurable font sizes, adjustable split views, keyboard shortcuts, and macOS notifications for agent events.
- ACP Methods and Kiro Extensions -- Detailed reference for all ACP protocol methods and Kiro vendor extension notifications supported by Kiro Kantoku.
- macOS 14 (Sonoma) or later
- kiro-cli installed and authenticated (
kiro-cli login) - Swift 6.0+ toolchain (for building from source)
brew tap ryancormack/kiro-kantoku
brew install --cask kiro-kantokugit clone https://github.com/ryancormack/kiro-kantoku.git
cd kiro-kantoku
swift buildThe built binary will be at .build/debug/KiroKantoku. You can run it directly:
.build/debug/KiroKantokuFor a release build:
swift build -c releaseThe optimised binary will be at .build/release/KiroKantoku.
Kiro Kantoku expects kiro-cli at ~/.local/bin/kiro-cli by default. You can change this in Settings > General.
Make sure you're authenticated before launching:
kiro-cli login- Launch the app. The onboarding flow will guide you through verifying your
kiro-clipath. - Create a new task with ⌘⇧T or the + button.
- Give it a name, choose a project directory, and optionally configure a git branch or worktree.
- The agent connects and you can start chatting.
| Shortcut | Action |
|---|---|
| ⌘⇧T | New Task |
| ⌘D | Toggle Dashboard |
| ⌘1–9 | Switch between tasks |
| ⌘Return | Send prompt |
| ⌘. | Cancel current agent action |
| ⌘⇧K | Clear chat history |
| ⌘, | Settings |
Sources/KiroKantoku/
├── App/ # App entry point and lifecycle
├── Models/ # Data models (Agent, AgentTask, Workspace, etc.)
├── Services/ # Core services
│ ├── AgentManager # Manages agent lifecycle and ACP communication
│ ├── TaskManager # Task creation, state transitions, persistence
│ ├── ACPConnection # ACP protocol transport over subprocess pipes
│ ├── GitService # Git repo detection, worktree operations
│ ├── SessionStorage # Session persistence
│ └── NotificationManager # macOS notifications
└── Views/
├── Agent/ # Chat panel, message rendering, input
├── Code/ # Diff viewer, terminal output, debug log
├── Dashboard/ # Multi-task overview grid
├── Task/ # Task detail view, new task sheet
├── Sidebar/ # Navigation sidebar
├── Session/ # Session history
├── Settings/ # General, Agents, Appearance settings
├── Workspace/ # Workspace management
├── Components/ # Shared UI components
└── Onboarding/ # First-launch setup
Contributions are welcome. Please open an issue first to discuss what you'd like to change.
This project is licensed under the MIT License.
Kiro rhymes with "hero" -- the team behind Kiro chose the name to evoke a tireless, hardworking partner for developers. It also happens to be a Japanese word (岐路) meaning "crossroads."
Kantoku (監督) is Japanese for "director" or "supervisor" -- the standard term for film directors, sports coaches, and project managers. Kiro Kantoku is exactly that: the supervisor and director for your Kiro agents, giving you a single UI to manage them all.





