← Docs

Quickstart

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