Claude Ghost
Claude Ghost macOS 14+

A desk pet that watches your terminal

Claude Code is waiting on you. Now you'll know.

You start a long task, switch to your browser, and come back ten minutes later to find Claude Code stopped almost immediately — asking permission to run one command. Claude Ghost floats above every window and reacts the moment that happens.

Drag the ghost anywhere · resize from the corner · the bubble follows

What it does

Four states, one sticker

Claude Code already announces what it's doing. Claude Ghost just puts that somewhere you can't miss — on top of whatever app you're actually looking at.

you send a prompt
Eyes open. It sits there quietly while Claude works.
permission needed
Eyes close, it shakes, and it makes a sound — and a bubble tells you exactly what's being asked for, so you can decide before you even switch back.
you approve
The shaking stops on its own. Nothing to click.
Claude finishes
A bubble shows what Claude actually said, pulled from the session. It waits until you click it away.

Details that matter

Built to be ignored until it matters

Above everything

Stays on top across every Space and over full-screen apps. It doesn't vanish when you switch.

Costs nothing

0.0% CPU sitting idle. No timers, no polling, no background daemon — it only moves when Claude Code says something.

Out of your way

Drag it anywhere, resize it from the corner, dial the opacity down, or switch on click-through so it can't intercept a click.

No permissions

No Accessibility prompt, no Screen Recording, no network access. Nothing leaves your Mac.

Menu bar too

A menu bar icon mirrors the same state, so you still get the alert with the sticker hidden — handy while screen-sharing.

Your own artwork

Two PNGs decide the resting and alert faces. Swap them for anything you like and rebuild.

Open source

Free, MIT licensed, yours to fork

Star on GitHub

Every line of it — the Swift app, the Claude Code bridge, and this page. Fork it, swap the artwork, or send a pull request.

Install

One script, about a minute

There's no signed download yet, so you build it once from source. The installer handles everything after that.

Open a terminal in the project folder

# wherever you keep it
cd ~/Developer/FloatingLogo

Run the installer, then add the plugin

./Scripts/install-claude-hooks.sh
# then, inside Claude Code
/plugin marketplace add youssefzekricodes/FloatingLogo
/plugin install claude-ghost@claude-ghost

It builds a universal binary, installs Claude Ghost.app to /Applications, registers it with macOS, and connects the Claude Code hooks for you. The ghost shakes once to confirm.

Use Claude Code as normal

Nothing else to configure. Existing sessions pick it up immediately — no restart needed.

macOS 14 Sonoma or later Apple Silicon or Intel Xcode 15+ Claude Code

It must live in /Applications. macOS refuses to register apps that sit in temporary build folders, and the hooks would fire silently into nothing. The installer puts it in the right place.

Undo

Removing it takes one command

rm -rf "/Applications/Claude Ghost.app"
mv ~/.claude/settings.json.floatinglogo-backup ~/.claude/settings.json
rm ~/.claude/hooks/floatinglogo-status.sh

The installer backs your Claude Code settings up before touching them, so restoring is a move, not an edit.