Skip to content

Repository files navigation

AgentNotch

AgentNotch

The quiet status strip for multi-agent developers.
One notch. Every agent. No tab-switching.

CI Status Latest Release License Platform Electron Node

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.

πŸ€– Supported Agents

AgentNotch watches 6 AI coding agents out of the box β€” all local, all private, zero cloud.

Agent Source Monitored Detects
Claude Code ~/.claude/projects/**/*.jsonl Tool execution Β· user-input prompts Β· task completion
Codex ~/.codex/sessions/**/*.jsonl Command runs Β· prompt updates Β· rate limits
Cursor Process presence + local composer DB (%APPDATA%/Cursor / ~/Library/Application Support/Cursor) + optional ~/.cursor/projects/*/agent-transcripts Agent sessions Β· task names Β· working / done Β· project folder
Antigravity ~/.gemini/antigravity-ide/brain/**/transcript.jsonl Planning phases Β· subagent execution Β· task status
Grok Build ~/.grok/sessions/**/updates.jsonl Active tool names Β· command params Β· weekly credits
OpenCode ~/.local/share/opencode/opencode.db (SQLite WAL, read-only) Tool execution Β· step completion Β· model + token/cost

Note: OpenCode does not persist live permission requests to disk. Sessions report working/idle and activity only β€” approvals happen inside the OpenCode app.

✨ Features

Ambient Notch UI

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.

On-Demand Panel

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.

Glanceable Counts

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

Claude Remote Approve

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
  1. Open AgentNotch β†’ Settings
  2. Under Claude remote approve, click Install hook
  3. Restart any open Claude Code sessions (hooks load at session start)
  4. 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 PermissionRequest command 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

Live Session Cards

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.

Usage Dashboard

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.

Session Dispatch

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.

Conversation Insights

AI-powered conversation analysis that surfaces session patterns, agent behavior trends, and productivity signals across your agent interactions.

Settings & History

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.

⚑️ Quick Start

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 dev

Run the test suite (146 tests across 25 suites):

npm test

πŸ“¦ Production Builds

Build 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.

πŸ— Architecture

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

Tech Stack

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

⌨️ Keyboard Shortcuts

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

πŸ”’ Privacy & Security

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 contextBridge only

For responsible security disclosures, see SECURITY.md.

🀝 Contributing

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.

πŸ“‹ Project Documentation

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

πŸ“„ License

MIT Β© AgentNotch Maintainers

About

AgentNotch is a cross-platform system tray application that displays a Mac-style top notch UI for real-time status updates of local AI coding agents.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages