Human In The Loop

Your agent asks.
You decide.
From anywhere.

hitl is where an AI coding agent and its human meet. It asks you questions, shows you its work and waits at a gate for your OK. You answer, review, mark up screenshots and browse the code: in a browser tab at your desk, or on your phone when you step away. Everything you say lands in one feed the agent reads.

$ npx hitloop init Get the Claude skill
  • Free and open source
  • Runs on your computer
  • Desktop, tablet and phone
  • Works with Claude Code & any MCP agent
localhost:4199
A review in hitl on a desktop: a file with a line comment and the agent's reply
hitl's inbox on a phone: an approval waiting, a review, questions
🙋Deploy to production? · waiting
✓Approved · “after 5pm”
✎Line 6: log the retry count
Everything your agent needs from you

Stay in the loop
without sitting at the terminal

Agents work for an hour, then need one decision. hitl brings that decision to you, with everything you need to make it, and takes your answer back.

🙋Approvals

A real yes or no before anything risky

The agent wants to deploy, delete data or send something. It asks, you get a notification (on your desktop or your phone), you read what will happen and how to undo it, and tap Approve or Refuse. It waits until you do.

  • A notification within seconds (ntfy or any webhook)
  • hitl approve exits 0 or 1, so scripts can gate on you too
  • An optional hook stops Claude finishing while an approval waits
An approval: the version bump diff, then Refuse, Not yet and Approve
✓Reviews

Review its work like a pull request, wherever you are

Files, diffs against main, proposed code, screenshots, diagrams, HTML mockups. Give each one Looks good, Needs changes or No, comment on any line, or draw around the part of a picture you mean.

  • Swipe through them one at a time: right is good, left needs work
  • Before and after: a slider for pictures, the changes for code
  • Shown files are kept as they were, so later edits show up
A review
A review on a desktop: verdicts and comments on lines
Before and after slider on two screenshots, on a phone
?Questions

Fifty questions, answered while you wait for coffee

Instead of one question at a time in a chat, the agent writes them all down: grouped, each with a recommendation and why it matters, with the pictures and diffs you need to decide.

  • Take every recommendation, then change the few you disagree with
  • Follow-up questions open as you answer
  • Blocking ones are marked; the agent works on the rest
A question set with options and a recommendation
📁Files & notes

The whole project at hand, and a way to say “fix this”

Browse and search the code with git colours, diffs and history; markdown, Mermaid, images and CSVs drawn properly. Click or tap any line or picture to leave the agent a note, with a screenshot or a photo if it helps.

  • Big files and folders open quickly
  • Notes come back resolved, with what the agent did
  • Every decision you make is searchable, so it isn't asked twice
Files
Files: the folder tree, a folder and a file's changes side by side
At your desk or on the go

One inbox for everything waiting on you

Every project on one page, most urgent first. Side by side on a big screen; on a phone, add it to your home screen and it opens like an app.

Inbox
The inbox on a desktop
Decisions
The decision log on a desktop
The inbox, every project
A review, comments on lines
One at a time
Before and after
The approval gate
Questions with recommendations
Notes for the agent
Any file, highlighted
How it goes

Four steps, no context switching

The agent asks

Questions, a review, or an approval: with the MCP tools or one CLI command. Each is its own file in .hitl/.

You get a ping

One notification on your desktop or phone, with a link straight to it. Over your Wi-Fi or Tailscale, behind a token.

You decide

Answer, review, mark up, approve. At your own pace; it saves as you go.

It reads only what's new

hitl news gives the agent just what changed, compactly, then it marks each one done.

Commands

For you, and for your agent

The CLI and the MCP server do the same things. npx hitloop --help lists every option.

npx hitloop init

Once per project: the .hitl folder, the MCP server for Claude Code, a note in CLAUDE.md.

npx hitloop

Start the page for every project. It prints links for this computer and your phone (LAN and Tailscale).

npx hitloop notify ntfy

Notifications on your phone or desktop, through the free ntfy app. Or notify webhook <url>.

npx hitloop hooks on --stop

Optional: don't let Claude finish while an approval or a blocking question waits.

npx hitloop import

Coming from questionme or folderview? Brings in .questionme/ and .review/.

Claude skill

Teach your agent when to ask you

A skill tells Claude when to use hitl (lots of questions, anything to review, anything risky) and exactly how. Copy it, or download it into your skills folder.

Download SKILL.md
Or install it in one line: mkdir -p ~/.claude/skills/hitl && curl -fsSL https://clickermonkey.github.io/hitloop/SKILL.md -o ~/.claude/skills/hitl/SKILL.md
Loading the skill…
Yours, on your machine

Nothing leaves your network

🏠

Runs on your computer

One small Node server for all your projects. No account, no cloud, no runtime dependencies.

🗂️

Saved in your project

Plain JSON and markdown in .hitl/. Commit it, read it, grep it. Every request is its own file.

🔒

A token by default

Reachable from your other devices over your Wi-Fi or Tailscale, but every request needs the token. --local for this computer only.

🧱

Agent output is untrusted

Markdown is sanitised, HTML mockups are sandboxed with no scripts, files can't run script on the page.

🤫

Secrets stay hidden

.env, keys and anything outside the project are never served, even through a link.

🧩

Any agent

An MCP server for Claude Code and other MCP clients, and a CLI any agent or script can run.

Put a human in the loop
in one command

$ npx hitloop init Read the docs on GitHub