Better Agent Terminal


A Tauri-powered terminal aggregator with multi-workspace support and built-in AI agent integration
Manage multiple project terminals in one window, with built-in Claude Code and Codex agent panels, file browser, git viewer, snippet manager, and remote access — all in a single Tauri app.
Version 3.0 is the Tauri-only release. The Electron runtime has been removed; the app now uses a Rust/Tauri host, a React renderer, and a small bundled Node sidecar only where JavaScript SDK/runtime support is still required.
Download Latest Release
Mobile Apps
Mobile apps require Better Agent Terminal v3.1.3 or later.


Screenshots
Claude Code Agent Panel — Built-in AI agent with permission controls, status line, and streaming output
Terminal — Run persistent terminals alongside your agent for long-running commands and monitoring
File Browser — Browse and preview project files without leaving the app

Git Viewer — View commit history and diffs at a glance

Features
Workspace Management
- Multi-Workspace — Organize terminals by project folders; each workspace binds to a directory
- Drag & Drop — Reorder workspaces freely in the sidebar
- Groups — Categorize workspaces into named groups with a filter dropdown
- Profiles — Save and switch between multiple workspace configurations (local or remote)
- Detachable Windows — Pop out individual workspaces to separate windows; auto-reattach on restart
- Per-Workspace Env Vars — Configure custom environment variables per workspace
- Activity Indicators — Visual dots showing which workspaces have active terminal processes
- Double-click to rename, right-click context menu for all workspace actions
Terminal
- Split-panel layout — 70% main panel + 30% scrollable thumbnail bar showing all terminals
- Multiple terminals per workspace — Powered by xterm.js with full Unicode/CJK support
- Agent presets — Pre-configured terminal roles: Claude Code, Claude Code (worktree), Codex Agent, or plain terminal
- Git worktree isolation — Spawn Claude agents in an isolated worktree to prevent destructive changes to your main working tree
- Tab navigation — Switch between Terminal, Files, and Git views per workspace
- File browser — Search, navigate, and preview files with syntax highlighting (highlight.js)
- Git integration — Commit log, diff viewer, branch display, untracked file list, GitHub link detection
- GitHub panel — Browse PRs and issues directly from the Git tab
- Snippet manager — Save, organize, search, and paste code snippets (SQLite-backed with categories and favorites)
- Markdown preview — Preview
.md files in a dedicated right sidebar panel with live file watching and right-click context menu
- Worker panel (Procfile) — Run multiple processes from a Procfile in a single tab with combined log view and per-process start/stop/restart controls, inspired by Overmind
- Per-terminal prompt history — Access previous commands per terminal session
Claude Code Agent
- Built-in Claude Code via SDK — Runs the agent directly inside the app; no separate terminal needed
- Message streaming with extended thinking blocks (collapsible)
- Permission modes — Multiple levels of tool execution control:
- Default — Approve each tool call individually
- Accept Edits — Auto-approve file edits, prompt for other tools
- Plan mode — Agent proposes a plan file first; approve the plan to auto-execute
- Bypass — Full auto-approval (use with caution)
- Subagent tracking — See spawned subagent tasks with progress indicators, elapsed time, and stall detection
- Session resume — Persist conversations and resume them across app restarts
- Session fork — Branch off from any point in a conversation with pending prompt auto-send
- Rest/Wake sessions — Pause and resume agent sessions from the context menu to save resources
- Effort level — Configure default effort level (high/medium/low) for new agent sessions
- Auto-compact — Automatically compact context when token count exceeds a configurable threshold
Statusline
A configurable status bar at the bottom of the agent panel, with 15 items across three zones (left / center / right):
| Item | Description |
|---|
| Session ID | First 8 chars of SDK session ID (click to resume a past session) |
| Git Branch | Current git branch name |
| Tokens | Total input + output token count (click for context breakdown) |
| Turns | Number of conversation turns |
| Duration | Session duration |
| Context % | Percentage of context window used (color-coded) |
| Cost | Total session cost in USD |
| Workspace | Current workspace name |
| 5h Usage / Reset | 5-hour API rate limit usage and reset countdown |
| 7d Usage / Reset | 7-day API rate limit usage and reset countdown |
| Max Output | Maximum output tokens for current model |
| Cache Eff. | Cache read efficiency percentage (click for cache history with per-turn cost breakdown) |
| Prompts | Link to view prompt history |
Items can be reordered, colored, and toggled on/off via a drag-and-drop template editor in Settings.
Cache Cost Awareness
- Cache history — Per-turn cache read/write breakdown with cost calculations per model (Opus, Sonnet, Haiku)
- Cache TTL countdown — Optional floating badge in the top-right corner showing remaining time for 5-minute and 1-hour cache TTLs; updates every 30 seconds, only appears after 1 minute of idle
- Cache expiry warning — Pre-send confirmation dialog when >150k cached tokens have expired (>1 hour), preventing accidental full-price reprocessing
Account & Usage
- Multi-account switching —
/switch to manage and switch between multiple Claude accounts
- Usage monitoring — Track API rate limits (5-hour and 7-day windows) via Anthropic OAuth or Chrome session key
- Context usage panel — Visualize token usage breakdown by category (code, conversation, tools, memory, MCP, etc.)
UI & Interaction
- Image attachment — Drag-drop or use the attach button (up to 5 images per message)
- Clickable URLs — Markdown links and bare URLs open in the default browser
- Clickable file paths — Click any file path in agent output to preview it with syntax highlighting and search (Ctrl+F)
- Ctrl+P file picker — Fuzzy-search project files and attach them to the conversation context
- Skills & Agents panels — Browse available slash commands and agent configurations in the right sidebar
- Markdown preview search — In-pane Ctrl+F search inside markdown previews and file previews
- Long MCP tool output collapse — Auto-collapse oversized MCP tool results with a one-click expand
- Notifications — Dock badge, sound, and system notifications on agent completion (configurable)
- Update notifications — Automatic check for new releases on GitHub
Codex Agent
Optional alternate agent backend powered by the Codex app-server, managed by the Rust host using the bundled @openai/codex runtime. Pick Codex Agent (or Codex Agent (worktree)) from the agent preset list when creating a terminal.
- GPT-5.5 / 5.4 / 5.3-codex / o4-mini / o3 / GPT-4.1 — Switch models inline; ChatGPT login or OpenAI API key
- Sandbox modes —
read-only, workspace-write, or danger-full-access
- Approval policies —
untrusted, on-request, or never (auto)
- Worktree preset — Spawn Codex in an isolated git worktree, same as the Claude worktree flow
- Session resume — JSONL transcripts under
~/.codex/sessions/ are auto-indexed; resume hits a local cache so re-opening a thread is fast even with months of history
- Inline plan approval — Codex
plan items render as approvable blocks in the panel
Semantic Code Navigation (cx)
Optional integration with cx — a tree-sitter-based CLI that gives agents file overviews, symbol search, definitions, and references without spinning up a language server. Useful for cutting context tokens on large codebases: agents can run cx overview (~20 tokens) before deciding which files to actually read.
When enabled in Settings → Agents → cx semantic navigation, BAT:
- Detects
cx on PATH (or uses a custom binary path)
- Appends a short system-prompt section telling the agent to prefer
cx overview / symbols / definition / references over full file reads
- Sets
CX_CACHE_DIR to a per-app cache directory so repeated queries are fast
Install:
| Platform | Command |
|---|
| macOS (Homebrew) | brew tap ind-igo/cx && brew install cx |
| Cargo | cargo install cx-cli |
| macOS / Linux (script) | curl -sL https://raw.githubusercontent.com/ind-igo/cx/master/install.sh | sh |
| Windows (PowerShell) | irm https://raw.githubusercontent.com/ind-igo/cx/master/install.ps1 | iex |
After installing, run cx lang add <language> for each language you want grammars for (e.g. rust, typescript, python), then toggle the option in BAT settings. The toggle is off by default — agents continue to work normally without cx installed.
Internationalization (i18n)
- English, Traditional Chinese (繁體中文), Simplified Chinese (简体中文)
Keyboard Shortcuts
| Shortcut | Action |
|---|
Ctrl+` (Windows) | Switch to the next BAT window |
Cmd+` (macOS) / Ctrl+` (Linux) | Toggle between Agent terminal and first regular terminal |
Ctrl+←/→ / Cmd+←/→ | Cycle workspace tabs (Terminal / Files / Git) |
Ctrl+↑/↓ / Cmd+↑/↓ | Switch to previous / next workspace |
Ctrl+P / Cmd+P | File picker (search & attach files to agent context) |
Ctrl+N / Cmd+N | Open new window |
Ctrl+Shift+T / Cmd+T | Open the new-terminal quick-pick (choose Shell, Worktree, Claude / Codex agent…) |
Ctrl+Shift+W / Cmd+Shift+W | Close the focused terminal |
Shift+Tab | Switch between Terminal and Agent mode |
Enter | Send message |
Shift+Enter | Insert newline (multiline input) |
Escape | Stop streaming / close modal |
Ctrl+Shift+C | Copy selected text |
Ctrl+Shift+V | Paste from clipboard |
Right-click | Copy (if text selected) or Paste |
Slash Commands
| Command | Description |
|---|
/resume | Resume a previous Claude session from history |
/model | Switch between available Claude models |
/new / /clear | Reset session (clear conversation, fresh start) |