Getting Started with Momentum on HUMΛN
Turn one-off workflows into scheduled, monitored loops that keep working after the chat ends.
What You're Building
Momentum is a HUMΛN primitive for recurring work: morning briefs, pipeline scouts, condition watches, and weekly reviews. Each Momentum object has:
- A goal (natural language — what to keep doing)
- A trigger (schedule, condition, or manual)
- Capability bindings (which connectors execute the work)
- A delivery target (Companion, Slack, email, …)
- Governance policies (approval, cost caps, notifications)
You create once; HUMΛN runs on cadence, remembers previous outputs, and surfaces meaningful changes.
Prerequisites
- HUMΛN org with developer access
@human/sdkor@human/cliinstalled- Delegation token with org context (
human login) - At least one connector relevant to your goal (e.g. HubSpot + Slack for a sales brief)
Step 1: Install the SDK
npm install @human/sdk
import { HumanClient } from '@human/sdk';
const client = new HumanClient({
delegationToken: process.env.HUMAN_DELEGATION_TOKEN!,
});
Step 2: Create with magic mode
Ninety percent of use cases need only a goal and a schedule:
const obj = await client.momentum
.build('Summarize overnight support tickets and post top themes')
.every('weekdays at 7am')
.using(['intercom', 'slack'])
.delivering_to('slack')
.create();
The builder converts human schedules (weekdays at 8am, every monday at 9am) into cron expressions. Override anything with control-mode fields on create():
await client.momentum.create({
name: 'Support digest',
goal: '…',
trigger: { kind: 'schedule', cron: '0 7 * * 1-5', timezone: 'America/Los_Angeles' },
policy: { require_approval: false, max_cost_per_run_usd: 2 },
});
Step 3: Activate and run
New objects start in draft. Activate to register the Inngest schedule:
await client.momentum.activate(obj.id);
const { run_id, status } = await client.momentum.run(obj.id);
CLI equivalent:
human momentum activate <id>
human momentum run <id> --follow
Step 4: Read logs and history
const history = await client.momentum.history(obj.id, { limit: 10 });
const { logs, run_id } = await client.momentum.logs(obj.id);
human momentum history <id>
human momentum logs <id> --follow
Step 5: Use a template
HUMΛN ships six first-party templates (Morning Brief, Pipeline Scout, Watch This For Me, Reclaim My Week, Local Event Scout, Social Signal Scout):
human momentum template list
human momentum template use morning-brief
const templates = await client.momentum.listTemplates();
const { template } = await client.momentum.getTemplate('pipeline-scout');
const obj = await client.momentum
.build(template.goal)
.from_template(template.id)
.using(template.suggested_connectors)
.create();
Step 6: Inspect and diagnose
const inspection = await client.momentum.inspect(obj.id);
// inspection.resolved_connectors, capability_map, last_run, next_run_at
human momentum inspect <id>
human momentum doctor <id>
doctor flags draft state, missing capabilities, failed last runs, and scheduling gaps.
CLI create with intent shaping
human momentum create optionally shapes an Intent brief first (same pipeline as human intent build), linking canonical_intent_id for lineage:
human momentum create "Find qualified leads from LinkedIn every morning"
# Skips intent: --no-intent
Reference
| Topic | Location |
|---|---|
| Terse quickstart | docs/runbooks/momentum-quickstart.md |
| Architecture deep dive | docs/guides/momentum-deep-dive.md |
| MCP integration | docs/guides/momentum-mcp-tools.md |
| Connector authoring | docs/runbooks/momentum-connector-authoring.md |
| Canon | kb/22_humanos_orchestration_core.md |
| API | POST /v1/momentum, POST /v1/momentum/:id/run |