// AGENT STOREFRONT · CODEX
Codex and Stripe: one install, three agents, no Stripe key
Codex does not keep skills in ~/.codex. It reads the open Agent Skills directory at ~/.agents/skills — the same files Pi and OpenClaw read — so clize install --codex wires up three agents at once, and Claude Code is the odd one out with a directory of its own. After that install, a Codex session can run clize pay link --amount 49 and get back a live Stripe Checkout URL without a Stripe account, a secret key or a verification queue. The buyer's payment is credited to your Clize balance in full, with no platform cut; it spends on domains, deploys and generated media and does not withdraw to a bank today. If you also want the MCP server, note that the registration command is not the one OpenClaw takes.
Codex reads a shared directory, so one install covers three agents
The first surprise for most people is where the files go. Codex does not look in ~/.codex/skills. It reads the open Agent Skills directory at ~/.agents/skills, the vendor-neutral location the standard defines — and Pi and OpenClaw read the very same path. Install once and all three agents on that machine can charge a customer:
$ npm i -g @clize/clize
$ clize login
$ clize install --codex
Four skills are written: clize for the real-world actions, plus clize-seo, clize-site-build and clize-site-debug. Run it with --dry-run first and it prints the exact target paths and exits without touching anything, which is the honest way to find out that --codex, --pi and --openclaw all resolve to the same four files. Claude Code is the exception: it keeps its own ~/.claude/skills, so installing for Claude Code is a separate write.
One trap, worth naming before you fall into it. Do not also keep a project-local copy of the skill in whatever repository you happen to be working in. Two skills with the same name — one in the workspace, one in the shared personal directory — compete for priority, and which copy wins is not something you want silently deciding whether a refund command is gated. Keep the single user-level copy, and let clize update refresh it; that command knows about volta, asdf, nodenv, pnpm and bun, and re-verifies the running version afterwards, so the skill and the binary cannot drift apart.
Registering the MCP server: the syntax is not the same on every host
The skill is the default and is enough on its own — it teaches the agent to call the clize CLI, which keeps a tool list out of the context window in every session. Structured tools are opt-in, and this is where the hosts stop agreeing with each other:
# Codex — separator form; the stdio command follows a bare `--`
$ codex mcp add clize -- clize-mcp
# OpenClaw — no separator; the command is a flag value
$ openclaw mcp add clize --command clize-mcp
Copy the wrong one and the registration either fails outright or records a server that never starts. clize install --codex --mcp sidesteps the question by running the right form for you, and if the codex binary is not on PATH it prints the command to run by hand rather than pretending to have succeeded. Pi is the deliberate gap: its registration syntax has not been measured on a real machine, so the installer skips MCP for Pi and says so out loud instead of guessing. The skill still installs there, because it is the same shared file.
Whichever host you are on, the server is broader than a shop needs. Narrow it with --profile storefront and the agent sees fifteen tools rather than the whole surface: payments, orders, single-order detail, the daily to-do list, fulfilment, notification, refunds, shipments, the event stream, the outbound webhook, the form receiver, and three account calls for status, balance and top-up. Nothing about domains or media is in the way. The subset is a flag, not a second listing: the per-line thin packages and their registry entries were withdrawn on 2026-09-04, leaving one package (@clize/clize) and one entry (ai.clize/clize).
What a Codex session can actually charge for
Two shapes, and they need different amounts of setup.
One customer, one amount. Nothing to deploy, nothing to configure:
$ clize pay link --amount 49 --to buyer@example.com --for "invoice 1042"
Out comes a live Stripe Checkout URL. The buyer sees Stripe's hosted form and gets Stripe's receipt; you supplied no key, opened no account and waited for no review. clize pay list reads the links back later, newest first, and clize pay status reports which payout mode you are genuinely in.
A store. Deploy a static site through Clize, put a _catalog.json at its root, and the checkout, the orders and the buyer-facing pages come with the hosting. clize shop init prints the whole contract — the catalogue shape, the add-to-cart markup and the cart script — and the server prices every basket against the catalogue you actually deployed, ignoring whatever the browser claims a product costs. The catalogue file has its own generator and validator if you would rather not hand-write it.
Where the money ends up. Charges are collected on Clize's own Stripe account, and your Clize balance is credited with the full amount the buyer paid — the platform keeps no percentage of it. The balance spends on what Clize sells: domain registration and renewal, hosted deploys, and generated images, video and music. It does not move to a bank. Paying out into a merchant's own Stripe is real code behind clize pay connect, but the platform switch is off, so it is not an option you can pick today. One consequence to plan around rather than discover: recurring billing needs that mode, so a subscription checkout in balance mode returns an explicit error instead of half-working.
The two commands that answer instead of acting
An agent that can charge a customer can also refund one, and can also email one. Those two verbs are where autonomous coding agents earn their reputation, so in Clize they are not autonomous:
| You run | What you get back | What actually happened |
|---|---|---|
clize shop refund <id> | A quote: charge amount, how much has already been returned, the payout mode it would use. | Nothing. No money left the account. |
clize shop refund <id> --confirm | The refund, with an idempotency key built from the order and the amount already refunded. | Stripe is called once, even if the agent loops. |
clize shop notify <id> | The full draft: sender, recipient, subject, body, tracking link. | Nothing was sent. |
clize shop notify <id> --confirm | A sent email and an emailed_at stamp. | A second send is refused without --allow-duplicate. |
The reason this matters more under Codex than in a chat window is that a Codex run is often not being watched. A host approval prompt protects you while somebody is at the keyboard; it protects nothing in a scheduled job. Putting the rule inside the product instead means it holds in every host, interactive or not — and it is the same rule whether the session is Codex, Pi, OpenClaw or Claude Code, because they are all reading the same skill file.
Everything else that touches an order is bookkeeping with no external effect: clize shop todo for the day's work, clize shop fulfill to record sourcing and tracking, clize shop orders and clize shop order to read state back. Each transition is appended to that order's history and to a replayable stream, so clize shop events answers the question of what the agent did while you were away.
What this is not
Short list, because the edges decide the fit faster than the features do.
- Not the Stripe MCP server. Clize holds no key to your Stripe account and cannot read your balance, list charges, look up a customer or cancel a subscription. If that is the job, Stripe publishes its own server for it and you should use that instead.
- No withdrawals. Balance funds stay inside Clize until direct payout is switched on at the platform level. Do not plan around cash leaving the system.
- No recurring billing today. Subscriptions require the direct payout mode, so a subscription order in balance mode is refused with an error rather than silently charged once.
- No file delivery. The catalogue carries a SKU, a name, a price, an image, a description and an optional interval. There is no downloadable-file field and no licence-key issuing, so digital-goods stores are out of scope until that changes.
- No inventory, no tax. Stock counts and VAT are yours. Overselling is possible and refunding one of the two orders is the fix — with a preview first.
What remains is narrow and true: a Codex session can create a real payment link in one command, follow an order to delivered, keep a buyer informed, and never move money or reach a stranger without you saying so. The install takes about a minute, and every command named here is in the reference.
// FAQ
Where does Codex look for skills?
Codex reads the open Agent Skills directory at ~/.agents/skills, not ~/.codex/skills. Pi and OpenClaw read the same path, so clize install --codex, --pi and --openclaw all write the same four files. Claude Code is the exception and keeps its skills in ~/.claude/skills.
How do I add the Clize MCP server to Codex?
Run codex mcp add clize -- clize-mcp, with a bare -- separator before the stdio command. OpenClaw uses a different form, openclaw mcp add clize --command clize-mcp, and copying the wrong one records a server that never starts. clize install --codex --mcp runs the correct form for you and prints the manual command if the codex binary is not on PATH.
Can Codex take a Stripe payment without a Stripe account?
Yes. clize pay link --amount 49 returns a live Stripe Checkout URL collected on Clize's Stripe account, so there is no signup, no business verification and no secret key on your side. The buyer pays on Stripe's hosted page and the full amount they paid is credited to your Clize balance.
Can I withdraw the money to my bank account?
Not today. Payments land in your Clize balance with no platform fee, and that balance is spendable inside Clize on domain registration and renewal, hosted deploys, and image, video and music generation. Direct payout into a merchant's own Stripe account is built but not enabled at the platform level, so nothing currently leaves the system.
Does the Clize storefront support subscriptions?
Not in balance mode, which is the only mode running. Recurring billing requires the direct payout mode, so a checkout containing a subscription product returns an explicit error rather than charging once and appearing to work. One-off charges and one-off carts are fully supported.
Do the refund and email gates work differently in Codex than in other agents?
No, and that is the point. The gate is implemented in the clize product rather than in a host permission prompt, so clize shop refund and clize shop notify return a preview and a draft in every host, including unattended scheduled runs where no approval dialog could be answered. Only --confirm performs the action, and both are written to the order history.
Wire Codex up once, and Pi and OpenClaw come with it.
One shared directory, one CLI, and a Codex session that can open a real Stripe Checkout link without ever holding a key to a merchant account.
$ npm i -g @clize/clize && clize login $ clize install --codex $ clize pay link --amount 49 --for "invoice 1042"[ Agent Storefront → ]