No description
Find a file
DexterFromLab 1a123f6835 Remove aider-runner.mjs from wrong path (build artifact goes to sidecar/dist/)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 16:14:01 +01:00
.claude chore: rebrand to Agent Orchestrator + fix pragma busy_timeout crash 2026-03-12 11:42:13 +01:00
.github/workflows ci: add E2E test workflow with xvfb and LLM-judged test gating 2026-03-12 11:10:50 +01:00
.vscode chore: add VS Code workspace config with Peacock color 2026-03-05 23:14:39 +01:00
docker/tempo feat(telemetry): add OpenTelemetry tracing with optional OTLP export to Tempo 2026-03-08 20:34:19 +01:00
docs docs: add comprehensive E2E testing facility documentation 2026-03-12 11:10:50 +01:00
v2 Remove aider-runner.mjs from wrong path (build artifact goes to sidecar/dist/) 2026-03-12 16:14:01 +01:00
.gitignore fix: track plugin-host source and add 35 sandbox security tests 2026-03-12 11:10:50 +01:00
bterminal.py Migrate to Gtk.Application for proper app lifecycle and custom icon 2026-03-05 13:12:30 +01:00
bterminal.svg Add bterminal icon to installer and desktop entry 2026-03-05 13:25:03 +01:00
btmsg feat(orchestration): multi-agent communication, unified agents, env passthrough 2026-03-11 14:53:39 +01:00
bttask feat: add optimistic locking for bttask and error classification 2026-03-12 11:10:50 +01:00
CHANGELOG.md docs: update CHANGELOG and TODO for E2E fixture/judge fixes 2026-03-12 11:10:50 +01:00
CLAUDE.md docs: add comprehensive E2E testing facility documentation 2026-03-12 11:10:50 +01:00
ctx fix: resolve medium/low audit findings across backend and frontend 2026-03-08 20:10:54 +01:00
install-v2.sh chore: add no-implicit-push rule and StartupWMClass to desktop entry 2026-03-09 17:27:09 +01:00
install.sh Add bterminal icon to installer and desktop entry 2026-03-05 13:25:03 +01:00
README.md docs: rewrite README for Agent Orchestrator v3 2026-03-12 11:51:05 +01:00
screenshot.png docs: rewrite README for Agent Orchestrator v3 2026-03-12 11:51:05 +01:00
TODO.md docs: update CHANGELOG and TODO for E2E fixture/judge fixes 2026-03-12 11:10:50 +01:00

Agent Orchestrator

Multi-project agent dashboard for orchestrating Claude AI teams across multiple codebases simultaneously. Built with Tauri 2.x (Rust) + Svelte 5 + Claude Agent SDK.

Agent Orchestrator

What it does

Agent Orchestrator lets you run multiple Claude Code agents in parallel, organized into project groups. Each agent gets its own terminal, file browser, and Claude session. Agents communicate with each other via built-in messaging (btmsg) and coordinate work through a shared task board (bttask).

Key Features

Multi-Agent Orchestration

  • Project groups — up to 5 projects side-by-side, adaptive layout (5 @ultrawide, 3 @1920px)
  • Tier 1 agents — Manager, Architect, Tester, Reviewer with role-specific tabs and auto-generated system prompts
  • Tier 2 agents — per-project Claude sessions with custom context
  • btmsg — inter-agent messaging CLI + UI (Activity Feed, DMs, Channels)
  • bttask — Kanban task board with role-based visibility (Manager CRUD, others read-only)
  • Auto-wake scheduler — 3 strategies (persistent, on-demand, smart) with configurable wake signals

Per-Project Workspace

  • Claude sessions with session continuity, anchors, and structured output
  • Terminal tabs — shell, SSH, agent preview per project
  • File browser — CodeMirror 6 editor (15 languages), PDF viewer, CSV table
  • Docs viewer — live Markdown with Shiki syntax highlighting
  • Context tab — LLM context window visualization (token meter, turn breakdown)
  • Metrics panel — live health, SVG sparkline history, session stats

