Project-first terminal workspace

Aya

A free, open-source desktop app for long-lived Claude Code, Codex, Aider, and shell sessions organized by project.

Projects Switch repos without killing terminals.
Agents Claude, Codex, Aider, Gemini, shell.
Local Real interactive PTYs, no proxy layer.
Aya logo
Aya desktop app showing terminal sessions organized by project
01 Open each repo as a project workspace.
02 Keep terminals alive while you move around.
03 Jump back through project, terminal, and output search.
04 Let agents signal status through a small local CLI.

Built for agents you keep around.

Aya is for the workflow where a session from Monday still matters on Wednesday. Projects are the top-level unit; terminals and agents live inside them.

Project-first

Top tabs are real project directories. Each project has its own shells, agent sessions, branch status, and recent output.

Agent-agnostic

Aya launches official CLIs in normal interactive terminals, so Claude Code, Codex, Aider, and custom presets behave as expected.

No forced worktrees

Use a normal checkout, or open each worktree as another project when that is the shape of the work.

Terminal-native from every side.

The aya helper opens the current directory in the desktop app, focuses known projects, and gives harnesses a local way to report status without scraping provider state.

~/Projects/aya
$ aya .
opens this repo as a project

$ aya status waiting "Needs approval"
marks the active agent as waiting

$ aya notify --title "Aya" "Tests passed"
sends a desktop notification from the current pane

Build Aya locally.

The current development flow produces a macOS app, DMG, and zip. Signed and notarized builds are supported through electron-builder.

git clone https://github.com/khasinski/aya.git
cd aya
npm install
npm run package