A native desktop workspace for running and organizing multiple AI coding agents at once.
Keel combines persistent terminal panes, project and deck navigation, an integrated editor, Git tools, agent status, usage information, and workspace restoration in a Tauri application. It uses the agent CLIs already installed on your machine rather than wrapping a hosted agent service.
Built with Tauri 2, React 19, TypeScript, Rust, Vite, CodeMirror, and xterm.js.
- Launch multiple supported coding agents and plain shells side by side.
- Group related projects into workspaces in the sidebar; each project keeps its own folders, decks, and terminals.
- Keep processes running while you switch projects or deck layouts.
- Restore saved projects, layouts, terminals, and resumable agent sessions.
- Browse and edit project files with an integrated CodeMirror editor, and search file contents across the project.
- Inspect Git status and diffs, then stage, commit, fetch, pull, push, and manage branches. The file tree and git status refresh from filesystem events, with a mark on files touched in the last few minutes.
- Surface agent activity and supported subscription-usage windows in the workspace UI. An agent that finishes or exits chimes unless its specific terminal has focus, including when you are in another deck, project, workspace, or dialog. Background OS notifications can be muted per pane; sounds still play for muted panes.
- Configure agent commands, profiles, colors, and discovery paths from the app.
- On Windows, optionally route Keel traffic through an isolated OpenVPN tunnel without replacing the machine's preferred default route.
- Node.js 22 or newer
- pnpm 11 or newer
- A Rust toolchain with
rustfmtandclippy - The native prerequisites required by Tauri for your operating system
On Windows, Tauri requires the Microsoft C++ build tools and WebView2 runtime. The optional private-VPN feature additionally requires the OpenVPN community client and its Interactive Service. See the Tauri prerequisites for platform setup.
corepack enable
pnpm install
pnpm doctor
pnpm devpnpm dev starts the native Tauri app with frontend hot reload. For frontend-only work that does not call Tauri commands, use pnpm dev:web.
pnpm build:app # native app plus platform installers/bundles
pnpm build # native release binary without installer bundles
pnpm build:app:debug # debug-shaped bundle for troubleshootingBuild outputs collected for distribution are copied to release/. Release binaries are currently unsigned, so operating-system reputation or signing warnings can appear until a release signing process is configured.
pnpm checkThe check runs TypeScript type checking, frontend tests, Rust formatting verification, Clippy with warnings denied, and cargo test. CI runs the same command on Windows.
Useful individual commands:
pnpm typecheck
pnpm test
pnpm rust:fmt
pnpm rust:lint
pnpm test:rustAdd a folder to create a project, then open terminals or agent sessions inside it. Related projects can be grouped into a workspace so they sit together in the sidebar; dissolving a workspace never deletes its projects. Projects can contain multiple decks: independent pane layouts whose processes continue running while another deck is visible. The overview (Ctrl+O) shows every deck and lets you move running terminals between them.
Adding terminals arranges the current deck in a balanced grid: three panes form two above one, four form a 2×2 grid, and larger groups spread evenly across rows. The launch preview includes existing panes. Running sessions and editor tabs stay open; explicit horizontal and vertical splits still divide the pane you choose. See terminal layout for the placement rules.
Common shortcuts:
| Shortcut | Action |
|---|---|
Ctrl+P |
Go to a terminal, deck, or action |
Ctrl+Shift+F |
Find in files |
Ctrl+F |
Find in the focused editor or terminal scrollback |
Ctrl+T |
Add terminals |
Ctrl+W |
Close the focused pane |
Ctrl+1…9 |
Jump to a deck |
Ctrl+O |
Open deck overview |
Ctrl+N |
Create a deck |
Ctrl+Shift+D / Ctrl+Shift+S |
Split right / split down |
Ctrl+Tab / Ctrl+Shift+Tab |
Focus next / previous pane |
F8 |
Focus the next waiting agent |
F11 |
Toggle focused-pane fullscreen |
F2 |
Rename the focused item |
Keel stores workspace state and agent overrides in the operating system's application-config directory for the com.alede.keel identifier. Typical locations are %APPDATA%\com.alede.keel on Windows, ~/.config/com.alede.keel on Linux, and ~/Library/Application Support/com.alede.keel on macOS.
The main files are:
keel.jsonfor projects, workspaces, decks, layouts, and saved terminal state.agents.jsonfor changes to the built-in agent catalogue.
Keel can read credentials already managed by supported local agent CLIs when fetching usage information. Those credentials are not repository configuration and should never be committed to this project.
src/ React frontend
src-tauri/ Rust backend and desktop packaging
src-tauri/agents.default.json
built-in agent catalogue
scripts/ build, artifact, doctor, and cleanup tooling
docs/ contributor-facing design notes
The Windows private-VPN design and its isolation boundaries are documented in docs/vpn-windows-design.md.
See CONTRIBUTING.md before opening a pull request. Changes should keep pnpm check green and avoid committing generated output, local credentials, private configuration, or machine-specific paths.
Security-sensitive reports should follow SECURITY.md rather than a public issue.
Keel is available under the MIT License.