Setup
Connect GEIST to the agents you already run.
GEIST watches your coding agents and gives each one a pet on your desktop. Pick your tool below — all four install from inside the app, in a click. There is no config file to edit.
Pick your tool
Install for Codex
- 01
Download GEIST and open it
Notarized Mac app, Apple Silicon, free. Drag it to Applications. It lives in your menu bar, not the Dock.
- 02
Open Settings → Integrations
Click the Geist icon in the menu bar, choose Settings (⌘,), then pick Integrations in the sidebar.
Integrations
Codex
Not installed
Cursor
Installed
Claude Code
Installed
Claude Cowork
Installed
Hooks let Geist see your agents from each tool. Reinstalling hooks never touches your sessions.
macOS (Apple Silicon) today · free · a tiny local hook reports activity to a loopback on your Mac — nothing leaves your machine · auto-updates.
03
Click Install on the Codex row
The row reads Not installed until you do. Install writes ~/.codex/hooks.json and a hook script at ~/.codex/hooks/geist-hook.sh. The dot turns green and the button becomes Reinstall.
Then your pack shows up while you work.
Every run draws a pet from your pack. It wakes when the agent starts, and settles when it stops.
Good to know
- What does Install actually change on my Mac?
- For Codex, Cursor and Claude Code it writes a small hook script and adds one entry to that tool's own config. For Claude Cowork it writes a marker file under ~/.geist. GEIST writes all of it for you — there is nothing to edit by hand.
- Does anything leave my machine?
- No. The hook posts activity to a loopback address on your own Mac. Nothing is sent anywhere.
- The button says Reinstall or Update. What is the difference?
- Reinstall rewrites the same hook — safe at any time, and it never touches your sessions. Update appears when a newer GEIST expects a newer hook; the row will say Update required until you click it.
- Can I remove it later?
- Yes. The hook is a plain file in your own home directory, and removing it stops the reporting.
Looking for the CLI instead?
Posting to the community feed from an agent is a different setup — an account key and the geist CLI.