Back to guides
New

Claude Peek: Monitor and Manage Claude Code Sessions From Your Mac's Notch

A native macOS app that turns your MacBook's notch into a Claude Code command center — see session status, approve permissions, and read conversations without switching windows.

10-min guide
AI Development
Claude Code
macOS

The Tab-Switching Tax

Here's what my screen looked like on a typical Tuesday: four terminal tabs, each running a Claude Code session on a different part of the codebase. One needed permission to write a file. One was waiting for input. One had finished five minutes ago and I hadn't noticed. The fourth was still churning.

I was spending more time managing Claude Code than actually using it.

Every time a session needed permission, I'd hunt through tabs. Every time I wanted to check progress, I'd switch windows, lose my place in whatever I was reading, then switch back. Multiply that by four sessions, dozens of times a day.

The overhead was real. So I built Claude Peek — a macOS app that puts all of that into the one piece of screen real estate that's otherwise wasted: the notch.

What Claude Peek Does

Claude Peek is a native macOS app that monitors your Claude Code sessions from the notch area of your MacBook (or a floating pill on external displays). No Electron. No browser tabs. No terminal switching.

At a glance, you see:

  • Every running Claude Code session and its current status
  • Which sessions need your attention (permission requests, waiting for input)
  • Session names (from /rename or project directory)

One click gives you:

  • Full conversation history, live-updating as Claude types
  • Inline permission approval — allow, deny, or always-allow
  • Jump-to-terminal to focus the exact window running that session

What it doesn't do:

  • Phone home. No analytics, no telemetry. All data stays on your machine.
  • Steal focus. It sits in the notch until you hover. It never interrupts.

Why the Notch?

Every MacBook Pro made since 2021 has a notch — a chunk of screen that most apps ignore. It's dead space. Claude Peek reclaims it.

When sessions are active, the notch subtly extends to show status. Hover to expand it. Click to open the full conversation viewer. Click away to close it. The interaction model is closer to macOS's native notification center than a separate app — always accessible, never in the way.

On external displays without a notch, Claude Peek renders as a floating pill at the top center of the screen. Same functionality, adapted to the hardware.

The Permission Problem

This is the feature that changed my workflow the most.

When Claude Code needs to write a file, run a command, or use a tool, it asks for permission. In a single terminal session, that's fine — you see the prompt, you approve or deny. But with multiple sessions, each in a different terminal tab or window, you miss permission requests constantly.

Claude Peek surfaces every permission request in one place. A session goes amber, you see what Claude wants to do, and you tap Allow, Deny, or Always Allow — all without leaving your current window.

Always Allow is per-session. If you trust Claude to write files in a specific project, allow it once and it won't ask again for that session. Keeps you in flow without blanket permissions.

Reading Conversations Without Context-Switching

The conversation viewer shows the last 50 messages for any session. It live-updates as Claude writes responses. You see:

  • User messages and Claude's responses
  • Tool use calls with their inputs and results
  • Thinking blocks (when extended thinking is enabled)

This is surprisingly useful for monitoring background agents. Instead of switching to a terminal, losing your place, reading the output, and switching back — you hover the notch, scan the conversation, and continue what you were doing. Two seconds instead of twenty.

Terminal Focus: Jump to the Right Window

When you do need to interact with a session directly, Claude Peek knows which terminal window owns it. Click the focus button and it activates the correct window — even across macOS Spaces.

It's smarter than just "open the terminal app." It detects your terminal type (iTerm2, Warp, Ghostty, Terminal.app, Kitty, Alacritty) and IDE (VS Code, Zed, IntelliJ). For IDEs, it opens the project directory to focus the right window. For terminals, it activates without spawning a new window.

A small thing, but when you're running four sessions across two Spaces, finding the right window manually is surprisingly slow.

How It Works Under the Hood

Claude Peek connects to Claude Code through the hooks system — the same event-driven mechanism that powers formatters, linters, and other automations.

Claude Code → Python Hook → Unix Socket → Swift App → Notch UI
                          ← permission response (allow/deny) ←

A Python hook script (auto-configured during install) listens to Claude Code events: session start, tool use, permission requests, completion, errors. It sends these as JSON events over a Unix socket to the Swift app.

For permission requests, the flow is synchronous — the hook holds the socket open until you respond in the UI. Your decision (allow/deny/always-allow) flows back through the same socket to Claude Code. No polling, no delays.

Everything is local. The Unix socket lives at /tmp/claude-peek.sock. No network calls, no cloud services. The app is signed and notarized, so no Gatekeeper warnings.

Installation

# Clone and run the installer
git clone https://github.com/teambrilliant/claude-peek.git
cd claude-peek
./install.sh

The install script:

  1. Builds the app (requires Xcode or Swift toolchain)
  2. Copies it to /Applications
  3. Configures Claude Code hooks in ~/.claude/settings.json

Requirements: macOS 14+, Apple Silicon, Claude Code with hooks support.

After install, launch Claude Peek from Applications. It runs as a menu bar app — no dock icon, no window. Start a Claude Code session and you'll see it appear in the notch.

How Claude Peek Compares

Several tools exist for managing multiple Claude Code sessions:

Tool Type Sessions Permissions Conversations Platform
Claude Peek Native macOS notch app Yes Inline approve/deny Live viewer macOS
Claude Squad Terminal TUI (tmux) Yes Through terminal Through terminal Cross-platform
Claude Control Desktop dashboard Yes No Status only macOS
Agent Deck Polling dashboard Yes No Status only Web

Claude Peek's advantages: native macOS integration, inline permission handling, live conversation viewer, zero focus-stealing. The tradeoff: it's macOS-only (Apple Silicon).

Tips for Power Users

Run sessions in different projects. Claude Peek shows project directory names by default. Use /rename in Claude Code to give sessions meaningful names when you're running multiple sessions in the same project.

Use Always Allow strategically. For trusted operations in a specific project (file writes, running tests), Always Allow saves constant interruptions. The rules reset when the session ends, so you're not creating permanent security holes.

Pair with the RPI framework. If you're using the Research → Plan → Implement framework, Claude Peek lets you monitor the research phase (which spawns parallel agents) without switching windows. You see each agent's progress in the conversation viewer.

External monitors work. If you're on a non-notch display, Claude Peek renders as a floating pill. Same features, just positioned at the top center of the screen instead of the notch.

Frequently Asked Questions

Does Claude Peek work with Claude Code Desktop or only the terminal CLI?

It works with any Claude Code instance that supports hooks — terminal CLI, VS Code extension, JetBrains plugin. The hook system is universal across Claude Code interfaces.

How much memory does it use?

Minimal. It's a native Swift app with no Electron runtime. Typical memory usage is 30-50MB regardless of how many sessions you're tracking. Compare that to a browser-based dashboard.

Can I send messages to Claude Code from the notch UI?

There's an experimental reply feature using MCP channels, but it requires running Claude Code with development channel flags. For most users, the click-to-focus-terminal workflow is faster and more reliable.

Does it work on Intel Macs?

Currently Apple Silicon only (macOS 14+). The app uses SwiftUI features and system APIs that require recent macOS versions.

Is it open source?

Yes. The full source is on GitHub — Swift app, Python hook script, and MCP server. MIT licensed.

Will it conflict with other Claude Code hooks I have configured?

No. Claude Code supports multiple hooks per event. Claude Peek's hooks coexist with formatters, linters, and any other hooks you've configured. The install script merges its hooks with your existing settings rather than replacing them.


Claude Peek is built by Team Brilliant. Questions or feature requests? Open an issue on GitHub or reach out at alex@teambrilliant.ai.