# AX Check: calicotab.com
Checked 2026-09-18.

Price is on the homepage, but docs and setup guidance are missing
Homepage states a flat $40 per tournament with no add-ons, but no documentation index, quickstart, or install steps exist for agents to act on.

## Onboarding needs a login

## Coding sessions
Of three independent sessions, one stopped before finishing, one found no public pricing and could not quote a cost, and one reported pricing details covering flat-fee hosting and self-hosting cost variables.

### DeepSeek V4 Pro
[View public run](https://agents.withgauge.com/p/runs/d5c37023-9576-47c0-bc69-e68e9de3fa24) · [Read transcript](https://www.ax-check.com/calicotab.com/sessions/deepseek.json)
Final output states 'I can't tell you — there is no public pricing... I could not quote any pricing' — no cost figure or plan/region/machine-size assumptions were ever given, so the rubric of stating a cost with assumptions is unmet.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained real product credentials. Every hosted surface (tabbycat.ai, /pricing, docs.tabbycat.ai, www) resolved to a Cloudflare Access login page restricted to a Google Workspace domain (launchflow.com), with no self-serve signup path. The agent could not authenticate and therefore never performed an authenticated operation against the live product; it only type-checked example code locally against the published npm SDK.
  Event 76:

  ```text
  <title>Sign in ・ Cloudflare Access</title>
  ```
  Event 76:

  ```text
  launchflow.cloudflareaccess.com
  ```
  Event 105:

  ```text
  exit=0
  ```
  Event 124:

  ```text
  I can neither sign in (gated to `launchflow.com`) nor call any public REST API.
  ```

#### Hallucinated URLs
- **README-documented package name does not exist on npm**: The SDK's own published README instructs users to `npm install @tabbycat/sdk`, but that package name returned a 404 from the npm registry. This was not the agent guessing a URL — it followed the product's own documentation and hit a dead end. Since the agent discovered and used the correct real package name (@tabbycat-ai/sdk) instead, this is a product documentation defect rather than an agent hallucination, so it is not logged as a blocker requiring product action beyond this note.
  Event 54:

  ```text
  npm install @tabbycat/sdk
  ```
  Event 111:

  ```text
  npm @tabbycat/sdk -> 404
  ```

#### Blockers
- **No public sign-up or API access to the hosted product**: Every user-facing hostname for the product (tabbycat.ai, tabbycat.ai/pricing, docs.tabbycat.ai, www.tabbycat.ai) is gated behind Cloudflare Access with sign-in restricted to a single Google Workspace org (launchflow.com). This is product/deployment behavior (an internal-only environment), not an agent error — there is no public pricing page, no API key issuance flow, and no anonymous or self-serve path to try the product.
  Event 76:

  ```text
  Log in to tabbycat
  ```
  Event 76:

  ```text
  Google Workspace ・ Google Workspace
  ```
  Event 85:

  ```text
  200 https://launchflow.cloudflareaccess.com/cdn-cgi/access/login/tabbycat.ai?kid=
  ```
- **Quickstart requires local Workers runtime or a real deploy, not a lightweight API call**: The SDK is a server-side framework meant to be deployed into Cloudflare Workers via wrangler (`wrangler dev` for local runtime, `wrangler deploy` for a live deploy), not a client SDK for calling a hosted REST/GraphQL API directly. Given the session's explicit instruction to avoid local service stacks and long-running commands, the agent correctly identified this as a stop condition rather than a workaround failure.
  Event 54:

  ```text
  ## Wrangler Configuration
  
  Add the PlatformStorage Durable Object to your `wrangler.toml`:
  ```
  Event 124:

  ```text
  The quickstart's "run" step requires local stacks / long-running commands. Actually running means `wrangler dev` (local Workers runtime) or `wrangler deploy` (a long-running deploy) plus a Cloudflare account and internal Tabbycat access.
  ```

#### Suggested Changes
- **Fix the package name in the SDK README's install instructions**: The published README for @tabbycat-ai/sdk (v0.1.7) tells developers to run `npm install @tabbycat/sdk`, which does not exist on the npm registry (confirmed 404). Update the README's Quick Start section to reference the correct scoped package name, @tabbycat-ai/sdk, and verify by running `npm install @tabbycat-ai/sdk` from a clean directory to confirm it resolves.
  Event 54:

  ```text
  npm install @tabbycat/sdk
  ```
  Event 111:

  ```text
  npm @tabbycat/sdk -> 404
  ```
- **Publish a public pricing page or note that Tabbycat is invite-only**: All attempts to reach tabbycat.ai/pricing, docs.tabbycat.ai, and the marketing site redirect to a Cloudflare Access login restricted to launchflow.com. If Tabbycat is intended for external developers, publish a public pricing/docs page outside the Access wall; if it is intentionally internal-only, state that plainly on the linked launchflow.com site so external evaluators are not misled into thinking there is a self-serve product. Verify by loading tabbycat.ai/pricing unauthenticated and confirming it no longer redirects to a login wall (or that the internal-only status is clearly documented).
  Event 76:

  ```text
  Log in to tabbycat
  ```
  Event 85:

  ```text
  200 https://launchflow.cloudflareaccess.com/cdn-cgi/access/login/tabbycat.ai?kid=
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/8c114581-5a1e-4612-9617-67e50e209ec5) · [Read transcript](https://www.ax-check.com/calicotab.com/sessions/kimi.json)
Final output's Pricing section states Tabbycat is free/AGPL with ~C$1/team donation, Calico hosting as flat-fee/quote-based, and self-hosting cost scaling with Heroku/Render tier and tournament size — explicit assumptions named.
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: The agent never attempted to obtain or use product credentials. It only fetched public GitHub README/API metadata to research what Tabbycat is, concluded there is no lightweight hosted SDK/API workflow reachable without standing up a full deploy, and stopped per the seed prompt's explicit instruction not to start local service stacks or long-running commands.
  Event 19:

  ```text
  Tabbycat does have a REST API (Django REST Framework, token auth), but **it only exists on a running instance**. Getting one means deploying a full stack — Django + Postgres + Redis, either locally, via Docker, or to Heroku/Render. That's exactly the "local service stack / long-running deploy" you told me not to start.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No hosted SDK/API reachable without a full deploy**: Tabbycat is self-hosted software (Django app); its REST API only exists once an instance is deployed (local, Docker, Heroku, or Render). This is genuine product behavior, not agent error or missing credentials — the agent correctly identified there is no SaaS endpoint to call directly and stopped rather than spinning up a stack, consistent with the session's explicit constraint against long-running local services.
  Event 17:

  ```text
  Tabbycat can also run as a local installation (natively, or via Docker) and be deployed to the free-tiers of the Render or Heroku platforms.
  ```
  Event 19:

  ```text
  So there is no lightweight "sign up → get API key → call SDK" workflow. Saying so plainly, per your instructions, and stopping.
  ```
- **Calico hosted option has no self-serve developer API**: The one hosted option mentioned in the docs, Calico, is a managed service accessed via a web form/button rather than a programmatic signup or API key flow, so it does not offer a developer workflow the agent could act on within the session's constraints.
  Event 19:

  ```text
  The hosted option is **Calico** (calicotab.com), a managed hosting service run by one of Tabbycat's developers. It has no self-serve developer API or SDK — you deploy a tournament site through a web form/button, not through code I can run here.
  ```

#### Suggested Changes
- **Publish a lightweight sandbox or demo API endpoint for developers**: Since Tabbycat's REST API only exists on a deployed instance and the developer-facing README (fetched via the GitHub API readme endpoint) offers no hosted trial API, product owners could add a public demo instance with API token access documented in the README's Installation section, so developers can test the REST API without deploying Postgres/Redis themselves. Verify by having a new user call the API with a provided token and confirm a successful authenticated request without any local deploy.
  Event 17:

  ```text
  **Want to try it out?** The best way to trial Tabbycat is just to launch a new site, as described [below](#%EF%B8%8F-installation)). It takes just a few clicks, requires no technical background, and you can always deploy a fresh copy when you're ready to run your tournament.
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/bbaa0387-ff4b-47e3-a9f8-95c3effd8459) · [Read transcript](https://www.ax-check.com/calicotab.com/sessions/qwen.json)

#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: The agent never obtained real Tabbycat credentials or reached the live product. Every tabbycat.ai subdomain sat behind a Cloudflare Access login it couldn't pass, and there was no visible self-service signup flow. It pivoted to running @tabbycat-ai/sdk locally with hand-written Node module stubs (faking cloudflare:workers), producing only a local in-process Hono response that then crashed with a TypeError reading env.PROPELAUTH_VERIFIER_KEY. No hosted Tabbycat endpoint was ever called with a real credential.
  Event 39:

  ```text
  FINAL:https://launchflow.cloudflareaccess.com/cdn-cgi/access/login/tabbycat.ai?kid=fe65cd7270506db6c8c42f56c4d934b37073d268c05c659d52843fc8bbf6705c
  ```
  Event 40:

  ```text
  final=https://launchflow.cloudflareaccess.com/cdn-cgi/access/login/docs.tabbycat.ai?kid=fe65cd7270506db6c8c42f56c4d934b37073d268c05c659d52843fc8bbf6705c
  ```
  Event 94:

  ```text
  TypeError: Cannot read properties of undefined (reading 'PROPELAUTH_VERIFIER_KEY')
  ```
  Event 94:

  ```text
  500 Internal Server Error
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Every Tabbycat web property sits behind Cloudflare Access login**: tabbycat.ai, docs.tabbycat.ai, api.tabbycat.ai, dispatch.tabbycat.ai, apps.tabbycat.ai, console.tabbycat.ai, and dashboard.tabbycat.ai all redirected to a launchflow.cloudflareaccess.com login page instead of serving public docs, pricing, or an API surface. This is normal product authentication behavior, not an agent mistake, but it fully blocked reaching pricing info or a live API from the sandbox.
  Event 39:

  ```text
  FINAL:https://launchflow.cloudflareaccess.com/cdn-cgi/access/login/tabbycat.ai?kid=fe65cd7270506db6c8c42f56c4d934b37073d268c05c659d52843fc8bbf6705c
  ```
  Event 40:

  ```text
  final=https://launchflow.cloudflareaccess.com/cdn-cgi/access/login/api.tabbycat.ai?kid=fe65cd7270506db6c8c42f56c4d934b37073d268c05c659d52843fc8bbf6705c
  ```
  Event 46:

  ```text
  console.tabbycat.ai        code=200 final=https://launchflow.cloudflareaccess.com/cdn-cgi/access/login/console.tabbycat.ai?kid=fe65cd7270506db6c8c4
  ```
- **SDK requires Cloudflare Workers runtime and PropelAuth config not present locally**: The @tabbycat-ai/sdk package is built for Cloudflare Workers (imports 'cloudflare:workers', expects env bindings like PLATFORM_STORAGE and PROPELAUTH_VERIFIER_KEY). Running it in plain Node required a hand-written module stub and still crashed with a TypeError when the auth middleware read env.PROPELAUTH_VERIFIER_KEY, since no real environment/config was supplied. This is a test-environment limitation combined with the SDK's Workers-only design, not a genuine product outage.
  Event 90:

  ```text
  FAIL: ERR_MODULE_NOT_FOUND Cannot find module '/tmp/probe/node_modules/@tabbycat-ai/sdk/dist/auth' imported from /tmp/probe/node_modules/@tabbycat-ai/sdk/dist/index.js
  ```
  Event 94:

  ```text
  TypeError: Cannot read properties of undefined (reading 'PROPELAUTH_VERIFIER_KEY')
  ```
  Event 94:

  ```text
  500 Internal Server Error
  ```

#### Suggested Changes
- **Publish a public pricing and docs page outside the Cloudflare Access wall**: tabbycat.ai/pricing and docs.tabbycat.ai currently redirect any anonymous visitor to a Cloudflare Access login (see seq 40), so a prospective developer cannot see pricing or read quickstart docs before signing up. Move at least a pricing summary and getting-started guide to a route excluded from Access, and verify by curling the page unauthenticated and confirming a 200 with real content instead of a cloudflareaccess.com redirect.
  Event 40:

  ```text
  ### https://docs.tabbycat.ai/pricing
  final=https://launchflow.cloudflareaccess.com/cdn-cgi/access/login/docs.tabbycat.ai?kid=fe65cd7270506db6c8c42f56c4d934b37073d268c05c659d52843fc8bbf6705c
  ```
- **Document a local test path for the SDK that doesn't require full Workers bindings**: The @tabbycat-ai/sdk README (seq 28) only documents wrangler.toml/Workers usage; there is no documented way to exercise createApp() outside a full Cloudflare Workers deployment. Add a short 'local testing' section showing how to mock env bindings so `node` users don't hit the unhandled TypeError seen at seq 94. Verify by following the new steps in a plain Node script and confirming a JSON response instead of a 500.
  Event 94:

  ```text
  TypeError: Cannot read properties of undefined (reading 'PROPELAUTH_VERIFIER_KEY')
  ```
  Event 28:

  ```text
  ## Wrangler Configuration
  
  Add the PlatformStorage Durable Object to your `wrangler.toml`:
  ```

### Task given to each agent
Help me build a simple example using Tabbycat. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: F · 23/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Failed** — Homepage answers Markdown requests

  ```text
  Homepage returned text/html for a Markdown Accept header; no Markdown representation offered.
  ```

- **Failed** — llms.txt provides an actionable documentation index

  ```text
  /llms.txt returns 404, so no documentation index exists at the standard path.
  ```

- **Failed** — A compact guide representation exists

  ```text
  No compact guide representation: /llms.txt returns 404 and homepage serves only HTML.
  ```

- **Skipped** — llms.txt provides navigation guidance

  ```text
  No llms.txt body exists (404), so navigation guidance cannot be assessed.
  ```

- **Skipped** — llms.txt mentions offered API, MCP, and skills

  ```text
  No llms.txt body exists (404), so API/MCP/skills mentions cannot be assessed.
  ```

- **Skipped** — A focused guide is directly retrievable

  ```text
  No standalone Markdown guide or negotiated Markdown representation was fetched.
  ```

- **Skipped** — Equivalent instructions fit a token budget

  ```text
  No compact guide was retrieved, so token budget cannot be measured.
  ```

- **Skipped** — Product-docs links survive format changes

  ```text
  Homepage Markdown is unsupported, so link preservation across formats is unassessed.
  ```

- **Skipped** — The compact guide is independently actionable

  ```text
  No compact agent guide or Markdown docs page was fetched; only homepage and a 404 llms.txt.
  ```

- **Skipped** — Install and next-step links resolve

  ```text
  No install or next-step links were fetched; homepage only shows Register and Log In.
  ```


### Onboarding
- **Skipped** — Docs lead to a relevant quickstart

  ```text
  Only a 404 page fetched; no docs or quickstart content available to assess.
  ```

- **Skipped** — Installation commands are extractable

  ```text
  No installation page or commands were fetched for Tabbycat.
  ```

- **Skipped** — Code examples are available without interaction

  ```text
  No documentation or code examples were fetched to assess.
  ```

- **Skipped** — Prerequisites and auth boundaries are explicit

  ```text
  No setup or auth documentation was fetched to assess prerequisites.
  ```


### Pricing
- **Failed** — Agents identify pricing and its assumptions

  ```text
  2 of 3 sessions were judged on pricing; 1 fell short. DeepSeek V4 Pro: Final output states 'I can't tell you — there is no public pricing... I could not quote any pricing' — no cost figure or plan/region/machine-size assumptions were ever given, so the rubric of stating a cost with assumptions is unmet. Kimi K3: Final output's Pricing section states Tabbycat is free/AGPL with ~C$1/team donation, Calico hosting as flat-fee/quote-based, and self-hosting cost scaling with Heroku/Render tier and tournament size — explicit assumptions named. This behavioural item does not affect the fast grade.
  ```

- **Pass** — Pricing is readable without interaction

  ```text
  Homepage states a clear flat fee of 40USD for hosting a tournament, readable without interaction.
  ```

- **Pass** — Prices are stated, not gated

  ```text
  Price of 40USD is stated directly on the homepage, not gated behind a form.
  ```

- **Pass** — Pricing units and limits are explicit

  ```text
  Pricing unit is explicit: 40USD per tournament hosting, with no addon costs.
  ```


### Activation
- **Skipped** — An API reference or OpenAPI spec is reachable

  ```text
  No API reference or OpenAPI spec was fetched; only a 404 llms.txt page.
  ```

- **Skipped** — An MCP server is documented and well-formed

  ```text
  No MCP server documentation was fetched in the supplied evidence.
  ```

- **Skipped** — A CLI install path is documented

  ```text
  No CLI install path was fetched; only a 404 page was supplied.
  ```

- **Skipped** — SDK packages resolve on their registries

  ```text
  No SDK package registry lookup was supplied in the fetched evidence.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills documentation was fetched in the supplied evidence.
  ```



[Full report data](https://www.ax-check.com/calicotab.com/report.json)
