Momentum
Overview
Turn one-off workflows into durable, governed loops that keep running after the chat ends. Momentum is a HUMΛN primitive for recurring work — morning briefs, pipeline scouts, condition watches, and weekly reviews — with schedules, connector bindings, delivery targets, and cost/approval policies.
Shipped surface: client.momentum on @human/sdk → /v1/momentum/*. There is no fictional HumanOS.createLoop() helper.
Why Momentum?
weekdays at 8am) and converts them to croncreate() body for triggers, delivery, and policy overridesThink of it like: A standing calendar invite that actually does the prep work — not a reminder to do it yourself.
Shipped Momentum surfaces
| Surface | Path / accessor | Purpose |
|---|---|---|
| SDK builder | client.momentum.build(goal).every(...).create() | Magic-mode loop creation |
| SDK client | client.momentum.create / list / get / activate / run / pause / resume | Full lifecycle |
| REST | GET/POST/PATCH/DELETE /v1/momentum | HTTP parity |
| MCP | human.momentum.* tools on org MCP endpoint | AI client integration |
Try it — create, activate, run
Control mode — full create body
When the builder is not enough, call client.momentum.create() directly:
const { momentum } = await client.momentum.create({
name: 'Pipeline scout',
goal: 'Detect HubSpot stage changes and post deltas to #sales',
trigger: {
kind: 'schedule',
cron: '0 8 * * 1-5',
timezone: 'America/Los_Angeles',
},
preferred_connectors: ['hubspot', 'slack'],
delivery: { primary: 'slack', format: 'immediate' },
policy: {
require_approval: false,
max_cost_per_run_usd: 1.5,
},
});await client.momentum.activate(momentum.id);
Templates and canonical intents:
const templates = await client.momentum.listTemplates({ limit: 10 });
const fromTemplate = await client.momentum
.build('Weekly revenue recap')
.from_template(templates.data[0]?.id ?? 'template_sales_recap')
.every('every monday at 9am')
.create();// Bind a canonical intent id when routing from Intent detection
await client.momentum
.build('Keep customer onboarding tasks moving')
.from_intent('intent://onboarding/nudge')
.every('weekdays at 10am')
.create();
Lifecycle helpers: pause, resume, update, delete, and inspect map to POST/PATCH/DELETE /v1/momentum/:id/*.
Keep this moving (intent alias)
Community and Companion copy link /docs/patterns/intent/keep-this-moving. That URL is an alias of this pattern.
The “Keep this moving” affordance creates a Momentum object from detected intent — same APIs as above. Use from_intent() when you already have a canonical intent id from Intent routing.
Prefer this page (momentum) in new links.
MCP Momentum tools (alias)
/docs/patterns/mcp/human-momentum-tools is an alias. AI clients call the org MCP mesh:
https://{your-org-slug}.mcp.haio.run/mcpPrimary tools (generated from OpenAPI x-mcp-tool on momentum routes):
| Tool | API |
|---|---|
human.momentum.create | POST /v1/momentum |
human.momentum.run | POST /v1/momentum/:id/run |
human.momentum.list | GET /v1/momentum |
human.momentum.get | GET /v1/momentum/:id |
tools/call create payload:{
"name": "human.momentum.create",
"arguments": {
"name": "Morning pipeline brief",
"goal": "Summarize HubSpot pipeline changes and post to #sales",
"triggers": [
{ "kind": "schedule", "cron": "0 8 * * 1-5", "timezone": "America/Los_Angeles" }
],
"preferred_connectors": ["hubspot", "slack"],
"delivery": { "primary": "slack", "format": "immediate" },
"policy": { "max_cost_per_run_usd": 1.5 }
}
}Deep dive: Momentum MCP tools guide.
Ops cadence
Daily standup digests, SLA watches, and queue health summaries on a schedule
Companion handoff
User says “keep this moving” — loop survives after the session ends
Connector-bound work
HubSpot + Slack + email briefs with cost caps per run
Governed automation
require_approval policy for loops that touch production systems
DO
Activate only after reviewing policy.max_cost_per_run_usd and require_approval
Use delegation tokens scoped to momentum CRUD + run for MCP clients
Inspect history and logs when a run fails — do not blindly re-run
DON'T
Leave draft objects with production connector credentials unattended
Invent HumanOS.createLoop or client.momentum.subscribe helpers
Disable approval policy on irreversible external actions
Getting started guide
Step-by-step SDK + CLI walkthrough: Momentum getting started.
Related guides: Momentum deep dive · Momentum MCP tools.
Next Steps
See Also
client.momentum → /v1/momentum (@human/sdk)https://{org}.mcp.haio.run/mcpSame route in the other SDKs
The TypeScript tab above is the contract. These calls hit that same route.