Native macOS Dock signal

Watch the light.

Download the macOS app and get one pixel-clear Dock light for every AI agent status.

ExecutingShell, tests, build, git, or tool call
ThinkingAgent is planning or reasoning
IdleNo fresh active work
Dock Monitor
Vibe Dock executing beacon animation
Highest priority: executing Codex is running tests while Claude is still thinking. Vibe Dock rolls every provider into one honest Dock icon.
The basics

What is Vibe Dock?

Vibe Dock turns your macOS Dock into one status light for your AI coding agents. A glance tells you whether they're idle, thinking, running something, waiting on you, done, or stuck.

Best for

Developers juggling background AI agents who just want a glanceable signal in the Dock.

Works with

Codex, Claude, Cursor, OpenCode, and custom local HTTP push events.

Privacy

Everything stays local and read-only. Vibe Dock never controls your agents or sends status data to a server.

Six lights

Every agent state, reduced to signal.

The Dock icon has to read at a glance, so it shows one color for one state — and when several agents disagree, the most urgent one wins.

Idle green beacon

Idle

No active work, no fresh signal.

Thinking amber beacon

Thinking

An unfinished turn is reasoning.

Executing green pedestrian beacon

Executing

Commands, tools, tests, or builds are running.

Waiting red ellipsis beacon

Waiting

Permission, confirmation, or input is needed.

Success green beacon

Success

Completion appears briefly, then settles.

Error red beacon

Error

Failure is surfaced before falling back to waiting.

The dashboard

Click the Dock. See every agent.

One click on the Dock icon opens a compact floating panel. Each agent gets a row with its live state, an activity badge, the latest message, and how long ago it last moved.

Live agent rows

Every source shows its normalized state, an activity badge, and its latest message in one place.

Relative timestamps

"Updated 2s ago" tells you which agent just moved and which one has gone quiet.

Sound cues

Optional chimes for waiting and error, off by default, toggled right inside the panel.

Background radio

Tap the ♫ to stream Claude FM while you work — audio only, no extra window. Needs yt-dlp.

What it does

A tiny surface for busy agent work.

Vibe Dock does one job: make background AI coding work visible without adding another window, inbox, or always-on console to babysit.

Dock-first monitoring

Click the Dock icon for a compact Raycast-like dashboard, or just read the beacon color.

Local providers

Read-only adapters watch Codex, Claude, Cursor, and OpenCode sessions conservatively.

HTTP push

Custom agents can report status to 127.0.0.1:8765/status.

Native Swift

No Electron shell. A small macOS app built around AppKit, SwiftUI, and Dock rendering.

Under the hood

Signals in. One Dock light out.

Sources and display stay cleanly separated: providers read state, the manager handles timers and priority, and the renderer paints the Dock icon.

1

Watch local sources

Codex, Claude, Cursor, OpenCode, and HTTP push events become normalized status updates.

2

Apply calm rules

Signals expire after 120 seconds. Success lasts 3 seconds; error lasts 5 seconds.

3

Render the beacon

The Dock icon uses asset-driven E3 Single Beacon visuals for readable status.

Download

Put the status light in your Dock.

Download the macOS app, open it once, and keep Vibe Dock in your Dock while your agents work.

  • macOS 14+
  • Native app
  • No build tools

Download app

Get the latest Vibe Dock macOS app as a .dmg disk image.

Download for macOS

Install

Open the DMG, drag Vibe Dock to Applications, then follow the included Read Me to finish first launch.

Read the FAQ

Watch the Dock

Leave it running and read your agents from the red, amber, and green beacon states.

See states
FAQ

The small print, still pixel-clear.

Vibe Dock is intentionally narrow. That is the point: fewer promises, a cleaner Dock signal, and no extra control layer.

Out of the box, Vibe Dock watches Codex, Claude, Cursor, and OpenCode read-only. Need another agent? Reach out to the developer, or push it yourself — any tool can POST its status (the agent name, a state, and a short message) to the local endpoint at 127.0.0.1:8765/status.

No. It visualizes status only. It does not run agents, approve permissions, edit prompts, show logs, track token usage, or manage costs.

There's no cloud service at all. Local providers are read-only, and the HTTP push endpoint only listens on 127.0.0.1 (your machine).

The Swift package targets macOS 14 or newer.

Success falls back to idle after 3 seconds. Error falls back to waiting after 5 seconds. Stale agent signals expire after 120 seconds.

It opens a compact floating dashboard: one row per agent with its live state, an activity badge, the latest message, and a relative timestamp. Optional sound cues for waiting and error can be toggled inside the panel and are off by default.