Multi-Provider Support

  • Claude (primary) — via Agent SDK sidecar
  • Codex — OpenAI Codex SDK adapter
  • Ollama — local models via native fetch

Production Hardening

  • Sidecar supervisor — crash recovery with exponential backoff
  • Landlock sandbox — Linux kernel process isolation for sidecar
  • FTS5 search — full-text search with Spotlight-style overlay (Ctrl+F)
  • Plugin system — sandboxed runtime with permission gates
  • Secrets management — system keyring integration
  • Notifications — OS + in-app notification center
  • Agent health monitoring — heartbeats, dead letter queue, audit log
  • Optimistic locking — bttask concurrent access protection
  • Error classification — 6 error types with auto-retry logic
  • TLS relay — encrypted WebSocket for remote machines
  • WAL checkpoint — periodic SQLite maintenance (5min interval)

Developer Experience

  • 17 themes — Catppuccin (4), Editor (7), Deep Dark (6)
  • Keyboard-first UX — Command Palette (Ctrl+K), 18+ commands, vi-style navigation
  • Claude profiles — per-project account switching
  • Skill discovery — type / in agent prompt for autocomplete
  • ctx integration — SQLite context database for cross-session memory

Testing

  • 444 vitest + 151 cargo + 109 E2E tests
  • E2E engine — WebDriverIO + tauri-driver, Phase A/B/C scenarios
  • LLM judge — dual-mode CLI/API for semantic assertion (claude-haiku)
  • CI — GitHub Actions with xvfb + LLM-judged test gating

Architecture

Agent Orchestrator (Tauri 2.x)
├── Rust backend (src-tauri/)
│   ├── Commands: groups, sessions, btmsg, bttask, search, secrets, plugins, notifications
│   ├── bterminal-core: PtyManager, SidecarManager, EventSink trait
│   └── bterminal-relay: WebSocket server for remote machines (+ TLS)
├── Svelte 5 frontend (src/)
│   ├── Workspace: ProjectGrid, ProjectBox (per-project tabs), StatusBar
│   ├── Stores: workspace, agents, health, conflicts, wake-scheduler, plugins
│   ├── Adapters: claude-bridge, btmsg-bridge, bttask-bridge, groups-bridge
│   └── Agent dispatcher: sidecar event routing, session persistence, auto-anchoring
└── Node.js sidecar (sidecar/)
    ├── claude-runner.mjs (Agent SDK)
    ├── codex-runner.mjs (OpenAI Codex)
    └── ollama-runner.mjs (local models)

Installation

Requires Node.js 20+, Rust 1.77+, WebKit2GTK 4.1, GTK3.

git clone https://github.com/DexterFromLab/agent-orchestrator.git
cd agent-orchestrator/v2
npm install
npm run build:sidecar
npm run tauri:dev

Build for distribution

npm run tauri:build
# Output: .deb + AppImage in target/release/bundle/

Configuration

Config: ~/.config/bterminal/groups.json — project groups, agents, prompts (human-editable JSON).

Database: ~/.local/share/bterminal/ — sessions.db (sessions, metrics, anchors), btmsg.db (messages, tasks, agents).

Multi-Machine Support

Agent Orchestrator --WebSocket/TLS--> bterminal-relay (Remote Machine)
                                      ├── PtyManager (remote terminals)
                                      └── SidecarManager (remote agents)
cd v2 && cargo build --release -p bterminal-relay
./target/release/bterminal-relay --port 9750 --token <secret> --tls-cert cert.pem --tls-key key.pem

Keyboard Shortcuts

Shortcut Action
Ctrl+K Command Palette
Ctrl+M Messages (CommsTab)
Ctrl+B Toggle sidebar
Ctrl+, Settings
Ctrl+F Full-text search
Ctrl+1-5 Focus project by index
Escape Close overlay/sidebar

Documentation

Document Description
docs/v3-task_plan.md Architecture decisions and strategies
docs/v3-progress.md Session progress log
docs/v3-release-notes.md v3.0 release notes
docs/e2e-testing.md E2E testing facility documentation
docs/multi-machine.md Multi-machine relay architecture

License

MIT