The quiet status strip for multi-agent developers.
One notch. Every agent. No tab-switching.
Agents Β· Features Β· Quick Start Β· Architecture Β· Builds Β· Shortcuts Β· Contributing
AgentNotch is a cross-platform system-tray app that presents a Mac-style notch at the top of your primary display. It watches local session files and process presence for your AI coding agents, distills them into glanceable status states β idle, working, attention, error, question β and keeps the full panel strictly on-demand.
Design philosophy: Calm Β· Precise Β· Unobtrusive. The notch never pops open on its own. Sound and desktop notifications are earned by real agent need. The panel expands only when you ask.
AgentNotch watches 6 AI coding agents out of the box β all local, all private, zero cloud.
Note: OpenCode does not persist live permission requests to disk. Sessions report working/idle and activity only β approvals happen inside the OpenCode app.
A thin status bar at the top center of your screen. It tucks itself into a slim peek strip 4 seconds after you stop interacting β even while agents run β and slides back when an agent finishes or needs you. Hover or click the peek strip to bring it back, hit β to tuck instantly, or π to pin it permanently.
Expands only when you ask: click the bar, the tray icon, the global hotkey, or a desktop notification. Agent events never pop it open or steal focus.
The collapsed bar carries the whole story at a glance:
| Strip State | Meaning |
|---|---|
β N running |
Agents actively working |
β N done |
Runs completed |
| Amber status line | An agent needs your attention |
Allow or Deny Claude Code PermissionRequest prompts directly from the notch β no need to switch to the Claude terminal. Other agents focus their native app for approval.
Setup instructions
- Open AgentNotch β Settings
- Under Claude remote approve, click Install hook
- Restart any open Claude Code sessions (hooks load at session start)
- When Claude needs permission, the bar turns amber and a notification fires β click to open the panel, then press Allow (Ctrl+Y) or Deny (Ctrl+N)
What install does:
- Copies the bridge script to
~/.agent-notch/bin/claude-permission-bridge.js - Adds a
PermissionRequestcommand hook in~/.claude/settings.json(existing hooks preserved) - Pending requests and decisions live under
~/.agent-notch/permissions/ - If the hook times out (~10 min) or AgentNotch is not running, Claude falls back to its normal dialog
See the running model (Grok 4.5, Gemini 1.5 Pro, etc.), a live activity feed of recent commands and edited files, and current execution parameters β all on the session card.
A dedicated Usage tab with deep analytics β all computed locally:
- Metrics: Session time, tokens burned, estimated cost, session counts
- Breakdowns: Per-agent and per-model splits over Today / 7D / 30D / 90D
- Charts: Stacked daily burn chart (tokens or cost by agent), cumulative spend trajectory
- Token mix: Cache-read share breakdown
- Derived stats: Cost per session, average session length, model cost share
- Backfill: History reconstructed on first run by scanning local agent records
Daily buckets persist under ~/.agent-notch/usage-stats.json; costs are list-price estimates unless the agent reports actual cost.
Message any running agent session directly from the expanded notch β pick a live session and the prompt resumes that exact chat headlessly (no new windows), or start a new headless session for an agent in its most recent project directory.
AI-powered conversation analysis that surfaces session patterns, agent behavior trends, and productivity signals across your agent interactions.
Per-agent watcher toggles, Attention Control (when to sound / notify for permission, question, needs-attention, and done), Notch placement (display, left/center/right, autohide delay, custom global hotkey), autostart, and locally-archived session history.
Prerequisites: Node.js β₯ 20
# Clone the repository
git clone https://github.com/NastyRunner13/AgentNotch.git
cd AgentNotch
# Install dependencies
npm install
# Launch in development mode
npm run devRun the test suite (146 tests across 25 suites):
npm testBuild distributable packages with electron-builder:
| Command | Platform | Output |
|---|---|---|
npm run build:win |
Windows | NSIS installer (.exe) |
npm run build:mac |
macOS | Disk image (.dmg) β x64 + arm64 |
npm run build:linux |
Linux | AppImage (.AppImage) |
Automated release builds are triggered by pushing a v* tag β see the release workflow.
Electron + Chokidar + Vanilla CSS/JS. No frameworks, no bundlers β fast startup, low memory.
agent-notch/
βββ src/
β βββ main/ # Electron main process
β β βββ index.js # Entry point, window management, IPC
β β βββ agent-manager.js # Multi-agent lifecycle orchestration
β β βββ tray.js # OS tray icon, status colors, context menu
β β βββ store.js # Settings & session state (electron-store)
β β βββ logger.js # Quiet, file-based logging
β β βββ permission-bridge.js # Claude PermissionRequest hook + IPC
β β βββ insights.js # Conversation insights engine
β β βββ usage-limits.js # Local resource tracker
β β βββ usage-stats.js # Token/cost accumulation β daily buckets
β β βββ usage-backfill.js # Full-history scan of agent session files
β β βββ watchers/ # Agent-specific file/process watchers
β β βββ base-watcher.js # Abstract watcher base class
β β βββ claude-watcher.js # Claude Code JSONL parser
β β βββ codex-watcher.js # Codex rollout log parser
β β βββ cursor-watcher.js # Cursor process tracker
β β βββ antigravity-watcher.js # Antigravity transcript parser
β β βββ grok-watcher.js # Grok session updates tailer
β β βββ opencode-watcher.js # OpenCode SQLite WAL reader
β β βββ session-utils.js # JSONL stream helpers
β βββ preload/
β β βββ index.js # contextBridge secure IPC
β βββ renderer/ # UI (Notch, Panel, Settings)
β βββ index.html # Shell HTML
β βββ app.js # Renderer coordinator & IPC handlers
β βββ components/
β β βββ session-card.js # Live session cards
β β βββ usage-view.js # Usage analytics dashboard
β β βββ insights-view.js # Conversation insights panel
β β βββ history-view.js # Session history browser
β β βββ settings-panel.js # Settings & watcher toggles
β βββ styles/
β βββ main.css # Design tokens & layout
β βββ components.css # Component styles
βββ test/ # Node.js native test runner
β βββ analyzers.test.js # Agent log parser tests
β βββ usage-stats.test.js # UsageTracker bucket/cost tests
β βββ usage-backfill.test.js # History backfill tests
β βββ usage-view.test.js # Usage view rendering tests
β βββ insights.test.js # Insights engine tests
β βββ insights-view.test.js # Insights view tests
β βββ dispatch.test.js # Session dispatch tests
β βββ permission-bridge.test.js # Permission bridge FS tests
β βββ markdown-table.test.js # Markdown table rendering tests
βββ .github/workflows/
βββ ci.yml # CI: Linux, macOS, Windows Γ Node 20, 22
βββ release.yml # Release: electron-builder β GitHub Releases
| Layer | Technology | Why |
|---|---|---|
| Runtime | Electron 36 | Cross-platform desktop, system tray, frameless window |
| File watching | Chokidar 4 | Efficient FS events for JSONL tailing |
| Persistence | electron-store | Simple JSON config, no external DB |
| UI | Vanilla JS + CSS | Zero-dependency renderer, instant startup |
| Testing | Node.js native --test |
No test framework dependency |
| CI/CD | GitHub Actions | Matrix builds across 3 OS Γ 2 Node versions |
| Packaging | electron-builder | NSIS, DMG, AppImage outputs |
| Shortcut | Action |
|---|---|
| Ctrl+Shift+A / ββ§A | Toggle notch panel (customizable in Settings β Notch) |
| Ctrl+Y | Allow Claude permission request |
| Ctrl+N | Deny Claude permission request |
AgentNotch is local-first and private by design.
- β Zero telemetry β no cloud dashboards, no accounts, no analytics
- β Read-only inspection β agent logs are parsed directly, never modified
- β
On-device only β settings and history never leave your machine (
~/.agent-notch/) - β
Secure IPC β renderer communicates through Electron's
contextBridgeonly
For responsible security disclosures, see SECURITY.md.
Contributions are welcome! Please read CONTRIBUTING.md for local setup, development guidelines, and conventional commit rules.
All community interactions are governed by our Code of Conduct.
| Document | Purpose |
|---|---|
| DESIGN.md | Visual design system β colors, typography, components |
| PRODUCT.md | Product philosophy, users, positioning, accessibility |
| CONTRIBUTING.md | Development setup & contribution guidelines |
| CHANGELOG.md | Release history |
| SECURITY.md | Security policy & vulnerability reporting |
| CODE_OF_CONDUCT.md | Community standards |
MIT Β© AgentNotch Maintainers