Skip to main content

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?

  • Keep this moving: Users say what should keep happening; HUMΛN runs it on cadence
  • Governance: Policies cap cost, require approval, and surface meaningful changes
  • Magic by default: The builder accepts human schedules (weekdays at 8am) and converts them to cron
  • Control when needed: Full create() body for triggers, delivery, and policy overrides
  • Provenance: Every run is logged — inspect history and logs per object

Think 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

>
SDK:

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/mcp

Primary 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

Example MCP 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

← All patterns