A macOS notch companion that reacts to Claude Code and Codex activity in real-time.
notchi-demo.mp4
What it does
- Reacts to Claude Code and Codex events in real-time (thinking, working, permission requests, compaction, errors, completions)
- Analyzes prompt sentiment via Anthropic or OpenAI APIs to show emotions (happy, elated, sad, neutral, sob)
- Click to expand and see session time and usage quota
- Supports multiple concurrent sessions, each with its own mascot from the Claude or Codex sprite family
- Sound effects for events with support for importable custom sounds (optional, auto-muted when terminal is focused)
- Auto-updates via Sparkle
Requirements
- macOS 15.0+ (Sequoia)
- MacBook with notch
- Claude Code and/or Codex installed
Install
-
Download
Notchi-x.x.x.dmgfrom the latest GitHub Release -
Open the DMG and drag Notchi to Applications
-
Launch Notchi — it auto-installs Claude Code and Codex hooks on first launch (whichever are present)
-
If you use Claude Code, a macOS keychain popup will appear asking to access its cached OAuth token (used for API usage stats). Click Always Allow so it won't prompt again on future launches
-
(Optional) Click the notch to expand → open Settings → paste your Anthropic or OpenAI API key. This enables sentiment analysis of your prompts so the mascot reacts emotionally
-
Start using Claude Code or Codex and watch Notchi react
How it works
Claude Code / Codex --> Hooks (shell scripts) --> Unix Socket --> Event Parser --> State Machine --> Animated Sprites
Notchi registers shell script hooks with Claude Code and Codex on launch. When either agent emits events (tool use, thinking, prompts, permission requests, compaction, session start/end), the hook script sends JSON payloads to a Unix socket. The app parses these events, runs them through a state machine that maps to sprite animations (idle, working, sleeping, compacting, waiting), and uses Anthropic or OpenAI to analyze user prompt sentiment for emotional reactions.
Each session gets its own sprite on the grass island, drawn from the Claude or Codex sprite family depending on which agent it came from. Clicking expands the notch panel to show a live activity feed, session info, and Claude/Codex usage stats.
Contributing
If you have any bugs, ideas, or would like to contribute through pull requests, please check out Contributing to Notchi.
Community Ports
- notchi-for-windows by @AptatoX, a community-made Windows port of Notchi
- pixel-companion by @Emi-Dz, a community-made Windows desktop companion inspired by Notchi
Credits
- Claude Island — design inspiration for the app
- Readout — design inspiration for notchi.app
- Aseprite — sprite design
License
GPL-3.0-only. See LICENSE.