Skip to content

Docs

What is human in the loop?

An agent stops for a person where it should. How Hamloy does it with questions, requests and assumed answers, without you watching a terminal.

"Human in the loop" means an agent's work has places where a person decides or acts, and the agent stops there instead of going on alone.

The hard part is where. An agent that asks about everything needs you at the terminal all day. An agent that asks about nothing decides what was yours to decide: which payment provider, whether Android matters, what the app is called.

Two kinds of stop

Hamloy splits them, because they need different things from you:

  • A decision is a question. The agent gives the options, with the one it recommends, and the reason. You pick one, or write your own.
  • Something only you can do is a request: an account, a key, a payment, a deploy. The agent writes the exact steps, and the environment variable or name to use. You do it and tick it.

Both go on lists you see on the board, from any computer or your phone's browser. You answer when you look, not when the agent happens to stop.

Where should synced habits live?
Ccodex 3d ago
Supabase: Postgres with auth and row-level security built in recommended
Our own Postgres on Fly.io
iCloud only, no server
Or answer in your own words Why (optional) Answer

Answering this lets Offline sync with a local SQLite cache go ahead.

C codex · ~/pebble · feat/offline

• I asked you where synced habits should live (Q-sy2c). Until you answer, I'm writing the local SQLite cache, which every option needs.

The agent doesn't wait idle

A question doesn't have to stop the work:

  1. The agent adds the question and a task that waits on it.
  2. If it can't wait, it assumes the option it recommends, and goes on. The question stays open for you, marked assumed.
  3. When you answer, the same option confirms it. A different one opens again every task that was done on the assumption, with a note to redo it.

What the agents read when you overturn an assumption:

Hamloy news (what changed since you last looked):
- The human answered Q-229x "When does a day end?": At midnight
- The human opened B-lm4l "Count late check-ins for the day before" again: Q-229x was answered "At midnight", not the assumed "At 4am, for night owls". Redo it for the real answer.

Answers reach every agent

You can answer on the board with one click, or tell an agent in chat, which writes it down with answer. Either way it is signed as yours, and every agent working on the project hears it under its next tool reply, not just the one that asked. Work that waited on it is free:

⏺ hamloy - Record an answer (MCP)(key: "Q-q0ae", answer: "2", why: "No server to pay for while it's iPhone only.")
  ⎿  Q-q0ae@3 answered: CloudKit: free, Apple only
     no longer waiting on it: B-xtiv

The rules agents are given

Every agent's first reply carries the same rules. Two lines of them are about you:

- Requests are what only the human can do (accounts, keys, money, deploys), with exact steps. Questions are the human's decisions, with options and yours recommended. Work that can't go on before one is done or answered waits on it (needs).
- When the human says who an item is for, set its for field: you for the human (their own work stays a task), or an agent by name (claude, codex). Make a list or a view only when the human asks for one.

And the answer tool tells the agent never to pick an answer itself. An agent that tries to claim an item for you is refused, and told to take it only if you asked it to.

Seeing what waits for you

On the board, For you gathers what waits for you. In Claude Code, the program can show it in the status line, beside your session:

S claude · streaks · ~/pebble

> Do the streak counter next.

⏺ hamloy - Claim an item (MCP)(key: "B-k3f9")

⎿ B-k3f9@2 claimed by this session

⏺ Writing the streak count for each habit now.

>

Hamloy ◐ B-k3f9 Streak counter on the… 2 for you · 5 ready

For you2 questions waiting for you

How should a shared streak look?

claude · 2d ago
A square card with the habit, the streak and a tiny chartrecommended A story-sized image with a big number

Which sign-in should Pebble have at launch?

claude · 5d ago
Apple, plus an email link for the webrecommended Apple and Google
You answer one of two questions on the board. Claude Code's status line goes from 2 for you to 1. The status line is opt-in, and Claude Code's alone.

There is no push notification and no phone app. You look when it suits you, and the agents carry on with what doesn't need you in the meantime.