Run Claude Code, Codex, Cursor, and Antigravity side by side in one native desktop app.
Agents • Features • Installation • Usage • Shortcuts • Build • License
Agentrium (Agent Desktop Environment) is a cross-platform desktop app for developers who work with multiple coding-agent CLIs. Pick which agent each terminal launches, mix them freely in tabs or a grid, save per-profile setups, and get a native window with proper tabs, split view, session restore, git worktree lifecycle, and hunk review on top.
The app is Tauri-native (small binary, no Electron bloat) and ships to Windows and macOS.
Each terminal you spawn can target any of the four agents below. Switch between them with a picker in the New Terminal dialog; the icon on each tab and grid cell tells you which agent is running.
| Agent | Binary | Install | Docs |
|---|---|---|---|
| Claude Code | claude |
npm install -g @anthropic-ai/claude-code |
docs.claude.com/claude-code |
| Codex | codex |
npm install -g @openai/codex |
github.com/openai/codex |
| Cursor | agent |
curl https://cursor.com/install -fsS | bash (or irm 'https://cursor.com/install?win32=true' | iex on Windows) |
cursor.com/cli |
| Antigravity | agy |
curl -fsSL https://antigravity.google/cli/install.sh | bash |
antigravity.google/docs/cli |
Only Claude Code is required to get started. The other three are opt-in and auto-detected once installed - Settings > Updates shows what's on your PATH.
Welcome screen - pick Claude Code, Codex, Cursor, or Antigravity to start your first session
New Session dialog - pick the agent, choose a profile, set working directory, model, and nickname
Grid view - Claude Code, Codex, Cursor, and Antigravity running side by side; brand icon on each cell shows which agent is active
New Profile dialog - name, working directory, and per-agent CLI arguments; profiles work across all four agents
Settings - theme, density, accent color, UI font scale, reduce-motion, and tab-bar behavior
- Pick per terminal between Claude Code, Codex, Cursor, and Antigravity
- Brand icon on every tab and every grid cell so you always know what's running
- Per-agent default arguments in Settings; per-profile args stored in SQLite
- Claude-only flags (
--dangerously-skip-permissions,--model,--effort,--continue,--resume,--worktree) are stripped automatically when spawning other agents so profiles are portable - Per-agent version detection in Settings > About and Settings > Updates
- Agents are auto-detected via
<binary> --versionfirst, then a PATH probe fallback so CLIs without a semver flag still register as installed
- Tabbed strip with drag-to-reorder, pin, and multi-select tear-off
- Brand icon prefix on every tab title
- Custom nicknames per terminal
- Session state persistence across restarts
- Overflow chevron with a hidden-tabs dropdown for busy workspaces
- Up to 8 terminals in one window with mixable agents per cell
- Layout picker with schematic icons that match the actual grid shape (1x1, 1x2, 2x1, 2x2, 1x3, 3x1, 2x3, 3x2, 2x4, 4x2)
- Layout preserves your manual pick until it's actually full - adding a 3rd terminal to a 2x2 grid stays 2x2, not 1x3
- Click to focus, arrow keys to navigate,
Ctrl+Gto toggle - Cell headers auto-clean stale terminal references after a restart
- Save named profiles with a working directory, per-agent arguments, and env vars
- Profiles are agent-agnostic in the picker - the same profile appears whether Claude Code, Codex, Cursor, or Antigravity is selected
- SQLite storage, transparent migration for existing profiles
- Create, list, and switch worktrees from the New Terminal dialog
- Close a terminal that was on a worktree and choose merge (fast-forward), squash-merge, or discard from a dialog
- Branch chip in the tab strip shows current + upstream status
- IntelliJ-style verified review cockpit for staging individual hunks
- Diff view with hunk-level accept/reject
- Changelists for grouping related diffs
- App-restart re-attaches Claude Code conversations by session id (
--resume <id>or--continue) - Workspace save/load for storing a named layout of terminals
- Ephemeral tab state survives a
/clear
- Flat IntelliJ IDEA 2026.1 "New UI"-style design (dark and light themes, user-set accent color)
- WCAG AA text contrast, reduce-motion support that follows the OS setting
- Compact / comfortable / spacious density
- UI font scale
- Custom frameless window with a transparent titlebar
- Automatic app update checks on startup with a background download
- Manual Recheck for each agent CLI in Settings > Updates
- Built-in Claude Code command reference (Codex/Cursor/Antigravity hint packs planned)
- Snippet manager with import/export
- Full prompt editor drawer for composing large multi-line prompts
Before installing Agentrium, ensure you have:
- Node.js (v22 LTS or higher) - Download
- At least one of the following agents installed (see Supported Agents above for install commands):
- Claude Code (recommended - detected by the setup wizard)
- Codex
- Cursor
- Antigravity
Download the latest release for your platform from the Releases page:
| Platform | Installer | Description |
|---|---|---|
| Windows | Agentrium_1.33.6_x64-setup.exe | NSIS Installer (Recommended) |
| Windows | Agentrium_1.33.6_x64_en-US.msi | MSI Installer |
| macOS (Apple Silicon) | Agentrium_1.33.6_aarch64.dmg | DMG for M1/M2/M3/M4 Macs |
| macOS (Intel) | Agentrium_1.33.6_x64.dmg | DMG for Intel Macs |
Existing 1.31.x installs auto-update to 1.32.0 via the in-app updater. The bundle identifier is unchanged, so profiles, workspaces, and session history carry over. Pre-rebrand 1.31.x download artifacts are still available on the release history if you need an older build.
macOS builds are currently not code-signed/notarized - first launch will require right-click > Open or approval in System Settings > Privacy & Security.
- Run the installer and follow the setup wizard
- Launch Agentrium from the Start Menu or Desktop
- The setup wizard detects Node.js and Claude Code; if either is missing it guides you through the install
- Click "New Terminal", pick your agent from the four brand buttons, and launch your first session
- Click New Terminal in the sidebar, or press
Ctrl+Shift+N - Pick the agent from the four brand buttons (Claude Code / Codex / Cursor / Antigravity)
- Optionally pick a profile from the grid
- Optionally set a nickname for easy identification
- Choose the working directory for the session
- Add per-agent arguments in the textarea (placeholder text hints at typical flags per agent)
- Click Start Terminal
- Switch: click a tab or a sidebar row
- Rename: double-click the terminal name or use the context menu
- Duplicate: right-click > Duplicate, or
Ctrl+Shift+D- the duplicate keeps the same agent - Restart: bottom status bar > Restart - the restarted terminal keeps the same agent
- Close: click X on the tab or use the context menu
- Search: use the sidebar search bar to filter terminals
Each terminal has an overlay scrollbar for its native scrollback. In auto-hide mode it stays visible while you read older output and fades after returning to the bottom. Settings > Terminal Appearance > Scrollbar also offers always and hidden modes.
Agentrium launches Claude with CLAUDE_CODE_NO_FLICKER=0 so its conversation uses
native scrollback and the thumb can track and drag through real history. Reopen
or resume an existing fullscreen session to apply this default. An explicit
profile environment value of CLAUDE_CODE_NO_FLICKER=1 enables Claude's fullscreen
renderer instead; fullscreen applications manage their own history, so Agentrium
hides its scrollbar in that mode and leaves scrolling to the application.
- Click Manage Profiles in the sidebar footer (or click + Add Profile in the New Terminal dialog)
- Create a new profile with:
- Name and description
- Working directory
- Agent-flavored arguments (e.g.,
--model opusfor Claude,--dangerously-bypass-approvals-and-sandboxfor Codex) - Environment variables
- Save and use the profile for new terminals - it appears under every agent
Press F1 or click the lightbulb icon to open the Hints panel:
- Categorized Claude Code commands
- Click any hint to copy it to clipboard
- Search bar for filtering
- Codex/Cursor/Antigravity hint packs are planned
| Shortcut | Action |
|---|---|
Ctrl+Shift+N |
New Terminal |
Ctrl+Shift+D |
Duplicate current terminal (keeps agent) |
Ctrl+W |
Close current terminal |
Ctrl+B |
Toggle sidebar |
F1 |
Toggle Hints panel |
Ctrl+, |
Open Settings |
Ctrl+P |
Search Everywhere |
Ctrl+Tab |
Next terminal |
Ctrl+Shift+Tab |
Previous terminal |
Ctrl+G |
Toggle Grid view |
Ctrl+Shift+G |
Add current terminal to grid |
Ctrl+C |
Copy selected text / send interrupt |
Ctrl+V |
Paste from clipboard |
Arrow keys |
Navigate grid (in grid mode) |
- Node.js v22+
- Rust (latest stable)
- Visual Studio Build Tools (Windows)
-
Clone the repository
git clone https://github.com/talayash/agentrium.git cd claude-terminal -
Install dependencies
npm install
-
Run in development mode
npm run tauri dev
-
Build for production
npm run tauri build
Installers land in:
src-tauri/target/release/bundle/nsis/(NSIS installer, Windows)src-tauri/target/release/bundle/msi/(MSI installer, Windows)src-tauri/target/release/bundle/dmg/(DMG, macOS)src-tauri/target/release/bundle/macos/(.app, macOS)
| Layer | Technology |
|---|---|
| Framework | Tauri 2.x |
| Backend | Rust (edition 2021) |
| Frontend | React 18 + TypeScript |
| Styling | Tailwind CSS + Framer Motion |
| Terminal | xterm.js (@xterm/xterm + fit / search / web-links / webgl addons) |
| State | Zustand (persisted via zustand/middleware/persist) |
| Database | SQLite via rusqlite (bundled) |
| PTY | portable-pty |
| Notifications | notify-rust |
| Icons | Lucide React + inline brand SVGs (simple-icons for Anthropic / Cursor, official OpenAI mark for Codex, original mark for Antigravity) |
| Build | Vite |
claude-terminal/
├── src/ # React frontend
│ ├── components/ # UI (TitleBar, TerminalTabs, TerminalGrid, ...)
│ │ ├── AgentPicker.tsx # Four-button agent picker
│ │ ├── BrandIcon.tsx # Shared per-agent brand SVGs
│ │ └── settings/ # Settings modal + category pages
│ ├── lib/
│ │ └── agents.ts # AgentKind, AGENT_SPECS catalog, filterArgsForAgent
│ ├── store/ # Zustand stores
│ └── hooks/ # Custom hooks
├── src-tauri/ # Tauri backend
│ ├── src/
│ │ ├── main.rs # App setup, plugin registration, IPC dispatch
│ │ ├── agents.rs # AgentSpec catalog (mirror of TS)
│ │ ├── config.rs # ConfigProfile + AgentKind enum
│ │ ├── terminal.rs # PTY lifecycle, per-agent spawn routing
│ │ ├── commands.rs # All Tauri #[command] handlers
│ │ └── database.rs # SQLite (profiles, workspaces, session_history)
│ └── icons/ # App icons
└── package.json
The installers are signed with code-signing certificates, but new releases may still trigger OS-level warnings until trust reputation accumulates. The app is not actually damaged or unsafe - these are platform-level checks against unrecognized binaries.
Windows SmartScreen blocks executables downloaded from the internet until they build up reputation, even when correctly signed.
- When the blue SmartScreen dialog appears, click More info.
- Click Run anyway.
If you also see a yellow "Unknown publisher" UAC prompt, the installer was likely downloaded from an older release before code signing was enabled - grab the latest installer from the Releases page.
This message is misleading: the app is intact, but the macOS .dmg is not yet
notarized through Apple's notary service, so Gatekeeper rejects it after the
browser tags the download with a quarantine attribute. Remove the attribute
from Terminal:
# Before opening the DMG
xattr -d com.apple.quarantine ~/Downloads/Agentrium_*.dmg
# Or, if you've already dragged the app to /Applications
xattr -cr /Applications/Agentrium.appThen open the app normally. The right-click > Open workaround does not
work for the "damaged" variant of the error - only xattr does.
Proper Apple notarization is tracked in #25; once it lands, these steps will no longer be required on macOS.
- Verify the binary is on PATH:
which claude/where claude(or the binary name for the agent you're checking). - Restart Agentrium so the app inherits the updated PATH.
- Click Recheck on that agent's row in Settings > Updates.
If the binary is on PATH but Agentrium still can't detect a version, the agent probably doesn't expose one via --version. Agentrium falls back to a PATH probe in that case and marks the agent as installed anyway.
- Ensure Node.js is installed:
node --version - Install Claude Code globally:
npm install -g @anthropic-ai/claude-code - Restart Agentrium
- Check that the agent CLI is authenticated (each agent has its own login flow)
- Try closing and reopening the terminal
- Check the agent's own logs for errors
- Ensure Rust is installed:
rustc --version - Update Rust:
rustup update - Clean and rebuild:
cargo clean && npm run tauri build
Contributions are welcome. Please open a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Anthropic for Claude Code
- OpenAI for Codex
- Cursor for the Cursor CLI
- Google for the Antigravity CLI
- Tauri for the framework
- xterm.js for terminal emulation
- simple-icons for the brand marks
Made for developers who juggle multiple coding agents.