Terminal with session panel (MobaXterm-style), built with GTK 3 + VTE. Catppuccin Mocha theme.
v2 complete, v3 all phases complete. v2: Multi-session Claude agent dashboard using Tauri 2.x + Svelte 5. v3: Multi-project mission control dashboard (All Phases 1-10 complete + sidebar redesign) -- project groups with per-project Claude sessions, session continuity (persist/restore agent messages), team agents panel, terminal tabs, VSCode-style left sidebar (vertical icon rail + expandable drawer panel + always-visible workspace), command palette with group switching. Features: project groups (up to 5 projects per group, horizontal layout, adaptive viewport count), per-project Claude sessions with session continuity, team agents panel (compact subagent cards), terminal tabs (shell/SSH/agent per project), agent panes with structured output, tree visualization with subtree cost and session resume, subagent/agent-teams support, multi-machine support (bterminal-relay WebSocket server + RemoteManager), Claude profile/account switching (switcher-claude integration), skill discovery and autocomplete (type
/in agent prompt), SSH session management, ctx context database viewer, SQLite session persistence with layout restore, live markdown file viewer with Shiki syntax highlighting, 17 themes in 3 groups (4 Catppuccin + 7 Editor + 6 Deep Dark: Tokyo Night, Gruvbox Dark, Ayu Dark, Poimandres, Vesper, Midnight), global font controls (separate UI font [sans-serif] + terminal font [monospace] with live preview), .deb + AppImage packaging, GitHub Actions CI, 138 vitest + 36 cargo tests. Branchv2-mission-control. See docs/v3-task_plan.md for v3 architecture.
git clone https://github.com/DexterFromLab/BTerminal.git
cd BTerminal
./install.sh
The installer will:
~/.local/share/bterminal/bterminal and ctx in ~/.local/bin/~/.claude-context/context.dbRequires Node.js 20+, Rust 1.77+, and system libraries (WebKit2GTK 4.1, GTK3, etc.).
git clone https://github.com/DexterFromLab/BTerminal.git
cd BTerminal
./install-v2.sh
The installer checks all dependencies, offers to install missing system packages via apt, builds the Tauri app, and installs the binary as bterminal-v2 in ~/.local/bin/.
Pre-built .deb and AppImage packages are available from GitHub Releases (built via CI on version tags).
sudo apt install python3-gi gir1.2-gtk-3.0 gir1.2-vte-2.91
bterminal
ctx is a SQLite-based tool for managing persistent context across Claude Code sessions.
ctx init myproject "Project description" /path/to/project
ctx get myproject # Load full context (shared + project)
ctx set myproject key "value" # Save a context entry
ctx shared set preferences "value" # Save shared context (available in all projects)
ctx summary myproject "What was done" # Save session summary
ctx search "query" # Full-text search across everything
ctx list # List all projects
ctx history myproject # Show session history
ctx --help # All commands
Add a CLAUDE.md to your project root:
On session start, load context:
ctx get myproject
Save important discoveries: ctx set myproject <key> <value>
Before ending session: ctx summary myproject "<what was done>"
Claude Code reads CLAUDE.md automatically and will maintain the context database.
Config files in ~/.config/bterminal/:
| File | Description |
|---|---|
sessions.json |
Saved SSH sessions + macros |
claude_sessions.json |
Saved Claude Code configs |
Context database: ~/.claude-context/context.db
| Shortcut | Action |
|---|---|
Ctrl+T |
New tab (local shell) |
Ctrl+Shift+W |
Close tab |
Ctrl+Shift+C |
Copy |
Ctrl+Shift+V |
Paste |
Ctrl+PageUp/Down |
Previous/next tab |
BTerminal v2 can manage agents and terminals running on remote machines via the bterminal-relay binary.
BTerminal (Controller) --WebSocket--> bterminal-relay (Remote Machine)
├── PtyManager (remote terminals)
└── SidecarManager (remote agents)
On each remote machine:
# Build the relay binary
cd v2 && cargo build --release -p bterminal-relay
# Start with token auth
./target/release/bterminal-relay --port 9750 --token <secret>
# Dev mode (allow unencrypted ws://)
./target/release/bterminal-relay --port 9750 --token <secret> --insecure
Add remote machines in BTerminal Settings > Remote Machines (label, URL, token). Remote panes auto-group by machine label in the sidebar. Connections automatically reconnect with exponential backoff (1s-30s cap) on disconnect.
See docs/multi-machine.md for full architecture details.
BTerminal supports OpenTelemetry tracing with optional export to Tempo + Grafana.
# Start the tracing stack
cd docker/tempo && docker compose up -d
# Grafana at http://localhost:9715
# Run BTerminal with OTLP export enabled
BTERMINAL_OTLP_ENDPOINT=http://localhost:4318 npm run tauri dev
Without BTERMINAL_OTLP_ENDPOINT, telemetry falls back to console-only tracing (no network calls). Key Tauri commands (PTY, agent, remote) are instrumented with #[tracing::instrument]. Frontend events (agent lifecycle, errors, cost) route to Rust tracing via IPC bridge.
| Document | Description |
|---|---|
| docs/task_plan.md | v2 architecture decisions, error handling, testing strategy |
| docs/phases.md | v2 implementation phases (1-7 + multi-machine A-D) with checklists |
| docs/findings.md | Research findings (Agent SDK, Tauri, xterm.js, performance) |
| docs/progress.md | Session-by-session progress log (recent) |
| docs/progress-archive.md | Archived progress log (2026-03-05 to 2026-03-06 early) |
| docs/multi-machine.md | Multi-machine architecture (implemented, WebSocket relay, reconnection) |
| docs/v3-task_plan.md | v3 Mission Control redesign: architecture decisions and strategies |
| docs/v3-findings.md | v3 research findings and codebase reuse analysis |
| docs/v3-progress.md | v3 session progress log (All Phases 1-10 complete) |
MIT