Claude Code session monitor

Built it · 2025 · Archived

A monitor for my Claude Code sessions and their subagents that flagged any session waiting on a decision and let me answer it from my phone.

I called it phooks, short for Paul's hooks. A hook is a command Claude Code runs at set moments, such as right before it uses a tool. Mine started as bash scripts that summarized the session with Claude and pushed a notification to my phone. That let me leave agents working on their own and still answer them from anywhere, and an answer from my phone turned into keystrokes in the terminal where the agent was running.

The scripts grew fast, so in July 2025 I rebuilt it as a TypeScript monorepo. A small server on my laptop caught every hook event and passed it to an API, and a worker behind it wrote the alert, with the option to read it aloud. Every session's activity, subagents included, went to a Grafana dashboard through OpenTelemetry, so I could see what each agent was doing from one screen.

The worker moved twice that first week. On Friday I put it inside the Next.js app, as the docs suggested, and on Sunday I took it back out.

Answering from my phone had one problem. Sometimes "Always" and "No" were the same keys, depending on a prompt I couldn't see. On a prompt with three choices, the down arrow and Enter pick "Always". On a prompt with two, the same keys pick "No", and I'd have told my own agent no. So before pressing anything, phooks counted the choices.

Stack

Languages
TypeScript

Text mePaul Mikulskis

(617) 599-0775

If this sounds like your situation, tell me what's going on.

This number usually answers in a minute or two, in my voice, and every conversation comes straight to me.

Text (617) 599-0775
Email me