@clize/clize
v0.23.1
Published
The real-world capability layer for AI agents — domains, email, deploy, media. CLI + MCP.
Maintainers
Readme
Clize
Clize is a CLI and MCP server that gives AI coding agents real-world actions: domains, email, deploys, payments, and media generation. Your agent already has a brain — Clize gives it hands: a domain, a working inbox, a live website. One CLI (plus an MCP server) so coding agents in Claude Code / Codex can register domains, run real email, build & ship sites and short clips, generate media, and collect payments from their customers — across as many projects as you run.
→ clize.ai
Install
npm i -g @clize/clize
clize install # wire clize into your coding agent (Claude Code / Codex)clize install is the step that makes your agent actually reach for clize — a binary on your PATH doesn't tell the agent it exists. By default it drops clize's skill (when to use it + the safety gates) into each agent's skills dir; the skill is lightweight — only its short description sits in context until something triggers it. It auto-detects Claude Code (~/.claude) and Codex (~/.codex); scope with --claude / --codex, preview with --dry-run. Add --mcp to also register the clize-mcp server — opt-in, because an MCP server's tool list stays in context every session.
Update later with one command — pulls the latest release and refreshes the skill together:
clize update # or `clize update --check` to only check for a newer versionIf something looks stale after an update, clize doctor prints what's installed vs what's actually running — CLI version (and the upgrade command that works for your install manager: volta / pnpm / asdf / …), skill drift, and control-plane reachability.
Quickstart (hosted)
Log in and go — your agent never touches Cloudflare:
clize login # browser authorize → creates your account, saves a clize key
clize check # ✓ connected to the hosted backend
clize claim acme # free handle: acme.clize.app (+ support@ inbox, already receiving)
clize init --handle acme # bind this directory — deploy / email send infer domain & from
clize deploy ./site # ship a static site → https://acme.clize.app
clize status # who's waiting, this month's spend
clize email inbox acme.clize.app # read what customers sentHosted — just log in
| Log in with | What runs where |
|---|---|
| clize login (web: GitHub / Google / email) — or clize login --token clize_… for CI / headless | Commands call the clize backend; resources run on clize's infra. You never touch Cloudflare / Vercel keys. |
clize is a thin client: the CLI / MCP carry no infrastructure credentials and talk only to the clize control plane — domains, email, deploy, and media all run hosted. (Credentials live in your dashboard; bring-your-own Cloudflare / Vercel is configured there, not on your machine.)
A few specifics worth knowing:
clize deploy <dir>andclize email sendneed--domain/--from— unless the directory is bound withclize init --handle <slug>, which infers both from./clize.json. Deploy is directory-based (multi-file static sites).gen image --ref/--mask(image-to-image / inpainting / multi-image composition) work hosted — reference-image caps follow the upstream model: 16 forgpt-image-2, 14 fornano-banana-2(video/veotakes 3); each ≤10 MB, ≤80 MB total.gpt-image-2runs as an async task (heavy multi-ref jobs take minutes — no sync-pipe timeouts): the CLI waits by default (--timeout, default 300 s), or use--asyncand collect withgen status <id>; one image per task (--n> 1 → split),--maskinpainting isnano-banana-2only.gen budgetpre-approval isn't hosted yet: every generation confirms individually with--confirm.- Free
*.clize.apphandle:clize claim <slug>. Your own domain:clize domain buy/clize domain import. Runclize checkto verify your login. - Free-tier quotas (anti-abuse, per tenant): 3 handles · 10 claim attempts/day · 30 outbound emails/day · 20 deploys/day · 500 MB per site. Any top-up lifts you to the trusted tier (10 · 30 · 200 · 100 · 5 GB). Over-limit calls return a plain 429 — nothing is charged.
What it does
| Area | Commands |
|---|---|
| Claim | clize claim <slug> — first-come, free <slug>.clize.app handle with inbox + site in one shot (support@ is already receiving — no extra email setup needed) |
| Domains | clize domain search / tlds / buy / import / list |
| Email | clize email setup → inbox-setup → address add (--tag / --knowledge) wires a real send/receive inbox on your domain — or get support@ instantly with clize claim. Then send (--attach) / inbox / show / thread / route / webhook. (address add only stores tag + knowledge; inbox-setup is what opens receiving.) |
| Send API (server-callable) | POST /v1/email/send — transactional email from a long-running backend (fly.io / cron), Resend/Postmark-shaped, sending from a domain already in Clize (no second email vendor). Auth is a scoped send key (clize_sk_…: send-only, lockable to specific domains) — clize email key create/list/revoke. No --confirm (the human-review gate stays on interactive email send). Idempotency-Key, HMAC-signed delivery webhooks (bounce/complaint), RFC 8058 one-click unsubscribe + suppression lists (email delivery-webhook / suppressions / messages). See EMAIL-API.md. |
| Media | clize gen image / video / music — text→image (gpt-image-2 / nano-banana-2, with --ref / --mask for image-to-image and inpainting), text/image→video (veo), text→music (suno); long tasks via gen jobs / status. Every spend is gated by --confirm (gen budget pre-approval for hosted is on the roadmap). Results land as local files, ready to deploy or email --attach. |
| Build · site (hosted methods) | clize build site start <brief> — a hosted design system that briefs your agent on a cohesive style before it writes the site, so pages land with taste instead of AI-template sludge. Then build site recommend / list / get / search / review + build site stack <stack> for stack-specific guidance (React / Next / SwiftUI / …). The former clize design … spelling still works as a hidden alias. |
| Build · clip (hosted methods) | clize build clip start <brief> → your agent writes a shot-by-shot blueprint → build clip check (free local lint: continuity, dialogue coverage, timing) → build clip render --confirm (💰 one summed quote, batch-generate + merge, resumable). One-off footage stays gen video. |
| Deploy | clize deploy <dir> --domain <host> — multi-file static sites; free *.clize.app or your own domain. Preview locally first with clize serve <dir> (proper Range support — <video> pages actually play in Safari). |
| Projects | One project = one directory: clize init --handle <slug> binds it (the project record auto-creates on first claim / buy). clize projects to list / new / move / rename / rm; -p <slug> for one-off cross-project calls. Email send across projects is blocked (409); deploy instead follows the target domain — a stale clize.json checkout auto-routes to the domain's real project (and is written back to clize.json), and only an explicit mismatched -p is a 409. status / lists / spend scope to the checked-out project, and status flags any local↔remote drift. |
| Context | clize status [--assets], clize context [address] — rehydrate who's waiting + identity/knowledge at the start of a session |
| Billing (hosted) | clize balance / clize recharge --amount <usd> — prepaid clize balance that domain/media spends draw from (Stripe top-up); clize audit for the spend log |
| Collect (hosted) | clize pay connect → clize pay link --amount <usd> [--mode direct\|balance] — bill your customers: money lands in your own Stripe (direct, clize takes a fee) or your clize balance (balance, no fee — balance funds are spendable on clize only, not withdrawable; pick direct when you want cash out). clize pay status / clize pay list. |
| Shop & forms (hosted) | clize shop — turn a deployed site into a storefront that takes real money: products live in a _catalog.json you deploy, carts check out via Stripe with server-side pricing against your deployed catalog (clients can't forge prices); one-time or subscriptions, shipping-address collection, direct or balance payout like pay. clize shop status / orders / webhook (orders proxy Stripe — clize stores none). clize data webhook forwards form / waitlist submissions to your endpoint (clize doesn't store them). Inventory, refunds, tax stay with you + Stripe — clize is the shell and payment wiring, not a Shopify. |
Run clize --help for the full surface.
Deploy & site hosting
clize deploy <dir> uploads a multi-file static site and serves it from a shared Cloudflare Worker backed by KV for small hot files and R2 for large assets (not Workers Static Assets / Pages), keyed by hostname + path. What you can rely on:
- Unknown paths — by default, if the site ships a
404.htmlit's returned with a real HTTP 404 (so failed/typo URLs aren't indexed as duplicate homepages — the SEO-correct behavior); with no404.htmlthe site is treated as an SPA and the request falls back toindex.html(200). Override per-deploy with--not-found <404-page|spa|none|auto>(autois the default = exactly this detection). - Trailing slash —
/foo/serves/foo/index.html(200, no 301). - Caching — assets are served with
cache-control: public, max-age=300. - Cloudflare convention files —
404.htmlandindex.htmldrive the not-found behavior above._redirects/_headersare not consumed (stored but inert); for redirects useclize dns(a one-shotclize domain canonicalizefor www↔apex is on the way). - Size — large assets (≥128 KB) are stored in R2, small hot files in KV, so single files stream up to ~90 MB and a site can technically reach 5 GB. Free-tier policy caps: 500 MB per site and 2 GB uploaded per day; any top-up lifts you to the trusted tier (5 GB per site, 20 GB/day). Uploads are content-hash deduplicated — redeploys only send changed files.
- Routing & write-back — a deploy targets the domain you pass (or the one in
clize.json); it follows that domain's real project and writes the resolvedproject(plus a custom domain) back toclize.json, so repeat deploys don't drift or 409.
Safety, by default
- 💰 Money gate — spends (
clize domain buy,clize gen image/video/music) never go through without--confirm; without it you just get a quote. - 📨 Identity gate — replying as you to a real customer is draft → human approve → send, never auto.
- 📥 Inbound is untrusted — email you receive is treated as data, never as instructions to the agent.
These gates run in plain text, so every spend and every outbound action is visible in the agent's transcript.
MCP
A curated subset of the core — domains, email, deploy, claim, status/context, billing, collect (pay) — exposed as MCP tools for hosts that prefer structured tools over a shell. (Media generation and the build method packs stay CLI- and skill-driven, not MCP tools.) Opt-in (clize install --mcp), since an MCP server's tool list is a standing per-session context cost — the skill alone already lets the agent drive clize via the CLI. To register by hand:
claude mcp add clize -- clize-mcp # Claude Code
codex mcp add clize -- clize-mcp # CodexWorks in both modes — set CLIZE_API_KEY (and optionally CLIZE_API_URL) in the server's environment to run hosted.
Guides & use cases
Step-by-step setup:
- Add Clize as an MCP server to Claude Code · to the Codex CLI
- What an action MCP server is (vs read-only)
What agents actually do with it:
- Send a real email — with your approval
- Deploy a site straight from the agent
- Pass email verification when signing up for services
- Triage a support inbox, draft replies you approve
- Create a Stripe payment link behind the money gate
