Pricing

Free to read. $2.99 to be told.

one plan · $2.99/month · cancel any time
Where the line is

Everything that answers a question you thought to ask is free, and stays free — the dashboard, the one-shot reports, and craft configure, which creates the GA4 property for a domain and hands you its tag.

Two things run when you are not there: craft watch, which checks the numbers against their own recent normal and tells you what broke, and craft mcp, which lets an assistant read the site. Those two are the subscription.

Miner
Free
no account, no card, no expiry
  • craft configure — creates the property, prints the tag
  • The dashboard — seven panels, realtime feed, achievements
  • One-shot reports — overview, pages, portals, realms, live
  • Every property you save, five palettes, synthetic-data mode
Apache-2.0. The whole thing is on GitHub.

Every command, and which side it is on

CommandPlanWhat it does
craftFreeThe dashboard. With no property saved it runs on synthetic data
craft configureFreeCreates the GA4 property and web stream, prints the tag with the real measurement id
craft login · props · useFreeSign in, list properties, pick the default
craft overview · pages · portals · realms · liveFreeOne-shot reports that print and exit
craft theme · demoFreePalettes, and the whole dashboard on synthetic data
craft watch★ AnacrafterCompares the last complete day against its own normal and reports what moved
craft slackFreePicks the channel craft watch posts to — free to set up, though the watch that uses it is not
craft mcp★ AnacrafterServes the same numbers over the Model Context Protocol

Starting one from the browser

Take the button above. Stripe asks for an email — use the one you sign in to Google with, because that is what hands the payment to your account afterwards. Then, on any machine:

# already signed in? craft subscribe --check does the same
craft login

Signing in is what claims the payment. There is no licence key, no code to paste, and nothing to keep anywhere — the account is the receipt. If you paid with a different email than the one on your Google account, send us both and we will move it across.

Starting one from the terminal

Two commands, and no email to match up: craft subscribe ties the payment to the signed-in account before it ever opens Stripe. The first line is only for a machine that has not got craft yet.

Then:

It opens the same Stripe page, waits there for the payment to clear, and writes the flag itself when it does.

What the payment knows about you

One row: the Stripe customer, the subscription, its status, and the email the card was paid with — which is the key your Google account is matched against, once and one way. An unowned payment can be adopted by an account with the same email; an owned one can never be read by another. After that the account id is the only key, so changing your email later changes nothing.

Nothing about your analytics goes anywhere near it. The binary has no telemetry, and the subscription lookup knows your site does not exist.

A second machine

# the same Google account is the whole of it
craft login
craft subscribe --check

--check only looks up where the account stands. It opens no browser, so it is also the one to run from a script or over SSH.

The gate is a line in your config

It is one supporter = true in a TOML file you own, in a binary you can rebuild from Apache-2.0 source. We are not going to pretend otherwise, and there is no phone-home, no licence check on launch beyond the one that keeps your own subscription current, and no telemetry anywhere in the binary.

So the subscription is an honest ask rather than a lock: $2.99 a month for the two commands that do work while you are asleep, from the people who wrote them. Trouble with a payment, or a refund — [email protected].