ChiefLab in 60 seconds.
Three install paths, all equivalent. Pick one, get a key, fire your first launch. The product is the closed loop: chiefmo_launch_product → user approves on signed reviewUrl → chiefmo_publish_approved_post + chiefmo_send_approved_email → 24h later chiefmo_measure_launch_results.
Step 1 — Get an API key (10 seconds)
One click at chieflab.io/get-key. No email. The page mints a workspace + key for you. Save the clp_dev_… string.
Or, agent-first: have your agent call chieflab_signup_workspace on your behalf. The agent surfaces a single-use delivery URL; you click, copy the key, paste into your agent's config.
Step 2 — Install (pick one path, ~30 seconds)
CLI (friendliest for humans + scripted CI)
npm install -g @chieflab/cli
chieflab login # paste your key
chieflab whoami # verify Cursor (one-click)
Open this cursor:// link.
Paste your key when prompted. Restart Cursor. The chiefmo_* tools appear in your tool picker.
Claude Desktop / Claude Code / any MCP host
Install the stdio bridge:
npm install -g @chieflab/mcp-server Then in your MCP host config:
{
"mcpServers": {
"chieflab": {
"command": "chieflab-mcp",
"env": { "CHIEFLAB_API_KEY": "clp_dev_<paste-your-key>" }
}
}
} Restart your host.
Direct HTTPS (no install)
curl https://chieflab.io/api/mcp \
-H "Authorization: Bearer clp_dev_..." \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"chiefmo_launch_product","arguments":{"productUrl":"yoursite.com","goal":"Get our first 100 users"}}}' TypeScript SDK (typed methods)
npm install @chieflab/sdk
// In your code:
import { createClient } from "@chieflab/sdk";
const chieflab = createClient({ apiKey: process.env.CHIEFLAB_API_KEY });
const launch = await chieflab.launchProduct({ productUrl: "yoursite.com", goal: "..." }); Step 3 — Fire your first launch (~20 seconds)
From the CLI
chieflab launch yoursite.com \
--goal "Get our first 100 users" \
--channels linkedin,x,email From inside Cursor / Claude Desktop / Codex
> I just shipped my product at https://yoursite.com.
Use ChiefMO to launch it. The agent picks chiefmo_launch_product automatically (BM25 match on "launch" + the server-level instructions field).
What you get back
{
"launchId": "...",
"launchPack": {
"positioning": { ... }, // source-of-truth paragraph
"channels": {
"linkedin": { body, ... }, // per-channel briefs
"x": { body, ... },
"email": { body, ... }
}
},
"publishActions": [ // approval-gated, persisted
{ id, channel, connector, executorTool: "chiefmo_publish_approved_post",
status: "awaiting_approval", preflight: { ... } }
],
"reviewUrl": "https://chieflab.io/runs/<id>?token=..." // HMAC, 7-day TTL
} Step 4 — Approve in browser → ship
Open the reviewUrl. No login. Read the briefs. Approve each action. Then your agent fires:
chieflab publish <actionId> --content "..." \
--platform linkedin --account zer_acc_xxx
chieflab send-email <actionId> --from "Brand <[email protected]>" \
--to [email protected] --subject "Launch day" --html "<h1>...</h1>" Each fires for real (Zernio for social, Resend for email). Returns the live platform URL / messageId. Read the full closed-loop guide →
Step 5 — 24h later
chieflab review <runId> Pulls Zernio engagement + GA4 traffic + Search Console queries. Recommends ONE next-iteration change. The cron at /api/cron/tick auto-fires this for every publish that records a launch_followup row, so even if you never call it manually the metrics + recommendation get webhooked back to you (if webhookUrl was set on the launch).
What's next
- The closed loop in depth — every step, every gate, every guarantee
- MCP reference — JSON-RPC contract, all 40 tools, error codes
- For AI agents — instruction text agents read at session start
- Open your dashboard — see every run, manage tenants, manage connections