The unified API for autonomous companies. Ship a real business — website, backend, payments — from one terminal.
Most platforms give you one piece — a host, a payment processor, a database. MyAPI gives you the whole company behind a single key: register a domain, publish a site, run backend functions, take payments, send email, store data. One CLI, one SDK, one auth model — built so a person or an AI agent can operate the entire thing end to end.
This repo is the client half of the platform: the CLI, the TypeScript SDK, and the agent skills. It all runs on your machine.
This runs right now — copy, paste, done:
npm i -g @myapihq/cli
myapi auth setup
echo '<h1>We are live</h1>' | myapi funnel push /✓ Pushed page to /
Preview: https://swift-fox-42.makeautonomous.com
A real, public website in 30 seconds. No config, no deploy step, no account form — auth setup creates an anonymous account, an org, and a site for you.
Then give it a backend and a checkout:
myapi fn deploy <id> ./api.js # edge function
myapi payments charge --amount 19 # Stripe checkout linkRun myapi --help for the full command surface.
Go from idea to a paid product without standing up infrastructure:
myapi funnel publish ./site # your landing page, live
myapi fn create --name api # an edge function
myapi fn deploy <id> ./api.js # ship its code
myapi payments connect --stripe-key sk_live_… # link your Stripe
myapi payments charge --amount 29 --every month --description "Pro plan"The funnel is your site, the function is your backend, payments hands you a hosted Stripe Checkout URL. No servers to manage.
Functions are plain JavaScript that run on the edge, with the MyAPI SDK built in.
Every capability is in the SDK, typed, behind one key — so an agent can take real-world actions without juggling five vendor APIs:
import { funnel, payments } from '@myapihq/sdk';
await funnel.publishFiles(key, orgId, funnelId, files);
const charge = await payments.createCharge(key, orgId, {
amount_cents: 1900,
description: 'Pro plan',
});
console.log(charge.checkout_url);And skills/ holds drop-in skill definitions that teach an AI coding agent (Claude, Gemini, Cursor) to drive MyAPI directly:
myapi install-skillsOne key, one CLI, one SDK — across every capability a company needs:
- Web —
funnel(sites & landing pages),domain(registration + DNS),url(short links) - Backend —
fn(edge functions),workflow(event automations),database(KV store),storage(assets) - Payments —
payments(Stripe Checkout: one-off & recurring) - Comms —
email(send + verify),webhook(inbound events) - Data & AI —
llm,image,crm,people,company,audience,pixel
Coming soon — payments with no Stripe account of your own. Today
paymentsconnects your Stripe account. Managed payments — take real money without your own Stripe account or a registered company — is on the way. The goal: anyone, or any agent, can run a business end to end.
Maturity varies by service — myapi status shows the live picture. Today, roughly:
| Status | Services |
|---|---|
| ✅ Stable | hq · domain · funnel · email-verify · image · webhook · crm · storage · database · workflow · llm |
| 🧪 Preview | email · url · functions · payments · people · company · audience |
| 🔜 Planned | pixel |
packages/cli @myapihq/cli — the myapi command-line tool
packages/sdk @myapihq/sdk — the TypeScript SDK
skills/ agent skill definitions (Claude, Gemini, Cursor)
packages/n8n n8n community node (experimental)
packages/make Make (Integromat) modules (experimental)
The experimental packages work but aren't published to their marketplaces yet — PRs welcome.
npm install @myapihq/sdkimport { hq, funnel } from '@myapihq/sdk';
const orgs = await hq.listOrgs('hq_live_…');
const funnels = await funnel.listFunnels('hq_live_…', orgs[0].id);# Build (SDK first — the CLI depends on it)
cd packages/sdk && npm install && npm run build
cd ../cli && npm install && npm run build
node dist/index.js --helpThe CLI test suite runs in tiers:
cd packages/cli
npm test # fast unit tests — no build, no network
npm run test:smoke # builds, then exercises every --help / error path — the push gate
npm run test:online # mutating tests against a real test account (skipped if unconfigured)Tier 1 runs against an isolated HOME, so it never touches your real ~/.myapi/config.json. Service base URLs can be pointed at a local backend via MYAPI_*_URL env vars — see packages/sdk/src/config.ts.
Cutting a release? See RELEASING.md.
Zero third-party dependencies. The CLI and SDK pull in no third-party runtime code — the CLI's only dependency is the MyAPI SDK, which is ours. JavaScript's package ecosystem gets compromised regularly, and a globally-installed CLI that holds your API key must not inherit that risk. Zero dependencies means you can audit the whole client yourself. The same standard applies to the infrastructure behind the API.
Built for agents. Two numbers decide how good an agent tool is: tokens spent reading its output, and latency per call. We optimize both. A lean CLI beats MCP on each — MCP adds schema and per-call overhead the agent pays every time. We may ship an MCP server if there's demand; the CLI stays the primary surface.
No lock-in. Every MyAPI service is optional. Use one, use all of them, or use none and bring your own. Where we can, we give you a second option — you are never trapped in our ecosystem.
Issues and PRs welcome. For significant changes, open an issue first to discuss the approach.
Apache-2.0 — see LICENSE.