macOS · menu bar only · open source

Know exactly when an agent needs you. Jump back in one shortcut.

overwatchr is a native macOS menu bar app for people running multiple terminal agents at once. It keeps interruptions quiet, shows what actually needs attention, and gets you back to the right tab fast without pulling you out of the task you are in.

Native macOS Works with Codex, Claude Code, OpenCode Ghostty, iTerm, Terminal.app
Install once, hook once
curl -fsSL https://raw.githubusercontent.com/atiti/overwatchr/main/install.sh | bash

Installs the CLI and menu bar app. Hook support for Codex, Claude Code, and OpenCode is one command away.

CLI + app User-wide hooks No Electron
Attention queue
Overwatchr queue widget showing active terminal AI alerts
Settings
Overwatchr settings pane with shortcut and sound controls
terminal swarm log
• Waited for background terminal
• Running Stop hook: notifying overwatchr
Stop hook (completed)

$ overwatchr hooks install all --scope user
Installed codex hooks (user)
Installed claude hooks (user)
Installed opencode hooks (user)

$ Ctrl+Opt+Cmd+O
Jumped to markster-mcp-api-mapper · ttys099 and marked it seen.
Codex Claude Code OpenCode Ghostty iTerm Terminal.app
20-second tour

See the exact loop in one glance.

The product is deliberately small: an agent finishes, the queue updates, and one shortcut takes you back to the right session when you are ready. No dashboard tab. No noisy takeover.

1

An agent stops or asks for input. A local hook writes the event.

2

The menu bar shows the alert quietly instead of hijacking your current flow.

3

You hit the jump shortcut and land in the right terminal tab.

Product Hunt launch clip
Queue view showing live alerts in Overwatchr
terminal swarm log
• Running Stop hook: notifying overwatchr
Stop hook (completed)

$ Ctrl+Opt+Cmd+O
Jumped to slackening · ttys101
Settings view showing shortcut and sound controls
Watch the loop
Alert arrives. Badge lights up. Shortcut lands you back in the right tab.
Why this exists

Parallel agents are fast. Context switching is not.

When several agents are running at once, the real problem is staying focused on your current task while still noticing when another terminal needs you. overwatchr keeps those pings quiet, visible, and easy to act on: one queue, one shortcut, and a fast jump back to the right tab when you are ready.

01

Hooks emit local events

Codex, Claude Code, and OpenCode write append-only JSONL events into ~/.overwatchr/events.jsonl.

02

The menu bar becomes your queue

Fresh alerts stack in one native menu bar widget, with seen-state, jump feedback, sounds, and a configurable global shortcut.

03

Jump back without tab hunting

Overwatchr focuses the right Ghostty, iTerm, or Terminal tab using native macOS APIs plus terminal-specific matching.

Built for real operators

Fast enough to disappear. Clear enough to trust.

The design goal is not “more notifications.” It is quiet confidence: a small control tower for AI-heavy terminal workflows, with fewer false positives, fewer lost tabs, and less background cognitive drag.

Native macOS

Swift, SwiftUI, AppKit, AppleScript, Accessibility APIs. No runtime dependency maze.

Open source

MIT licensed, GitHub-first, easy to audit, easy to adapt, and built to work with terminals you already use.

Operator-friendly behavior

Frontmost sessions auto-suppress redundant alerts, active queues are deduped, and event logs stay inspectable.

Product proof

The widget is the product.

No dashboard detour. No giant window. No setup maze. The experience lives in the menu bar and stays out of your way until it matters.

Settings view showing shortcut, sounds, launch at login, and shell sync
Compact settings for shortcut capture, shell sync, sounds, and launch-at-login.
Queue view showing live alerts in Overwatchr
Queue view with live alerts, jump actions, and fast visual triage.
Get started

From zero to useful in minutes.

Install the app, grant Accessibility, install hooks, and let your agent swarm get loud only when it actually matters.

1

Run the one-line installer.

2

Launch Overwatchr and enable Accessibility.

3

Run overwatchr hooks install all --scope user.

FAQ

Questions people ask before installing.

Does it work with my existing terminal setup?

Yes, if you use Ghostty, iTerm, or Terminal.app. Overwatchr is designed to sit on top of the terminals you already use, not replace them.

Do I need tmux, Hammerspoon, or a companion daemon?

No. Overwatchr uses native macOS APIs and local JSONL events. No Electron shell, no Hammerspoon dependency, no tmux requirement.

Why does it ask for Accessibility access?

That permission lets Overwatchr focus the correct terminal tab or window when you jump from the queue.

Is it only for Codex?

No. Codex is supported, but the hook bridge also supports Claude Code and OpenCode, and the local event format stays simple by design.

Ship more, context-switch less

Try overwatchr on your own agent swarm.