DEV Community

Cover image for My AI Micromanager Got a Body
Dmitry Bondarchuk
Dmitry Bondarchuk

Posted on

My AI Micromanager Got a Body

A follow-up to I Built an AI Micromanager That Bullies Claude Code


So a week ago I built a text-to-speech micromanager for the DEV April Fools' Challenge. It would nag Claude Code with escalating passive-aggressive remarks until your task was done. Dialog boxes. Desktop notifications. "The board has been notified." The whole bit.

That was fun. Then it was Sunday. I had nothing going on.

You can probably see where this is going.

The natural next step

The TTS version had no face. No physical presence. It was just a disembodied voice yelling at you. Relatable, sure — but incomplete. A real micromanager needs to loom. They need to pace. They need to make you feel observed even when nothing is being said.

So I gave him a body.

ai-micromanager now ships with a pixel-art mascot that appears above your terminal window and gets progressively more unhinged the longer Claude takes.

What he does

The escalation follows a strict corporate timeline:

  1. Idle — he just stands there. Breathing. Watching.
  2. Stomping — foot tapping begins. He's noticed the time.
  3. Pacing — walks back and forth above your terminal window. Side to side. Relentless.
  4. Status updates — random speech bubbles. "Any updates?" "Can you at least give me a percentage?"
  5. Whip phase — yes. He has a whip now.
  6. Finally — when the task completes, he delivers a sarcastic closing line and goes back to idle.

If you start the mascot mid-task, it jumps straight to the correct phase based on elapsed time. He's always aware of how late you are.

How it works

Same hook architecture as before — Claude Code supports lifecycle hooks that fire on events like PreToolUse and Stop. The Python hook writes a timestamp to a temp file when work starts and clears it when it ends.

The new part is a native macOS Swift app that polls that file every 500ms, detects the active terminal window (Terminal, iTerm2, Warp, Ghostty, and a few others), and positions an overlay window directly above it. The mascot lives in that overlay, running a 30fps animation loop tied to elapsed task time.

No external dependencies. No cloud. Just a tiny man with a whip and a very short fuse.

The pixel art was generated with PixelLab — genuinely excellent tool if you've ever wanted sprites without learning to draw.

Was this necessary

No.

But it was Sunday, and the alternative was doing something useful, and here we are.

Source: github.com/ubcent/ai-micromanager

No AI agents were harmed in the making of this.

Top comments (0)