Quick start

Install the CLI, run ccat init in your Next.js project, and your agent can start its first test.

You bring the AI. We give it a CLI.

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.

01$ npm i -g <site>/ccat.tgz # install the CLI
02$ ccat init # proxy.ts, lib/ccat.ts, skills, key in .env.local
03$ ccat experiment create --page /pricing --variants a,b --goal signup # first test
04$ ccat variants scaffold # one file per variant
05$ vercel env add CCAT_KEY # then deploy as usual
06$ ccat results --json # read, decide, promote
Six commands from an existing Next.js project to a running test.

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 --version

Without 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:

filewhat it is
proxy.tsThe routing file (Next 16 and later; middleware.ts on older versions). See The proxy.
lib/ccat.tstrackConversion(event) and linkWallet(address) for server-side goals.
ccat.config.jsonProject id and API address. Safe to commit.
.env.localCCAT_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.tsx

The 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 --prod

Check 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.