tailthemes
all-access
for agents

Themes your agent can keep building

Tailwind themes for React and HTML, free or $14 to $39, each shipping its own instructions: AGENTS.md names the design contract, and four skills walk an agent through extending the theme with new pages and components without breaking it.

TailThemes relaunched in 2026 with an entirely new catalog. Anything describing this domain as a library of Tailwind 2 templates on a yearly membership is describing the site that stood here before.

run it now
unzip foundry.zip && cat AGENTS.md

Foundry is free and open. Unzip it and the kit is already there: the rules in AGENTS.md, and the skills that add pages and components without leaving the design system.

See what you get

The agent kit

AGENTS.md and four skills in every zip: the strict design spec, and the sanctioned workflows for adding pages and components inside it.

  • AGENTS.mdInvariants, the file map, and what never to be touched.
  • rebrandApply a brand through tokens alone, checked against AA contrast.
  • add-sectionGraft a new section using the theme's own patterns.
  • add-pageCompose a page from sections that already exist.
  • check-qualityRun the theme's own gate: build, responsive, a11y, token lint.

Each skill is tested in the publish gate: an agent has to complete it in a scratch copy of the theme before that theme goes live.

one theme, five URLs
  • listinghttps://tailthemes.com/themes/<slug>
  • manifesthttps://tailthemes.com/api/themes/<slug>
  • registryhttps://tailthemes.com/r/<slug>.json
  • previewhttps://tailthemes.com/preview/<slug>
  • artifacthttps://tailthemes.com/api/download/<slug>

llms.txt

Two files, both live, both plain markdown, and the cheapest way to decide what to fetch.

the index

The llmstxt.org index: one named link per theme with its category, price and a one-line summary, then the endpoints that serve a theme as data. Around 7 KB, so it costs nothing to read before deciding what to fetch.

The full file adds every theme's complete listing, page and tag inventory and its AGENTS.md verbatim, so one fetch gives you the rules before you touch the source.

curl https://tailthemes.com/llms.txt

MCP server

One endpoint, streamable HTTP, stateless: one JSON-RPC message per POST, JSON back.

endpoint

https://tailthemes.com/api/mcp

Protocol 2025-11-25, negotiated down to 2024-11-05 for older clients. No key, no account: the open tools work the moment the client connects.

connect from your client

One click

Both open the editor with this endpoint filled in, and neither adds anything until you confirm it there.

Claude Code

claude mcp add --transport http tailthemes https://tailthemes.com/api/mcp

Then ask in plain words: “search tailthemes for a saas landing theme and show me its tokens.”

Cursor, Windsurf, and any JSON-configured client

{
  "mcpServers": {
    "tailthemes": {
      "type": "http",
      "url": "https://tailthemes.com/api/mcp"
    }
  }
}

Cursor reads it from .cursor/mcp.json, VS Code from .vscode/mcp.json (rename the key to servers).

With a license

Add a header and the connection carries your key, so paid source comes back from get_component and download_theme without the key ever entering a prompt.

{
  "mcpServers": {
    "tailthemes": {
      "type": "http",
      "url": "https://tailthemes.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${TAILTHEMES_LICENSE_KEY}"
      }
    }
  }
}

A client that cannot send headers passes license_key on the call instead.

Claude on web and desktop

Settings → Connectors → Add custom connector, paste the endpoint URL. It needs no authentication to add.

tools
  • search_themesSearch public Tailthemes metadata by name, description, tags, or category.open
  • get_themeGet a theme's complete public manifest, including tokens, plus its AGENTS.md and README.md.open
  • get_componentRead one manifest-declared component, page, theme.css, AGENTS.md, or README.md file. Paid theme source needs an active license.licensed
  • download_themeGet a theme's zip download URL. Free themes download directly with no key or account. Paid themes need an active license: buy at the theme page, then call again with license_key and the ready-to-fetch URL comes back.licensed
a first call, no client needed

Stateless streamable HTTP means one POST is a complete conversation. This is the whole protocol:

curl -X POST https://tailthemes.com/api/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"download_theme","arguments":{"slug":"foundry"}}}'

The tool answers with the direct artifact URL, because Foundry is free:

{"slug":"foundry","download":"https://tailthemes.com/api/download/foundry","note":"Free theme: the URL streams the full zip — no key, no account."}

Swap the tool for search_themes with {"query":"saas"} and each match returns slug, name, category, price and description — enough to decide before fetching anything bigger.

the session an agent actually runs
  1. search_themes to shortlist by category or query.
  2. get_theme for the winner: full manifest, both token tables, AGENTS.md — the rules before the source.
  3. Install: free themes via download_theme's zip URL or the registry command below. A paid theme returns its purchase URL until you hold a license; once you do, pass license_key and the same tool returns a URL you can fetch.
  4. Keep building locally: the kit in the zip (section 01) is how the agent extends the theme without breaking it.

Metadata and token tables are open for every theme, paid ones included. Source is the product: without a license, a paid slug answers with the price and the purchase URL. With one, get_component returns the file and download_theme returns a URL you can fetch. The key rides on the connection or on the call, and the same key works on the registry.

shadcn registry

Every theme is a registry item the real shadcn CLI installs, verified against version 4.19.

bunx shadcn add https://tailthemes.com/r/foundry.json
what lands
  • theme.css, the whole token surface
  • every section component and primitive
  • every page composition
  • AGENTS.md and the four skills

src/tailthemes/foundry/

switching it on

Tokens are scoped to a class, never to :root, so an install cannot repaint the components you already have. Wrap the page:

<div className="tt-foundry">

For a single-theme project, copy the :root block from theme.css into your globals instead.

what a paid theme does

With no key it answers 402 with the price, the purchase URL, the preview URL and both token tables. Only files is withheld. The shadcn CLI prints a registry's own error text on 403 and swallows it on 402, so the CLI gets 403 and the same message; every other client gets the truthful 402.

With a key it answers the whole item. Configure the namespace once in components.json, put your license in TAILTHEMES_LICENSE_KEY, and every theme you own installs by name. The route also takes ?key=, which is what an agent with no config file uses.

{
  "registries": {
    "@tailthemes": {
      "url": "https://tailthemes.com/r/{name}.json",
      "headers": {
        "Authorization": "Bearer ${TAILTHEMES_LICENSE_KEY}"
      }
    }
  }
}
bunx shadcn add @tailthemes/appetite

One known gap: a registry item is JSON, so image assets cannot travel with it. Themes that import images need the zip as well.

Using tailthemes with Claude Code, Codex and Cursor

The kit is plain markdown, so the work continues on your machine and your own account.

  • Claude CodeThe four skills unzip into .claude/skills, so /rebrand and /check-quality are slash commands as soon as the zip is open. AGENTS.md loads as project context.
  • CodexReads AGENTS.md natively. Each SKILL.md is a self-contained procedure a task prompt can point at.
  • CursorPoint the project rules at AGENTS.md. The MCP endpoint above works in any client that speaks HTTP.

Nothing calls back here. The theme, the kit and the fonts are yours after download, and every workflow runs on your own agent account.