OVARI TERMINALv0.2.0
AI CLI workspace

Claude Code, Codex and any shell running at once, each in its own working directory. Split panes, tabbed workspaces, live token and cost meters — and an interface your desktop shows through.

Electron 43 · xterm 6 · node-pty — environment values are never written to disk.

claudecodexsplitBroadcast4 sessions
api-gateway⎇ main · ~/repos/api-gateway$0.42
· Refactoring the auth flow
  Read src/auth/session.ts (312 lines)
  Edit src/auth/session.ts
   24 tests passed in 1.8s
> rate limit middleware
infra⎇ deploy · ~/repos/infra128k
PS ~/repos/infra> codex
 >_ OpenAI Codex
  model: gpt-5.6-sol high
  directory: ~/repos/infra
· Ask Codex to do anything
concurrent sessions
lines of scrollback
scost meter refresh
0secrets on disk

01 What you feel on a working day

Not another terminal emulator. It is built for supervising several AI agents at once: each one sees a repository, and you see all of them.

02 Getting started

Run it in development
npm install
npm run dev
Build an installer
npm run dist
# lands in release/
Cut a release
npm run release minor
npm run downloads

Installers have to be built on the OS they target: node-pty is a native module shipped with N-API prebuilds.

03 Security

A terminal runs shell commands, so the trust boundary is not decoration. The renderer is treated like any other untrusted input.

A sandboxed interface

sandbox: true, contextIsolation: true, nodeIntegration: false. The renderer has no Node access at all; the entire surface it can reach is a frozen window.terminalApi.

Validated IPC

Every channel does the same three things in order: check that the sender is this window main frame, validate the raw payload, then check that the session really belongs to the caller.

Secrets stay off the disk

Environment values have no representation in the saved state — only the names a preset needs. Layout, tab names and presets go into workspace.json, written atomically.

Closed outward

A packaged build carries a CSP, window opens and navigations are denied, and an external link only opens over HTTPS with no credentials in the URL.

Download it and open all six.

Windows installer, macOS DMG, Linux AppImage. Or build from source — the repository has everything.