Explainer

Why you want an always-on-top terminal for AI coding agents

Why you want an always-on-top terminal for AI coding agents

An AI coding agent changed how long a "command" takes. You type a task, hit enter, and Claude Code spends the next several minutes greping, editing, and running tests on its own. You're not staring at output line by line anymore — you've moved on to your editor, a PR review, docs, maybe a build that's churning in another window. But the agent isn't truly fire-and-forget: every so often it stops to ask permission for a risky command, asks a clarifying question, or finishes and waits. The terminal needs to be one glance away, not buried under three other windows.

That's the case for an always on top terminal: a window that floats above whatever you're actually working in, so the agent's state is visible without an alt-tab. It's the same instinct that makes people pin a video call or a stopwatch on top — except here the thing you're watching does real work and occasionally needs an answer.

Why "always on top" specifically helps with agents

A normal terminal lives in your tab order. You bring it forward when you need it. That's fine when you drive every step. It breaks down when the terminal is driving itself, because the moments that matter — a yes/no prompt, a finished run — happen on the agent's schedule, not yours. If the window is behind your editor, you find out late. The agent sat idle waiting on you while you were heads-down somewhere else.

Pinning the terminal on top fixes the cheapest version of this: the agent is always in your peripheral vision. You glance, you see the cursor blinking on a prompt, you answer, you go back. It works equally well over a code editor, a browser full of docs, or a borderless-fullscreen game while a long refactor grinds in the background.

The existing ways to pin a terminal — and where they stop

Pinning a window on top is an old need, so there are tools. None of them know anything about your agent, which is the catch.

Every one of these answers a different question: "keep this window on top." That's necessary but not sufficient. The window being visible doesn't mean you notice the one second the agent needs you, and a pinned terminal sitting over your editor steals the screen real estate you were using and eats your mouse clicks the moment it has focus.

What an agent-aware overlay adds on top of "on top"

The gap between a pinned terminal and a useful one is everything that depends on the overlay knowing it's running an agent, not just shell. Three things matter:

None of the generic pinners can do this, because none of them parse what the agent is doing. A Hammerspoon snippet raises a window; it has no idea Claude Code just stopped on a PreToolUse approval. For Claude Code specifically, the events are already there to hook into — the Notification, Stop, and PreToolUse hooks fire on exactly the moments you'd want a flash — and an overlay can listen for them instead of making you watch.

Where Backgrind fits

Backgrind is that agent-aware version: a transparent, always-on-top window on macOS and Windows that runs your real Claude Code or Cursor CLI (your login, your history) — or Grindy, our hosted model — with click-through, ambient notifications, and per-folder session tabs. A background daemon keeps the agents alive even if you close the window, so a pinged decision still reaches you while the UI is hidden. If you've ever rigged Hammerspoon or alwaysOnTop to keep a terminal visible, this is the same idea with the agent's state built in. There's a simulated live demo if you want to see the flash-and-chime behavior before installing anything.