A living mascot that floats above your windows, reacts to Claude Code and Codex, 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 + Codex 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 assistant 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/Codex │ ──────────────────▶ │ Masko │
│ (terminal) │ │ (menu bar) │
└─────────────┘ └─────────────┘
│ │
│ streams events from hooks/logs, │ 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 Claude Code or Codex (CLI/Desktop). 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 terminals that run Claude Code or Codex. 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 and/or Codex CLI installed
Download the latest .dmg from Releases.
git clone https://github.com/RousselPaul/masko-code.git
cd masko-code
swift build
swift runBoot Masko from source in one terminal:
swift run masko-codeRun a live Codex mascot flow in another terminal:
scripts/codex-mascot-smoke.sh --manualRun the automated 3-step integration check instead:
scripts/codex-mascot-smoke.sh --autoThe automated mode verifies that Masko ingests:
- a Codex question turn as
AskUserQuestion - an escalated approval turn with a persistent
prefix_rulesuggestion - the final completion marker without blank notifications or question-only completion events
The automated mode drives Codex through its own PTY and verifies Masko ingestion. Use --manual if you want to inspect the overlay yourself while the prompts are live.
Sources/
├── 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
extensions/
├── vscode/ # VS Code/Cursor click-to-focus extension
└── jetbrains/ # JetBrains (PyCharm, IntelliJ, etc.) terminal focus plugin
See CONTRIBUTING.md for how to get involved.
MIT License — Copyright (c) 2026 Masko.
Note: This project has no cryptocurrency or token associated with it. Any coin using the Masko or Clippy name is not affiliated with us.