What is Hariari?
An agent orchestration environment. Monitor, steer, and voice-command multiple AI agents across all your projects from one screen.
Hariari is a desktop app for vibe coders who run multiple AI coding agents across multiple projects simultaneously. It gives you a unified cockpit to see what every agent is doing, get notified when they need input, and steer them — by voice or keyboard.
It's not an editor. It's not a terminal emulator. It's the control plane that sits above your agents and projects.
Reading src/renderer/settings.ts...
Reading src/renderer/theme-manager.ts...
Created src/renderer/dark-mode-toggle.ts
Modified src/renderer/settings.ts (+24 -3)
Running tests...
12 passed in 1.3s
Analyzing 8 session-related files...
Found 3 migration candidates...
? Should I also migrate workspace
state to Redis, or keep it in
local JSON files? _
Why Hariari?
You're running Claude Code on your frontend, Codex on the API, another Claude on tests — across three different projects. Agents finish silently. Agents stall. You switch to the wrong terminal tab. Sound familiar?
Hariari solves this by giving you:
- Multi-project monitoring — see every agent across every project in one sidebar
- Smart notifications — configurable visual + auditory alerts when agents need attention
- Voice control — speak to your agents via cloud ASR (bring your own key)
- Real terminals — GPU-accelerated xterm.js, not sandboxed previews
- Linux-first — built for Linux, runs on macOS and Windows too
Supported Agents
Hariari works with any CLI-based AI coding agent. Spawn them in terminal panes, monitor their status, and steer them from one cockpit.
Claude Code
Anthropic's agentic CLI
Codex
OpenAI's coding agent
Gemini CLI
Google's terminal agent
Cline CLI
Autonomous coding agent
OpenCode
Open-source coding agent
Amp CLI
Sourcegraph coding agent
Copilot CLI
GitHub's terminal assistant
Qwen CLI
Alibaba's coding agent
Pi
Minimal extensible coding harness
Agent-aware status
Hariari detects five agent states automatically:
- running — agent is actively processing
- needs input — agent is waiting for your response (pulsing indicator)
- error — agent hit a problem
- complete — agent finished successfully
- idle — agent is stopped or inactive
Features
Everything you need to orchestrate your AI-powered development workflow.
■ Multi-Project Workspaces
Monitor 3-7+ projects simultaneously. Each project gets its own workspace with independent terminal layouts and agent sessions. Switch instantly with zero reload.
◉ Voice-First Input
Cloud ASR with bring-your-own-key. Supports Groq Whisper, OpenAI Whisper, and Deepgram. Command palette accepts voice natively on Linux, macOS, and Windows.
◆ Smart Notifications
Configurable visual and auditory alerts per event type. Pulsing indicators, sound alerts, and worst-status-wins coloring so you never miss when an agent needs attention.
▶ GPU Terminal Rendering
WebGL-accelerated terminal rendering via xterm.js. Real terminal instances, not sandboxed previews. Smooth even with multiple split panes open.
⌧ Command Palette
Keyboard-first UX. Fuzzy-search command palette for every action — switch projects, spawn agents, change layouts, toggle themes. Ctrl+K and go.
▦ Split-Pane Layouts
Flexible horizontal and vertical splits per project. Drag to resize. Each pane shows agent status in a 30px status bar with real-time indicators.
☯ 12 Built-in Themes
Tokyo Night, Dracula, Nord, Gruvbox, Catppuccin, and more. Dark and light variants. Each theme applies to both terminal and chrome.
★ Open Source
AGPL-3.0 licensed. Built with Electron + TypeScript. Contribute on GitHub, fork it, extend it, make it yours.
Cross-platform
Linux-first, runs everywhere. Electron + Chromium GPU compositing delivers consistent performance across platforms. Ships as .deb, .AppImage, .dmg, and .exe.
Voice Control
Speak to your agents. They listen. Cloud ASR with bring-your-own-key — supports Groq, OpenAI, and Deepgram.
What you can do
- Switch projects — "Go to frontend project"
- Approve agent actions — "Yes, approve the migration"
- Spawn agents — "Start Claude on the test suite"
- Navigate — "Open command palette" / "Split pane horizontal"
- Dictate to agents — speak your prompt instead of typing it
How Hariari fits in
Different tools, different jobs. Hariari isn't replacing your editor — it's the command center for your agents.
| Feature | Hariari | Cursor | Claude Code | Warp |
|---|---|---|---|---|
| Multi-agent orchestration | Built-in | — | — | — |
| Voice control | Built-in | — | — | — |
| Multi-project monitoring | Native | — | — | — |
| Code editing | Basic viewer | Advanced | Basic | — |
| Terminal integration | Built-in | Embedded | Native | Advanced |
| Linux-first | Yes | Electron | CLI | Yes |
| Open source | AGPL-3.0 | — | CLI only | — |
| Price | Free | $0-40/mo | $20-150/mo | $0-50/mo |
| Best for | Agent orchestration | AI-assisted editing | Single-agent CLI | Terminal productivity |
These are great tools — they solve different problems. Hariari works alongside them.
Documentation
Everything you need to know about using, configuring, and extending Hariari.
Architecture
Hariari is an Electron app with three processes:
Main Process
Node.js backend. Manages PTY sessions, agent lifecycle, git operations, file I/O, notifications, and auto-updates. Communicates via 83 IPC channels.
Renderer Process
Chromium frontend. Terminal rendering (xterm.js + WebGL), split-pane layout engine, sidebar, command palette, file viewer (CodeMirror 6), voice capture.
Preload Bridge
Secure IPC bridge. Exposes a typed window.api surface to the renderer. All calls use ipcRenderer.invoke() with input validation.
Projects & Workspaces
Each project in Hariari maps to a directory on your filesystem. Projects are stored in ~/.hariari/projects.json.
Creating a project
- Click "New Project" in the sidebar or use the command palette (
Ctrl+Shift+P) - Select a directory — Hariari will detect if it's a git repo
- The project appears in the sidebar with a letter avatar
Workspace persistence
Each project saves its own workspace state — layout, agents, and terminal history. When you switch projects, Hariari restores exactly where you left off. State is stored at ~/.hariari/projects/{projectId}/state.json.
Multi-project workflow
Run 3-7+ projects simultaneously. Workspaces stay alive in memory when switching — terminals keep running, agents keep processing. The sidebar shows worst-status-wins coloring so you always know which project needs attention.
Terminals
Hariari uses xterm.js 6 with the WebGL addon for GPU-accelerated terminal rendering. Each terminal pane runs a real PTY session via node-pty.
Terminal defaults
Rows: 30
Scrollback: 10,000 lines
Renderer: WebGL (GPU-accelerated)
Font: JetBrains Mono, 14px
Frame coalesce: 16ms (60fps)
Copy & paste
Ctrl+C— Copy selected text (or send SIGINT if no selection)Ctrl+V— Paste from clipboardCtrl+Shift+V— Image-aware paste (saves screenshot as temp file)- Right-click for context menu
Split-Pane Layouts
Hariari uses a binary split-pane tree for flexible terminal layouts. Each pane can be split horizontally or vertically, and you can drag dividers to resize.
Layout presets
Access via the command palette (Ctrl+Shift+P → "Layout"):
- Single — one pane, full width
- Side by Side — two panes, vertical split
- Stacked — two panes, horizontal split
- 2x2 Grid — four panes in a grid
- Plus 4 additional preset configurations
Focus navigation
Use Ctrl+Alt+Arrow keys to move focus between panes without the mouse.
Keyboard Shortcuts
All shortcuts are customizable via ~/.hariari/keybindings.json.
| Shortcut | Action |
|---|---|
Ctrl+Shift+P | Open command palette |
Ctrl+P | Quick open file |
Ctrl+B | Toggle sidebar |
Ctrl+Shift+E | Open file viewer |
Ctrl+Shift+G | Git changes panel |
Ctrl+Shift+A | Toggle Single Preview (all agents) |
Ctrl+Shift+N | New shell terminal |
Ctrl+Shift+D | Split pane vertically |
F3 (hold) | Voice dictation (push-to-talk) |
F4 (hold) | Voice commands |
Ctrl+Shift+F2 | Pop out file viewer to new window |
Ctrl+= / Ctrl+- | Zoom in / out |
Ctrl+0 | Reset zoom |
Ctrl+Alt+Arrows | Focus navigation between panes |
Command Palette
Press Ctrl+Shift+P to open the fuzzy-search command palette. 58 commands across 8 categories:
Agent
Spawn, list, kill
Layout
Split, close, equalize
File
Open, find, git changes
Theme
12 themes to choose
Git
Stage, commit, push
Voice
Dictation, commands
View
Sidebar, focus, zoom
General
Settings, about
Git Integration
Hariari has built-in git support — no external tools needed.
Source control panel
Press Ctrl+Shift+G to open the git changes panel. View staged/unstaged/untracked files, stage or discard individual changes, write commit messages, and push — all from within Hariari.
Supported operations
- Status — staged, unstaged, and untracked file lists
- Diff — side-by-side diff viewer (CodeMirror MergeView)
- Stage / Unstage — per-file or all at once
- Discard — revert individual files or all changes
- Commit — with message and optional amend
- Push / Pull — with upstream setup support
- Log — commit history with graph visualization (up to 50 commits)
- Ahead / Behind — track divergence from remote
Agent worktrees
When spawning an agent with worktree isolation enabled, Hariari creates a separate git worktree and branch for each agent. This means agents work in complete isolation — no conflicts between concurrent agents on the same repo.
- Each agent gets its own branch (auto-named based on prompt)
- Merge back to the base branch when the agent completes
- View per-agent diffs before merging
- Automatic cleanup of worktrees on agent exit
File Viewer & Editor
Press Ctrl+Shift+E to open the built-in file viewer. It supports two modes:
Files mode
- File tree with expand/collapse folders
- CodeMirror 6 editor with syntax highlighting
- Edit mode for making changes (toggle with button)
- Pop out to a separate window (
Ctrl+Shift+F2)
Supported languages
Voice Input
Hariari supports two voice modes, activated by holding a key:
| Mode | Key | What it does |
|---|---|---|
| Dictation | F3 (hold) | Transcribes speech to text and types it into the active terminal |
| Voice Commands | F4 (hold) | Listens for commands and executes them (switch project, spawn agent, split pane, etc.) |
Transcription providers (BYOK)
Hariari uses cloud ASR with a bring-your-own-key model. Configure your preferred provider and API key in the voice settings (~/.hariari/voice-settings.json).
- Groq Whisper — fast cloud transcription via Groq API
- OpenAI Whisper — OpenAI's speech-to-text API
- Deepgram Nova-2 — real-time streaming transcription
- Web Speech API — built-in browser fallback, no API key needed
Voice commands
20+ built-in voice commands:
- "new shell" — open a shell terminal
- "new claude" / "new codex" / "new gemini" — spawn an agent
- "split vertical" / "split horizontal" — split the current pane
- "close pane" — close the focused pane
- "toggle sidebar" — show/hide sidebar
- "zoom in" / "zoom out" — adjust zoom level
- "theme [name]" — switch to a named theme
Themes
12 built-in themes. Switch via the command palette (Ctrl+Shift+P → "Theme") or voice command ("theme dracula").
Dark themes
Light themes
Skills & Plugins
Hariari can install AI skills (coding standards, TDD workflows, security rules) directly into your agents' configuration directories.
How it works
- Hariari detects which languages your project uses
- Browse the skills manifest for relevant skills
- Install skills to agent config directories (e.g.,
~/.claude/skills/,~/.gemini/rules/) - Your agents automatically pick up the new rules on next run
Skill categories
- Coding standards — language-specific style, naming, and patterns
- Testing — TDD workflows, coverage targets, test organization
- Security — OWASP rules, secret detection, input validation
- Git workflow — commit conventions, PR templates
- Agent orchestration — multi-agent patterns, parallel execution
Notifications
Hariari provides two notification systems:
Toast notifications (in-app)
- Slide in from the right side
- Auto-dismiss (hover to pause)
- Types: info, success, warning, error
- Max 5 visible, FIFO dismissal
Desktop notifications
Uses the OS native notification system (Electron Notification API). Configurable per event type — you can choose which events trigger desktop alerts vs. in-app toasts.
Auto-Update
Hariari checks for updates from GitHub Releases automatically on startup.
| Platform | Update method |
|---|---|
| Linux (AppImage) | Automatic download + install |
| Linux (.deb) | Manual — prompted with download link |
| macOS (.dmg) | Automatic download + install |
| Windows (.exe) | Automatic download + install |
Configuration Files
All configuration is stored in ~/.hariari/:
state.json # Window bounds, sidebar state
projects.json # Project list & metadata
settings.json # User preferences
keybindings.json # Custom keyboard shortcuts
voice-settings.json # Voice provider & API key
projects/
{id}/state.json # Per-project workspace state
Tech Stack
Electron 33
Desktop runtime
TypeScript 5.7
Strict mode
xterm.js 6
Terminal + WebGL
CodeMirror 6
File editor
node-pty
PTY management
electron-vite
Build system
Getting Started
Download Hariari and start orchestrating your agents in under a minute.
One command install
Or install globally: npm install -g hariari
Also available as .deb .AppImage .dmg .exe
Quick start
- Run
npx hariarior download from Releases - Create a project (point it at your repo)
- Press
Ctrl+Nto spawn an agent pane - Start your agent (
claude,codex,aider) - Repeat for more projects and agents
Stay updated
Get notified about launches and updates:
No spam. Unsubscribe anytime.
You're in. We'll email you at launch.
Released under the AGPL-3.0 License. © 2026 Hariari.