zenlixai/hitl-mcp/hitl
Claude Code and agent skill by zenlixai/hitl-mcp
- community
Checking that the SKILL.md file is still in the repository.
Use whenever an agent needs structured human input. Public HITL contract is question-only: ask questions, inspect pending questions, submit partial answers, and wait on caller-scope progress.
Install
npx vskill@latest install zenlixai/hitl-mcp/hitlSKILL.md
hitl
Overview
Use hitl-mcp whenever the agent needs a human answer, approval, clarification, or confirmation.
Non-Negotiable Rule
hitl_ask is never the end of the workflow.
After every hitl_ask, the agent MUST immediately call hitl_wait.
Do not pause to reason about whether waiting is necessary. Do not treat ask as a notification-only action. Do not leave the question pending for "later" in the same agent flow. If the agent chose to ask, the next tool call must be hitl_wait.
The current public model is question-only:
- ask questions
- read pending questions in caller scope
- submit partial answers or skips
- wait on scope progress immediately after asking
Do not model public workflows around request IDs, groups, or interactions.
Critical rule: after every hitl_ask, call hitl_wait immediately. Asking alone only creates pending questions; it does not consume human feedback.
Caller Scope
Caller scope is transport-derived:
agent_identityagent_session_id
The server uses caller scope to isolate pending questions and wait behavior.
MCP Workflow
- Call
hitl_ask. - Immediately call
hitl_wait. - Inspect the wait result.
- If progress is still not terminal, call
hitl_waitagain when appropriate. - Use
hitl_get_pending_questionsonly to render or recover pending state, never as a substitute for the first post-ask wait. - Submit newly answered questions with
hitl_submit_answers. - Optionally skip optional questions with
skipped_question_ids. - Use
hitl_cancel_questionsif pending questions should be cancelled.
Required sequence:
hitl_ask -> hitl_wait -> inspect result -> continue or hitl_wait again
Forbidden sequence:
hitl_ask -> stop
Forbidden sequence:
hitl_ask -> do unrelated work -> hitl_wait
Forbidden sequence:
hitl_ask -> hitl_get_pending_questions -> stop
Tool Reference
hitl_ask: create one or more pending questionshitl_wait: wait on current caller scopehitl_get_pending_questions: list all current pending questionshitl_submit_answers: submit newly answered or skipped questionshitl_cancel_questions: cancel some or all pending questionshitl_get_question: fetch one question byquestion_id
Wait Semantics
Configured by HITL_WAIT_MODE:
terminal_only: return only when no pending questions remainprogressive: return after each question-state change
In progressive mode, call hitl_wait again after each response if you still need to observe progress.
Do not treat hitl_ask as completion. A correct blocking HITL flow is ask -> wait -> inspect returned progress -> continue or wait again.
hitl_get_pending_questions is not a replacement for the mandatory first hitl_wait after hitl_ask.
Rules
- After every
hitl_ask, the very next HITL tool call must behitl_wait. - Never end a HITL interaction on
hitl_ask. - Never substitute
hitl_get_pending_questionsfor the mandatory post-askhitl_wait. - Do not send
question_idwhen asking questions. The server generates it. - Multiple pending questions are allowed.
- Partial submission is allowed.
- Optional questions need an explicit skip action if they should be marked ignored.
- Required questions cannot be skipped.
- Never stop after
hitl_ask; always wait for scope progress withhitl_wait. - Do not invent public request/group identifiers in agent logic.
Anti-Patterns
Wrong:
- "I already asked, now I will continue and let the human answer later."
- "I can inspect pending questions later instead of waiting now."
- "This ask is only informational, so I do not need to wait."
- "I will ask several questions and finish this run without calling wait."
Right:
- "I called
hitl_ask, so my next step ishitl_wait." - "The wait returned progress; I will inspect it and either continue or wait again."
- "If I need the human answer, I do not proceed past ask without wait."
Minimal Example
Ask:
Use the returned server-generated question_id values in later submit, cancel, and get calls.
Submit part of the progress:
When no follow-up fields are needed, submitting plain { "value": ... } remains valid.
Skip the optional remainder:
Security
- Security scanPassed, 96 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/hitl/SKILL.md
Popularity
- Repository stars
- 54
- Repository forks
- 2
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/zenlixai/hitl-mcp/hitl)