A living mascot that floats above your windows, reacts to Claude Code, and lets you handle everything without leaving your flow.
Download · Website · Custom Mascots
| Feature | Description | |
|---|---|---|
| 🎭 | Animated overlay | A mascot that floats above all windows and reacts to Claude Code state — click or hover to interact |
| 🔐 | Permission handling | Approve, deny, or defer tool use requests from a speech bubble — select with ⌘1-9, permissions stack in a queue |
| 💬 | Question answering | Answer Claude's questions directly from the overlay |
| 📋 | Plan review | Review and approve plans without opening your terminal |
| 📊 | Session tracking | Monitor active sessions, subagents, and status at a glance |
| 🔔 | Notification dashboard | Priority levels, resolution tracking, color-coded activity feed |
| 🖥️ | Find the right terminal | Jump to the correct terminal tab — supports 13 terminals and IDEs including iTerm2, Ghostty, VS Code, Cursor, and more |
| 🔀 | Session switcher | Double-tap ⌘ to switch between Claude Code sessions |
| 😴 | Snooze | Right-click to hide the mascot for 15 min, 1 hour, or indefinitely |
| Resizable | Drag to resize or pick a preset (S / M / L / XL) from the context menu | |
| 🔄 | Auto-updates | Built-in Sparkle updates — always on the latest version |
┌─────────────┐ hook events ┌─────────────┐
│ Claude Code │ ──────────────────▶ │ Masko │
│ (terminal) │ │ (menu bar) │
└─────────────┘ └─────────────┘
│ │
│ fires hooks on tool use, │ updates mascot animation,
│ sessions, notifications │ shows permission prompts,
│ │ tracks sessions
▼ ▼
~/.claude/settings.json local HTTP :49152
- Download the app — Install the DMG. Lives in your menu bar, no dock clutter.
- Grant accessibility — First launch installs Claude Code hooks automatically into
~/.claude/settings.json. - Pick a mascot — Choose the default Masko or bring your own from masko.ai.
- Start coding — Open a terminal, run Claude Code. Your mascot springs to life.
All shortcuts work globally — no need to focus the app.
| Shortcut | Action |
|---|---|
⌘M |
Toggle dashboard (customizable in Settings) |
⌘1-9 |
Select Nth pending permission |
⌘Enter |
Approve selected permission |
⌘Esc |
Deny / dismiss permission |
⌘L |
Collapse / defer topmost permission |
Double-tap ⌘ |
Open session switcher (2+ sessions) |
↑ / ↓ |
Navigate session switcher |
Tab / Shift+Tab |
Cycle sessions |
Enter |
Confirm session selection |
Esc |
Close session switcher |
The focus toggle shortcut can be rebound to any key combination in Settings.
Right-click the mascot to open the context menu — snooze, resize, or close the overlay.
The default Masko fox is included. Want your own character? Create one on masko.ai with AI-generated animations for every state (idle, working, attention). Export and load it into the desktop app in one click.
Masko works with any terminal that runs Claude Code. Terminal focus (⌘M) support varies by app:
| Level | App | How |
|---|---|---|
| Exact tab | VS Code, VS Code Insiders, Cursor, Windsurf, Antigravity | IDE extension (auto-installed) |
| Exact tab | iTerm2, Terminal.app | AppleScript TTY matching |
| App focus | Ghostty, Kitty, WezTerm, Alacritty, Warp, Zed | Process activation |
Click a session in the dashboard or click the mascot overlay to jump to the right terminal.
- macOS 14.0+ (Sonoma)
- Apple Silicon or Intel Mac
- Claude Code installed
Download the latest .dmg from Releases.
git clone https://github.com/RousselPaul/masko-code.git
cd masko-code
swift build
swift runSources/
├── App/ # App entry point & lifecycle
├── Models/ # Data models (sessions, events, hooks)
├── Services/ # HTTP server, hook installer, update checker
├── Stores/ # Observable state (sessions, notifications)
├── Views/ # SwiftUI views (overlay, permission prompt, dashboard)
├── Utilities/ # Helpers
└── Resources/ # Assets, images, app icon
scripts/ # DMG packaging scripts
vscode-extension/ # IDE click-to-focus extension
See CONTRIBUTING.md for how to get involved.
MIT License — Copyright (c) 2026 Masko.