geist

agent workspace · claude code

Your coding agents, side by side.

Geist keeps your Claude Code sessions for as long as the work takes. One per folder, grouped by project, sorted by what they need from you, with every agent they start in plain sight. On your own Claude subscription.

brew trust lixsldotnet/tap && brew install --cask lixsldotnet/tap/geist
curl -fsSL https://getgeist.dev/install.sh | sh
irm https://getgeist.dev/install.ps1 | iex

Geist 3.0 for macOS (Apple silicon), Linux and Windows · runs on your own Claude subscription · all downloads

Geist with three projects in the left bar, weather-cli on this computer and on a server called lab, and a notes-api session open with its context ring in the prompt box and the usage bar in the top bar.

One session per folder.

Long-lasting, like the work. Open it from a terminal, keep it for days, or throw it away when it was only a quick question.

  1. 01
    ~/code/petshop $ geist

    Start where you are

    A new session starts in the folder and the window comes to the front, the session under its project. A second folder gets its own group.

  2. 02
    $ geist --resume

    Keep it for days

    Pick a session up again from any terminal, even one started with claude. Jump to any prompt, search it, compact or fork it. Changes are your folder's git changes.

  3. 03
    $ geist --temp

    Or throw it away

    An anonymous session in a fresh folder. Close it and the folder, the session and its transcript are gone.

Geist tells you what a session needs.

Waits for youA permission, a question or a plan. It moves to the top of its project.
WorkingClaude and its agents are at it. It sits at the bottom until it needs you.
New answerA turn finished that you have not looked at yet.
IdleSeen and quiet, ready for the next prompt.

Sorted by what it needs

Sessions that wait for you come first and glide to the top when they start waiting. Then the idle ones, then the ones still working.

The left bar: three projects, weather-cli with a session on this computer and one on the server lab, a new answer marked, stopped sessions in yellow, changes per session, and the archive in one box at the bottom.

Every agent in plain sight

Subagents, background agents and whole orchestrated runs show up live as a tree: the session, its orchestrator, the workers. Read along in any agent's transcript and follow the reports between them.

The Agents tab: an orchestrator with two review workers and two background readers, each ghost in its own colour, and one worker's transcript.

A browser the agent drives

When Claude opens your dev server, a Browser tab shows up in the session, one per page it keeps open. Links it gives you, like a design system or an artifact, open in a tab too.

Browser 1 of a session: the PetShop owners page with a form that flags a missing @, Browser 2 next to it.

One project, every machine

Geist talks to this computer and your servers at once. A repo that lives on several of them is one group in the left bar, its sessions sorted together and marked by where they run. The + asks where the next one starts.

The weather-cli group with a session on this computer and one on the server lab, next to the places list: this computer and lab, both connected.

Changes as git sees them

Every uncommitted file with its diff, side by side if you like. Comment on a line and send it to the agent, commit, push.

A side-by-side diff that adds an email check to OwnerService.Add.

Here or on a server

A short wizard picks the agent and logs it in, on this computer or a Linux server it keeps up to date.

The setup wizard: Claude Code ready on this computer, Codex and Gemini not yet, and the choice to keep Geist running in the background.

Artifacts in their own tab

The claude.ai artifacts and design systems Claude links collect in the session's Artifacts tab and open right there, across the whole tab.

The Artifacts tab: claude.ai design systems, mockups and checklists Claude linked in the session.

Every command and skill

Type / for the session's slash commands and skills, built-in, your own and from plugins, straight from Claude Code.

The command list in the prompt box: design commands and skills matching /de.

Made for long sessions

An outline of your prompts, search across the whole session, a context ring in the prompt box with Compact and Fork, your plan's usage in the top bar.

The session header with the outline of your prompts open, each with its time and a button to go back to it.

One service, geistd.

Your setup comes along

Import CLAUDE.md, skills, agents, commands, hooks and MCP servers in one click. In projects Geist uses the .claude/ folder, like Claude Code.

Pinned and verified

geistd downloads the official agent CLI release it is tested with and checks its checksum. Your login stays in the CLI's own flow. Geist local runs open models on your own hardware instead.

One folder

Everything Geist creates on a machine lives in ~/.geist. Remove it and Geist is gone.

Get Geist.

brew trust lixsldotnet/tap && brew install --cask lixsldotnet/tap/geist
curl -fsSL https://getgeist.dev/install.sh | sh
irm https://getgeist.dev/install.ps1 | iex

Geist 3.0 · the apps are not signed yet: Homebrew and the install scripts take care of that.

Built in C# on .NET 11 and Electron.NET.