← All posts

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

To keep a terminal always on top: on Windows, flip the built-in alwaysOnTop setting in Windows Terminal; on macOS, which has no native toggle, pin the window with Hammerspoon or BetterTouchTool; or use an overlay app that ships pinned. Pinning keeps the window visible — an agent-aware overlay adds what pinning can't: a notification when the agent inside needs an answer, click-through so the window stops eating your mouse, and a daemon so the session outlives the window.

Why this matters more than it used to: 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. That's the whole idea behind an AI coding agent overlay: a floating layer that understands the agent underneath it. 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.

Frequently asked questions

How do I keep a terminal always on top on macOS?

macOS has no built-in always-on-top toggle, so you need a helper: a Hammerspoon snippet that raises the window level, BetterTouchTool, or a small window-pinning utility. Window tilers like Rectangle move and resize windows but do not pin them above others. An overlay app like Backgrind ships the pinned window ready-made.

How do I keep a terminal always on top on Windows?

Windows Terminal has a native setting: enable alwaysOnTop in settings, or bind the toggleAlwaysOnTop action to a key. It is the cleanest built-in option on any OS — the whole window floats above other apps until you toggle it off.

Is there an always-on-top terminal app?

Yes, in two flavors. Quake-style dropdown terminals (the iTerm2 hotkey window, Guake, Windows Terminal quake mode) slide over everything on a keypress but hide otherwise. Backgrind is a purpose-built always-on-top terminal overlay for AI coding agents on macOS and Windows, with click-through mode and notifications when the agent needs an answer.

Does an always-on-top terminal work over fullscreen games?

Over borderless (windowed) fullscreen, yes — the OS compositor stacks the pinned window above the game. Over exclusive fullscreen, no: the game bypasses the compositor and nothing can be drawn on top, so switch the game to borderless mode first.

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. In practice it doubles as a GUI for Claude Code — the terminal is still there, but the state and decisions surface visually instead of scrolling past. 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.