HL HITL
Sign in

Human in the loop

Your agent reaches you. You answer from your phone.

An agent working on its own eventually hits something only you can decide. HITL is how it taps you on the shoulder — a notification when it finishes, a question when it is stuck, and your answer carried back into the session while it waits.

Connecting a machine

about two minutes, once

Step one

Install the CLI

npm i -g hitl-cli

Node 18 or newer. No other dependencies.

Step two

Sign in

hitl login

It prints a short code and opens this site. You approve the machine here and choose which application it sends as — that is what decides whose phone it reaches.

Step three

Switch the hooks on

hitl init            # this project
hitl init --global   # every project

Merges into your Claude Code settings without disturbing what is already there. Either way, a project you have not run hitl login in stays silent — so --global means "be ready everywhere", not "report everything".

There is no key to copy and no script to install. The credential belongs to that one machine, so you can disconnect a laptop without silencing anything else.

What reaches your phone

When What arrives
It finishes a turn What it actually did, not just that it stopped. Quiet by default for anything that finished in under ninety seconds — a turn you watched happen is not worth interrupting you for.
It needs permission Including the command it wants to run, so you can decide without opening a laptop.
It asks a question You reply in your own words. The session is still sitting there waiting, and picks your answer straight up.
It wants approval Approve or deny, or a set of named choices the agent offered.

From the command line

The other direction: an agent stops and genuinely waits for you.

hitl ask "Ship v2.41 to production?"

Blocks until you answer, then prints what you said. Tell your agent it exists and it will reach for it instead of guessing.

Or over MCP

Every agent client already speaks this, so there is no integration to write — a URL and a token.

claude mcp add --transport http hitl \
  https://hitl-admin-web.fly.dev/mcp \
  --header "Authorization: Bearer $HITL_TOKEN"

Gives the agent four tools: tell you something, ask you something, ask your approval, and check whether you have answered.

Sign in to get started

You need an account before a machine can be approved against it.

Continue with Google

Google authentication is required.