Pause the agent. Review the action. Resume the run.
Pause the agent.
HITLy is an approval inbox
for Mastra, Hermes, HTTP, LangGraph, and Temporal.
Frameworks pause
Review the action.
your team decides or delegates
Resume the run.
HITLy resumes the original workflow.
Cloud — Join the waitlist
Local — open source (alpha) is available on GitHub.
01
Pause
Your workflow hits a Hitly step. Mastra suspends, Hermes prompts or blocks a kanban card, HTTP waits on a resume URL, LangGraph interrupts, Temporal signals.
02
Review
The action lands in the Hitly inbox with context, editable args, and the decisions you allow.
03
Resume
Accept, edit, or reject. Hitly maps the decision back to resume(), a webhook, Command, or a Temporal signal.
One surface for human decisions
Hitly is the review layer. Origins keep their pause primitives. Your org keeps the audit trail.
Unified review and approval
Agents and workflows pause in their own runtime. Reviewers decide in Hitly — same inbox, same decisions, web or mobile. You never approve inside Mastra Studio, Hermes CLI, n8n, or LangGraph.
Read the docs
Every agent and workflow platform
Mastra, Hermes, and HTTP callbacks are available today. n8n Wait is an HTTP recipe. LangGraph and Temporal mappings are documented. Pause primitives stay native; Hitly owns the envelope and the resume.
Read the docs
Governance and org chart
Workspace team, project roles, SLA rules, and an audit trail. Readers watch, users decide, admins own the origin. Membership is the org chart.
Read the docs
Plugins
We start with a handful of origins. HTTP covers n8n, Notion, and custom callbacks. We will support any framework that has demand.
Mastra
createHitlyApprovalStep() wraps suspend() and resume(). First-class plugin.
Hermes
Python approval transport for CLI/gateway commands; kanban block/review cards for autonomous profiles.
HTTP
POST ingest with a resumeUrl. Hitly POSTs { decision, id, metadata }. n8n, Notion, Make, custom callbacks.
n8n
Create an HTTP project. HTTP Request to Hitly, then Wait on webhook. Hitly POSTs to $execution.resumeUrl.
LangGraph
Maps HumanInterrupt onto the Hitly envelope and resumes with HumanResponse.
Temporal
Activity creates the approval; condition() waits; Hitly sends hitly.decision.