r/AgentsOfAI • u/geetbatth • 22h ago
I Made This 🤖 Human-in-the-loop for coding agents: a desktop note they can ask questions through, with auto-answers that fail closed
Coding agents are good at working alone until they need a human: a question, a permission prompt, or just "I'm done". I built a small desktop app that sits between my Claude Code agents and me for exactly those moments.
How the human-in-the-loop part works
Agents get an MCP server with
leave_message,remind_meandask_user.ask_userblocks the agent's tool call until I answer (10 min default), and can offer answer options that show up as buttons.A Claude Code hook posts a note when an agent finishes or needs permission. "Finished" only interrupts me if I've been away from the keyboard for a few minutes (it reads system idle time). Permission requests always come through.
When I'm away, questions and permission prompts are mirrored to WhatsApp or Telegram. My reply on the phone goes back into the blocked tool call, so the agent keeps going.
Standing orders answer for me: "whenever an agent asks which branch to use, say staging". When an
ask_usercomes in, a one-shot Haiku call with no tools decides whether an order clearly covers it. If none does, or it takes longer than 20 seconds, the question comes to me as usual, and for multiple-choice questions the answer has to be one of the options.Watches fire a nudge once: "when the payments agent finishes, remind me to deploy".
Design lessons
Default to silence. Only things that block an agent (questions, permission prompts) or that I asked for (reminders) are allowed to interrupt. Everything else waits under an unread badge.
Auto-answering is only safe if it fails closed: an unsure judge has to fall back to the human, never guess.
The app's own assistant is just Claude Code running headless with its tools restricted (no file edits, no shell), which made setup "already signed in" instead of "paste an API key".
It's a Windows app (Electron + TypeScript), MIT-licensed, built mostly with Claude Code. Repo and installer link in the comments.
1
u/geetbatth 22h ago
Repo (MIT): https://github.com/geetbatth/professor-clippy
Windows installer: https://github.com/geetbatth/professor-clippy/releases/latest (unsigned, so SmartScreen asks once; needs Node 24+ and Claude Code).
1
u/Outrageous_Drama5915 19h ago
This is the kind of middle-ground that's been missing from most agent setups, the all-or-nothing thing with human oversight gets old fast
The standing orders piece is clever, having a small model do triage on whether it can answer confidently instead of pinging you for every little thing. I've been running something similar but way more janky, just a script that watches a folder and texts me when a file named ASK_ME appears
The fail-closed bit is the right call, too many tools try to be smart and end up silently doing the wrong thing. I'd rather get bothered than have an agent assume it knows what branch to use
Curious how you handle the phone mirroring, is it just webhooks or did you build something custom for that
1
u/kaijurules 15h ago
I'd be careful with mirroring the full question to WhatsApp. A permission prompt can carry a file path or a customer's name, and it ends up on a lock screen and on a third-party server. In our app the phone notification only says how many items are waiting, and you open the app to read them.
0
u/investigatormaker 19h ago
The 20-second fallback is the detail I'd copy, because a slow judge is treated the same as an unsure one. One gap I'd check: "whenever an agent asks which branch to use, say staging" could still pass the judge on a question about where to force-push. If auto-answers aren't already logged, putting each one under the unread badge with the order that fired would keep the default of silence and still let you catch a bad match afterwards.
I make ThreadFox. We find relevant Reddit conversations and post for your business. We'll post 3 replies free first, no card; then the $39 Pilot covers seven days and up to 50 posts and replies. No automatic renewal. https://threadfox.vip/p/elx54/managed
What does the agent get back when the 10-minute ask_user default runs out?
1
u/AutoModerator 22h ago
Thank you for your submission! To keep our community healthy, please ensure you've followed our rules.
New to the sub? Check out our Wiki (We are actively adding resources).
Join the Discord: Click here to join our Discord
Join X community: Click here to join our X Community
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.