Private beta for macOS. Beta testers get Pro at the founding price. Join the waitlist

Mac menu-bar app for Claude Code and Codex

Five agents running. Know which one needs you.

AgentKnocks sits in your menu bar and follows every Claude Code and Codex session. When Claude Code stops for your approval, or any session finishes or fails, it knocks: one notification that names the project and the reason. It never reads your prompts or code.

  • Free during the beta
  • No account, no cloud
  • Never reads your prompts
  • From the maker of QueryMoat
Watches
  • Claude Code
  • Codex CLI
Works in
  • Terminal
  • iTerm2
  • Ghostty
  • Warp
  • tmux
  • VS Code
  • Cursor

The problem

An agent waiting on you is an agent doing nothing.

Run a few sessions at once and one is always stuck: a permission prompt in a tab you aren't looking at, a turn that finished ten minutes ago, a rate limit you didn't see. Built-in alerts depend on which terminal you use, and none of them show every session in one place.

Checking tabs yourself

  • Permission prompts sit in background tabs
  • You notice a finished turn only when you look
  • Claude Code's desktop alerts appear only in some terminals
  • Each tool alerts on its own, if at all

With AgentKnocks

  • Every Claude Code and Codex session in one list
  • A notification names the agent, the project and the reason
  • Works in any terminal or editor, because the agents report in themselves
  • Repeats filtered, with pause and quiet hours built in

How it works

From hook to knock

Claude Code and Codex report what they're doing through documented hooks. AgentKnocks listens to those hooks and nothing else, so it works wherever your agents run.

  1. The agent reports in

    When a session starts, a turn ends, something fails or Claude Code needs permission, the agent runs AgentKnocks's small helper.

  2. The helper keeps the facts

    It writes one line: which agent, which session, which project folder, what happened and when. Prompts, code and tool output are dropped before anything is saved.

  3. The session updates

    Working, Needs Attention, Completed, Failed, Interrupted or Stale, in the menu bar and the Sessions window. Repeated and out-of-order events can't confuse it.

  4. You get one knock

    A notification names the agent, the project and the reason, like “api-server — waiting for approval to use Bash.” Click it to open that session.

Privacy

It watches your agents, not your work.

No account, no cloud, no analytics and no network connections. AgentKnocks stores a few facts about each event in a folder on your Mac, and nothing else.

Stored on your Mac

  • Which agent: Claude Code or Codex
  • What happened: the event name, like PermissionRequest
  • The session ID and the time
  • The project folder the agent reports
  • A few fixed details, such as the tool name or an error type

Never stored

  • Your prompts and the agent's replies
  • Commands, file contents and diffs
  • Tool output and transcripts
  • Environment variables, credentials and tokens
  • The contents of your config files
Network connections
None
Prompts stored
None
Helper time per event
~5 ms
  • Keeps 30 days by default. Choose 7, 30 or 90 days, or keep history until you clear it.
  • Delete any time. Clear one session or all history; your agents aren't affected.
  • Tested for leaks. Tests plant secrets in every text field and check that none of them reaches disk.

Setup

Changes you can read before they happen

Connecting an agent means adding hook entries to its settings file. AgentKnocks shows you exactly what it will add before it writes anything.

  1. Open AgentKnocks

    Move it to Applications and open it. It runs in the menu bar on macOS 14 or later.

  2. Review the change

    See the exact entries for ~/.claude/settings.json or ~/.codex/hooks.json. Hooks you already have stay as they are.

  3. Apply it, or undo it later

    The original file is backed up first, and uninstalling removes only AgentKnocks's own entries. Codex asks you to trust new hooks once, in /hooks.

{  "hooks": {+   "PermissionRequest": [+     { "hooks": [{+       "type": "command",+       "command": "…/AgentKnocks/bin/agentknocks-hook",+       "args": ["claude-code"],+       "timeout": 5+     }] }+   ],    "PreToolUse": [ …your own hooks, unchanged… ]  }}
One of the nine entries AgentKnocks adds for Claude Code. Each runs the same small helper, kept in ~/Library/Application Support/AgentKnocks/bin.

Why AgentKnocks

One list for every agent, in any terminal

Built-in alerts are a good start. They stop at the edge of one tool, and often of one terminal.

Capability Checking tabs yourself Built-in agent alerts AgentKnocks
Every session in one placeNoWithin one toolYes
Works in any terminal or editor—Some terminalsYes
Claude Code and Codex together—NoYes
Names the project and the reason—VariesYes
Pause, quiet hours and repeat filtering—VariesYes
Reads your prompts or code——Never
Can change what your agent does——No, it only watches

Pricing

Free during the beta

These plans describe AgentKnocks at launch. During the beta everything is free, and beta testers get Pro at the founding price.

Free

$0

For Claude Code, with no time limit

Join the beta
  • Unlimited Claude Code sessions
  • Menu-bar status and native notifications
  • Alerts for permission requests, finished turns and failures
  • Pause, quiet hours and repeat filtering
  • Set up, repair and uninstall from the app
  • 24 hours of history
  • No account, no network, no telemetry

Founding price for beta testers

Pro

Pay once

No subscription. The price is announced at launch.

Join the beta
  • Everything in Free
  • Codex CLI, with more agents to come
  • Jump to the terminal tab from a notification
  • Reminders when an agent keeps waiting
  • Mute, sounds and quiet hours per project
  • Full history, waiting-time stats and CSV export

Pro features are still being built, and this list may change before launch.

Questions

Does AgentKnocks read my prompts or code?

No. Its helper receives each event from the agent, keeps the agent, event name, session ID, time, project folder and a few fixed details such as the tool name, and drops everything else before writing anything. Prompts, replies, commands, file contents and tool output are never stored, and nothing leaves your Mac.

Can it slow down or change what my agent does?

It's built not to. The helper never prints anything the agent could read as an instruction, always exits successfully and stops itself after 3 seconds; a typical event takes about 5 milliseconds. AgentKnocks never approves or denies anything.

Which agents does it support?

Claude Code, wherever it runs: permission requests, finished turns, failures and session end. Codex CLI: session start, prompts, finished turns and session end. Alerts for Codex approvals are being tested and will ship once they're reliable.

Do I need a particular terminal?

No. The agents run the hooks themselves, so AgentKnocks works with Terminal, iTerm2, Ghostty, Warp, tmux, VS Code, Cursor or anywhere else they run.

Can I approve a request from the notification?

No, on purpose. You answer in your agent, where you can see exactly what it wants to do. AgentKnocks tells you it's waiting and stays out of the way.

What does it change on my Mac?

It adds its own hook entries to your Claude Code or Codex settings, after showing you the exact change and backing up the file. Its data lives in ~/Library/Application Support/AgentKnocks. Uninstalling removes only its own entries.

Does it need an account or the internet?

No. There's no account, and AgentKnocks makes no network connections.

Is there a Windows or Linux version?

No. AgentKnocks is a native Mac app for macOS 14 and later.

When can I try it?

The private beta opens in waves. Join the waitlist and we'll email you when your invite is ready. Everything is free during the beta, and beta testers get Pro at the founding price.

Stop checking tabs. Let your agents knock.

Join the private beta for macOS. We'll email you when your invite is ready.