A desk pet that watches your terminal
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
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.
Details that matter
Stays on top across every Space and over full-screen apps. It doesn't vanish when you switch.
0.0% CPU sitting idle. No timers, no polling, no background daemon — it only moves when Claude Code says something.
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 Accessibility prompt, no Screen Recording, no network access. Nothing leaves your Mac.
A menu bar icon mirrors the same state, so you still get the alert with the sticker hidden — handy while screen-sharing.
Two PNGs decide the resting and alert faces. Swap them for anything you like and rebuild.
Open source
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
There's no signed download yet, so you build it once from source. The installer handles everything after that.
# wherever you keep it
cd ~/Developer/FloatingLogo
./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.
Nothing else to configure. Existing sessions pick it up immediately — no restart needed.
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
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.