Quick start
Install the CLI, run ccat init in your Next.js project, and your agent can start its first test.
ConversionCat never calls a model. Your agent reads the page, writes the variants and reads the results; ccat and the API do the routing and the counting.
Install
The CLI is a single Node package served from this site. Node 18.17 or later.
npm i -g https://conversioncat.dev/ccat.tgz
ccat --versionWithout a global install: npx -y https://conversioncat.dev/ccat.tgz init.
No terminal at hand? The web CLI runs the same commands in the browser: open your project folder (Chrome, Edge) and it writes the files there, or download them as a zip. Payments in USDG go through your wallet from the same page.
ccat init
Run it at the root of a Next.js App Router project. It registers the project with the API and writes:
| file | what it is |
|---|---|
proxy.ts | The routing file (Next 16 and later; middleware.ts on older versions). See The proxy. |
lib/ccat.ts | trackConversion(event) and linkWallet(address) for server-side goals. |
ccat.config.json | Project id and API address. Safe to commit. |
.env.local | CCAT_API and CCAT_KEY. Never commit it; ccat adds it to .gitignore. |
.claude/skills/conversioncat/ | The agent skill. See Agent skills. |
If the project already has a proxy or middleware file, ccat writes ccat.proxy.ts next to it. Call its exported function first in yours and return its response.
Your first test
ccat experiment create --page /pricing --variants a,b --goal signup
ccat variants scaffold
# edit app/%5Fv/b/pricing/page.tsxThe first variant is the control, the page as it is today. Variant files live under app/%5Fv/, which Next.js serves at /_v/; visitors never see that URL.
Deploy
vercel env add CCAT_API production
vercel env add CCAT_KEY production
vercel deploy --prodCheck one response: curl -sI https://your-site/pricing | grep x-ccat prints the decision time in milliseconds.
The prompt
With the skill installed, one sentence is enough:
Set up a ConversionCat test on /pricing with two variants that try a
stronger headline and a shorter plan table. Goal: signup. Then deploy.