Codestatus banner
henriquegpb henriquegpb

Codestatus

Development community

Description

Run several coding agents. Keep working. Come back only when one is done, or needs you.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

CodeStatus

**Stop watching AI work.**

A native macOS presence layer for coding agents. Start several, keep working, and come back only when one is actually done or actually needs you.


What it is

You run Claude Code in one terminal, Codex in another, maybe a third in VS Code. Then you spend the next twenty minutes tabbing between them asking "is it done yet?".

CodeStatus answers that without you looking. It tracks every Claude Code and Codex session on your Mac, works out whether each one is *working*, *free*, *waiting for your approval*, *waiting for an answer*, or *failed*, and shows the counts in the menu bar — with a sound and a notification the moment one needs you.

● 1 free            ● 2 busy            ● 1 needs you

Click a session and you land back in the right terminal tab or the right workspace.

What it is not

It is not a prettier Activity Monitor, and it is not a wrapper around notifications.

Watching whether `claude`, `codex`, or `node` is burning CPU tells you nothing about whether the agent is thinking, running a tool, or sitting idle waiting for you. CodeStatus uses the agents' **official lifecycle hooks** as the source of truth. Process observation is used only for discovery, enrichment, and knowing when a session genuinely died.

If we cannot determine a state, we show `Unknown` or `Reconnecting`. We never announce that a session finished because it went quiet.

Privacy

Everything happens on your Mac. There is no account, no server, no telemetry, and no network code in the product at all.

The privacy guarantee is structural rather than a promise. The hook binary that agents invoke never parses your payload into a general structure — it walks past everything that is not on a metadata allowlist without ever copying those bytes. Your prompts, the agent's responses, tool inputs and outputs, and transcript paths are *incapable* of reaching the socket, the logs, or the crash reporter, and t