Guides··7 min read

How to Monitor Claude Code on Your Mac (2026)

You can monitor Claude Code on a Mac three ways: fire a native notification from Claude Code's own hooks, run a free menu-bar tracker that reads the ~/.claude session logs, or put the status in your notch. I tested the options while building NotchBay, so here is the honest map of what each one is good for and where each one stops.

By Deepak Yadav, building NotchBay

The short version

  • Every monitor reads one of two things: Claude Code's lifecycle hooks, or the JSONL session logs it writes to ~/.claude.
  • Free and built in: hooks can fire a native macOS notification the moment an agent stops or needs approval, no extra app.
  • For a glance: menu-bar trackers live in the menu bar; VibeIsland and NotchBay put it in the notch.

#The signals Claude Code gives you

Before you pick a tool, it helps to know what Claude Code actually emits, because every monitor on this page reads one of two things. First, Claude Code writes a running JSONL transcript of each session under your home folder at ~/.claude: prompts, tool calls, token counts and timestamps all land there as plain text you can tail. Second, it exposes lifecycle hooks, small shell commands you register in settings that fire on events like a notification, a finished response, or a tool call waiting for your approval.

A tracker either reads those log files to compute how much of your window you have burned, or listens for a hook to know the exact moment an agent stops and wants you back. Neither path touches the Anthropic API or your account; it is all local files and local events. That single fact is why this whole category exists and why most of it is free. If you want the wider notch context first, the Dynamic Island for Mac guide maps the surface these tools draw on.

#Native notifications with Claude Code hooks

The cheapest monitor ships with Claude Code itself. Hooks let you attach a command to an event, and the two most useful events are Notification (Claude wants input or approval) and Stop (the agent finished its turn). Wire either to osascript and you get a real Notification Center banner without installing anything:

// ~/.claude/settings.json
{
  "hooks": {
    "Notification": [
      { "hooks": [
        { "type": "command",
          "command": "osascript -e 'display notification \"Claude needs you\" with title \"Claude Code\" sound name \"Glass\"'" }
      ]}
    ]
  }
}

Swap in terminal-notifier if you want a clickable banner that raises the right terminal, or pipe the event JSON into a script that decides what to say. The exact hook schema evolves between releases, so check Anthropic's current hooks documentation before you copy a config verbatim. This path is perfect when you run one agent at a time and just want to know when to look back. It does not give you a persistent readout of usage or a live status you can glance at; for that you want one of the always-on tools below.

Hooks and the JSONL logs are both local. No account, no API key, no cloud round-trip to see that an agent has stopped or how many tokens it spent.

#The notch approach: VibeIsland and NotchBay

The other place to put status is the notch, the strip of screen above your windows that is always visible and sits dead center in your eyeline. Two apps use it very differently, and the difference matters.

VibeIsland (vibeisland.app) is the specialist. It bills itself as a Dynamic Island for your AI coding agents, and it means it: you can monitor, approve and answer up to 26 agents (Claude Code, Codex, Gemini CLI, Cursor and others) from the notch without switching windows, jump precisely into any of 20-plus terminals including split panes, review a plan rendered as Markdown, and hear 8-bit sound alerts when an agent needs you. It tracks usage quotas for Claude and Codex, can watch sessions over SSH, and runs fully local under about 100MB of RAM on Apple Silicon. It is $19.99 one-time for one to three Mac licenses with a year of updates, and it keeps working after that. If your day is running many coding agents at once, this is the purpose-built tool. I go deeper on that whole idea in Dynamic Island for AI agents.

NotchBay, the app I build, comes at it from the other end. It is a general notch suite (music, calendar with one-tap join, Zoom and Meet call controls, an OCR clipboard tray, on-device dictation, drop-to-share, AirPods, a privacy chip) that also surfaces developer signals: your Claude plan usage, both the 5-hour and weekly limits, read locally from the ~/.claude logs with no account or API, plus a running background-agent status in its ambient layer. The honest limit: NotchBay glances Claude usage and one agent's status. It does not orchestrate 26 agents, approve tool calls, or jump between terminals. If you want a full notch suite that also keeps an eye on Claude usage, that is NotchBay; if agent orchestration is the job, VibeIsland is built for it. The VibeIsland vs NotchBay comparison lays the two side by side.

#Which monitor fits your setup

Match the tool to how you actually work, not to the longest feature list:

ToolWhere it livesWhat it showsCost
Claude Code hooksNotification CenterAlerts on stop or approvalFree, built in
Menu-bar trackersMenu barToken and plan usage, session stateMostly free / open source
VibeIslandNotch or floating bar26 agents: monitor, approve, answer, jump terminals$19.99 one-time
NotchBayNotchClaude plan usage + one agent's status, in a full notch suite$19 one-time

Pricing and features move; confirm current details on each app's own site.

Rules of thumb from testing all four styles: if you run a single agent and want zero new software, wire a hook. If you want a passive usage number and nothing else, a menu-bar tracker is the lightest pick. If you juggle several agents and terminals and want to approve them without context-switching, VibeIsland is the specialist. And if a Claude usage glance is one of many things you want the notch doing, NotchBay folds it into the suite. However you choose to monitor Claude Code on Mac, the signals stay on your machine, so the decision is about surface and depth, not about privacy. NotchBay needs macOS Tahoe (26) for on-device dictation and ships a 3-day trial; the exact notch it draws into is measured to the point in the notch size post.

#Frequently asked questions

What is the easiest way to monitor Claude Code on a Mac?

The built-in path is free: Claude Code exposes hooks, so you can fire a native macOS notification on the Notification and Stop events without installing anything. For a persistent readout of token and plan usage, a menu-bar tracker or a notch app reads the ~/.claude JSONL logs.

Where does Claude Code store the data these tools read?

Claude Code writes JSONL session transcripts under ~/.claude and can run shell commands on lifecycle hooks. Trackers read those local logs or listen for the hooks; nothing needs an account or the Anthropic API to see status and usage.

Do I have to send my usage to a server to track it?

No. The logs sit locally in ~/.claude, so the menu-bar trackers, VibeIsland and NotchBay all compute usage on-device. VibeIsland states it is fully local; NotchBay reads the same local files with no account and no API call.

What is the difference between VibeIsland and NotchBay for this?

VibeIsland is the specialist: it monitors, approves and answers up to 26 AI coding agents from the notch and jumps between terminals. NotchBay is a general notch suite that also glances Claude plan usage and one running agent's status; it does not orchestrate many agents or approve tool calls.

Are the menu-bar Claude Code trackers free?

Most are free and open source, including ClaudeBar, ClaudeUsageBar, ClaudeMeter, Claude Status and Claude Code Notifier. Features and upkeep vary by project, so check each repository before you rely on it.

Can I monitor Claude Code running on a remote server?

Some tools can. VibeIsland lists SSH remote monitoring, so a session on another machine can surface in your notch. Local-only trackers need the ~/.claude logs on the same Mac, so a remote session would not appear unless the logs are synced.

Everything here comes from building NotchBay and testing these tools on real hardware. Found an error, or a tracker I should list? Tell me and I’ll fix it, accuracy beats winning.
Deepak YadavCrafting beautiful digital consumer products.

Product designer and indie hacker. Founder of Ossian Design Lab. Builds and ships business and consumer digital products in public.

Follow on X

Read next.

Look up.
It's all right there.