Why this exists: hosted analysis is paused, because every hosted review would bill the site owner. The engine the hosted service runs ships as one file instead. It fetches pages from your machine, scores them there, and sends nothing to tasteHQ.
1 · Download
curl -fsSLO https://www.tastehq.w230.net/engine/tastehq.pyz
curl -fsSL https://www.tastehq.w230.net/engine/tastehq.pyz.sha256 | shasum -a 256 -c - # expect: tastehq.pyz: OK
2 · Judge a page
# against one of the 101 catalog brands python3 tastehq.pyz judge https://your-preview.example --target stripe # against your own brand's live site python3 tastehq.pyz judge https://your-preview.example --target-url https://your-brand.com # your dev build on this machine: --allow-loopback admits only that exact origin python3 tastehq.pyz judge http://localhost:3000 --target linear --allow-loopback --json
Each axis prints pass or fail with the observed and target values, followed by the concrete fixes. Exit codes are made for CI and coding agents: 0 pass, 2 revise, 3 reject, 1 the tool itself failed.
3 · Extract a grammar vector
python3 tastehq.pyz import https://your-brand.com --json
What it does and doesn't do
| Question | Answer |
|---|---|
| What does it fetch? | Only the URLs you pass and the stylesheets they load, over your own network. Pages are treated as untrusted. Their stylesheets, imports and redirects can't reach private, link-local or cloud-metadata addresses. --allow-loopback admits one exception: the exact localhost origin you're judging. |
| What reaches tasteHQ? | Nothing, for judge and import. The catalog is inside the file. Browsing commands such as list read the public catalog from this site. |
| Does it call an AI model? | Not by default. If you add --use-my-api-key, it grades voice.archetype by sending the page's text to Anthropic with your own ANTHROPIC_API_KEY, and Anthropic bills you. Without that flag, any key in your environment is ignored. |
| Rendered pass? | Not in the local engine. A browser running a page's own scripts can't yet be held to the same network boundary, so the judge uses the static pass (HTML and CSS) only. |
| What does it write? | On first run it unpacks itself into ~/.cache/tastehq/ (about 5 MB), in a folder named after the file's checksum. |
| What does it cost? | tasteHQ charges nothing. It uses your machine and bandwidth. With --use-my-api-key, your model provider bills you. Fetching a site can also count against that site's own hosting or rate limits, so judge only pages you're allowed to test. |
| Which Python? | Use a supported, fully patched Python, ideally 3.12 or newer. The engine still runs on 3.9–3.11, but those versions no longer get security fixes, or soon won't. |
For coding agents
Point the verify step in your AGENTS.md at the local judge, and act on its exit code:
python3 tastehq.pyz judge "$PREVIEW_URL" --target-url https://your-brand.com --json
Licensing: tasteHQ is MIT (LICENSE). The bundled PyYAML is also MIT.