Skip to content

privacy

What leaves your machine.

Nothing does. Not on the first run and not on the thousandth, because the shipped binary has no code path to a socket. Every claim below names the file you can open to check it, so none of it has to be taken on trust.

The tool

ccx collects nothing and sends nothing. There is no account, no key of ours, no usage ping, and no opt-out to hunt for, because there is nothing to opt out of. It launches the official claude and codex binaries already on your machine, under your own logins. What those two send to Anthropic and OpenAI is between you and them, on terms you already agreed to.

That is a checkable claim rather than a promise, and here is how to check it. Every line of network code in the repository lives in one file, src/share.mjs, and all of it funnels through one function there, call(), which is the only place fetch is named anywhere in src/ or bin/. The binary, bin/claudecodex.mjs, imports six things from that file — buildReceipt, writeReceipt, renderReceipt, buildPayload, previewLines and payloadBytes — and not one of them can reach call(). The argument parser has no --share, --shares, --unshare, --sync or --licence to reach them with either.

The billing module, src/license.mjs, is imported by nothing outside its own test file. test/license.test.mjs keeps it that way: it copies the tool into a temporary directory, replaces that module with a booby trap that writes a marker and throws, and runs seven real argvs through the real binary. If any of them so much as loads licence code, the suite goes red.

ccx --share-dry exists for the same reason. It does a full run, prints the exact bytes an upload would carry with every redaction rule applied, and then sends none of them.

What ccx writes to your disk

Four things, all under ~/.claudecodex — or $CLAUDECODEX_HOME if you set it — and all written 0600, owner-only.

Nothing is written anywhere else, and nothing is written outside your home directory. There is no daemon, no launch agent and no background process.

This website

No analytics, no tag manager, no error reporting, no embedded video player, no webfont. Every byte this site loads comes from this site. You can watch that in a network panel, and it is the reason the type is a system stack rather than something prettier fetched from a font CDN. The Content-Security-Policy header in site/vercel.json enforces it: a request to any other host is blocked by your own browser, whether or not we meant to make it.

No cookies. The front page sets one key in localStorage, ccx.seen, so the opening replay plays once instead of on every visit. It is a flag, it never leaves your browser, and clearing site data removes it.

The site is served by Vercel, which keeps ordinary access logs for its own operations. We do not read them and nothing is joined to them.

If you email me

Then I have your address and whatever you wrote, in a mailbox, until one of us deletes it. It is not added to a list, because there is no list.

The hosted tier, which is not live

None of this section is running. The Cloudflare Worker that would serve it is written and sits in worker/ in the repository, deployed nowhere. There is no account to make, no card to enter and nothing stored on any server of ours today. It is described here in the future tense so that the terms are public before the thing exists rather than after, and this page changes before any of it goes live.

Four things would need a server. Here is what each would hold.

A run you choose to share

Brain sync across your machines

Paying

Two things that stay true either way

If any of this changes

The date below changes with it, and the change will say what is new rather than quietly widening a sentence. Pricing lists the four things that could ever need a server and the public test each has to pass before it gets built.

These are drafts. They were written by the person who wrote the code, to be accurate rather than to be safe, and no lawyer has read them. If you need a reviewed policy before you can use ccx at work, say so and I will get one done.

Last changed 31 July 2026. Questions: angus@angusangus.com. See also the terms.