A native desktop terminal manager for orchestrating multiple coding-agent CLIs including Claude Code, Codex, Cursor, and Antigravity. Developers can spawn agents in tabs or grids, save configuration profiles, restore sessions across restarts, manage git worktrees, and review code hunks through an IDE-like interface built with Tauri.
A Modern Multi-Instance Terminal Manager for Claude Code
README
Overview
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.
Supported Agents
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.
Screenshots
Features
Multi-agent architecture
- 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
Multi-terminal management
- 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
Smart grid view
- 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
Configuration profiles
- 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
Git worktree lifecycle
- 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
Hunk review
- IntelliJ-style verified review cockpit for staging individual hunks
- Diff view with hunk-level accept/reject
- Changelists for grouping related diffs
Session restore
- 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
Modern UI/UX
- 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
Auto-updates
- Automatic app update checks on startup with a background download
- Manual Recheck for each agent CLI in Settings > Updates
Command hints, snippets, prompt editor
- 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
Installation
Prerequisites
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
Download the latest release for your platform from the Releases page:
| Platform | Installer | Description |
|---|---|---|
| Windows | Agentrium_1.33.5_x64-setup.exe | NSIS Installer (Recommended) |
| Windows | Agentrium_1.33.5_x64_en-US.msi | MSI Installer |
| macOS (Apple Silicon) | Agentrium_1.33.5_aarch64.dmg | DMG for M1/M2/M3/M4 Macs |
| macOS (Intel) | Agentrium_1.33.5_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.
First Launch
- 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
Usage
Creating a terminal
- 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
Managing terminals
- 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.
Configuration profiles
- 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
Hints panel
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
Keyboard Shortcuts
| 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) |
Building from Source
Prerequisites
- Node.js v22+
- Rust (latest stable)
- Visual Studio Build Tools (Windows)
Steps
-
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 buildInstallers 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)
Tech Stack
| 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 |
Project Structure
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
Troubleshooting
Security warnings on first launch
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 - "Windows protected your PC" (SmartScreen)
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.
macOS - "Agentrium is damaged and can't be opened"
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.app
Then 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.
An agent CLI shows "Not installed"
- 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.
Claude Code not detected during setup
- Ensure Node.js is installed:
node --version - Install Claude Code globally:
npm install -g @anthropic-ai/claude-code - Restart Agentrium
Terminal not responding
- 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
Build errors
- Ensure Rust is installed:
rustc --version - Update Rust:
rustup update - Clean and rebuild:
cargo clean && npm run tauri build
Contributing
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
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- 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
Comments (0)
Sign in to join the discussion.
No comments yet
Be the first to share your take.