lookout

A small Mac app my AI agents built for me, because I kept losing track of my AI sessions. It lines up the terminal windows of Claude Code, Codex, Grok and Kimi and shows me which one is working, which one is done and which one is waiting for me.

Mac app for the menu bar. Free and open source, MIT license.

Animation with demo sessions. It follows Lookout's real rules, just faster.

Why I needed it

On a normal day I have a lot of AI sessions running at the same time, some days 15 or more. Starting them is no problem. But after some time I lose track: which one is finished, and which one has been sitting there for a while, waiting for my answer?

So I had my AI agents build Lookout. Claude Code wrote the code, and Codex, GLM and Kimi reviewed it. I said what I wanted, used it every day and kept changing it until it felt right. I wanted it calm. Nothing should blink, and no numbers in the menu bar. I just want to see who needs me.

What it does

Frames

When a session is done, its window gets a soft mint frame. When it can't go on without me, because it needs my OK or wants me to pick an answer in a question box, the frame is amber. If the AI just asks something at the end of its answer, that counts as done, so I open the window and read it. The window I'm working in never gets a frame. I'm looking at it anyway.

Labels

Every other AI window gets a small dark label at the top. It shows the status and how long it has been like that, the session name and, for Claude Code, the current step or the first sentence of the answer. So I see what's going on without clicking into the window. For Codex, Grok and Kimi the label is shorter: status, time and window title.

There are four states:
? WAITING FOR YOU ✓ DONE ● WORKING ◌ WATCHING

Layouts

Focus puts the window I clicked in the middle and lines up the others by who needs me first: waiting, then done, then working. On a big screen, Focus 2 keeps the ones that need me on the left and the busy ones on the right. The Grid gives every window a fixed place. Ctrl+Opt+1, 2 and 3 switch between these three. With two or more screens there is also a control room: my session and the ones that need me on one screen, the busy ones on the other.

The windows come to me

In Focus, Focus 2 and the control room, a window glides to the front of the line as soon as its session is done or needs me, and goes back when it starts working again. In the Grid every window keeps its place.

Watching

Some Claude Code sessions are done, but they are only waiting: for their own background job (a test run, for example), for another session, or for a timer they set themselves. Lookout shows them in grey as WATCHING. They don't need me, so they don't ask for my attention. When Lookout isn't sure, it shows done.

The menu bar

Just one small icon. A tile in it fills as soon as a session is done or waiting, no numbers. The menu lists my sessions, and one click brings that window to the front.

Windows stay where Lookout puts them

If I drag an arranged window somewhere else, Lookout moves it back after a few seconds. To keep a window where I put it, I take it out under More > Choose windows, or I pause Lookout.

What it does on your Mac

Lookout itself never connects to the internet. It reads what Claude Code, Codex, Grok and Kimi already write on your Mac, and it runs a few local tools: ps, lsof, nettop and claude. To find out which window belongs to which session, it changes the tab title for a moment and then sets it back, so you may see a title flash. A tab in the background may end up showing its folder name. It also keeps a small log file on your Mac.

One tip: the labels show text from your sessions. Turn them off before you share your screen (More > Show labels), and keep the menu closed.

Try it

You need macOS 26 or later (I use it on macOS 27), Warp or Ghostty, at least one of Claude Code, Codex, Grok or Kimi, and Apple's Command Line Tools (xcode-select --install). Then:

git clone https://github.com/kevintheo-ai/lookout.git
cd lookout
./build.sh
open ~/Applications/Lookout.app

On the first start macOS asks for Accessibility access. Lookout needs it to read and move your terminal windows, nothing else. Then it lines up your AI windows right away, in Focus, on your biggest external screen (or on the Mac's own screen if there is no other). You can change both in the menu.

Settings, the exact rules and the limits are in the README on GitHub. Lookout has 116 automated tests, and the rules for "watching" were tuned on 1,204 real cases from my own sessions.

Read the README on GitHub