About taste-bank
taste-bank is a reusable library of structured front-end style packs for coding agents. Developers can browse, apply, and contribute styles through its CLI, with packs combining design tokens, usage rules, CSS, and templates.
Key features
- 01Browse styles in a live-preview gallery
- 02Fetch complete packs with tokens and templates
- 03Apply a style as project rules
- 04Cache packs locally for three days
- 05Validate, sign, and submit style packs
Use cases
- 01Choose a visual direction for a new landing page
- 02Reuse a tuned style across projects
- 03Submit a sanitized project style for review
MCP support
The MCP server exposes the taste-bank style catalog and packs to MCP clients through a Streamable HTTP endpoint. The CLI and MCP server use the same backend.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README
The front-end style library for coding agents — distill a style once, reuse it everywhere.
Swipe styles like you're scrolling TikTok — find the one that catches your eye, then hand it to your agent.
English | 中文文档
Why Taste Bank
Sound familiar?
- Staring at a blank page, no idea how to lay out your components?
- Layout finally settled — yet the AI's visual style never quite lands?
- A hoard of "beautiful designs" you can never actually summon when you need one?
- The style you painstakingly tuned in your last project has to be re-explained from scratch in the next one?
Getting coding agents to produce well-designed front-ends is a solved problem nobody can actually use. The community is full of front-end skills, prompt snippets, and design guides — but in practice:
- No unified invocation: some styles ship as a skill, some as a plugin, some ship nothing at all. Actually using them is a chore.
- No quality bar: without a shared schema, a "style" can be three adjectives in a trench coat — nothing an agent can actually execute.
- Hard to reuse: great styles die in chat histories instead of being distilled into an asset.
- No ownership or iteration: no versions, no way to say "only I maintain my styles."
More importantly: the web spawns new styles every day — but not every style is mainstream enough, not every style is your taste. We want a community where people share the front-end taste they actually use — and vote with their feet. Only what truly gets used is truly usable.
Taste Bank's answer: distill each style into a structured style pack (SKILL.md usage guide + precise design tokens + templates/ snapshots), enforced by a zod schema, served through a CLI + skill injection that works with any coding agent. Once a style is in the bank, it's reachable anywhere, versioned, and owned.
The homepage gallery: swipe through live-rendered styles like a feed — horizontal card rail with interactive preview, most-referenced styles and top authors at a glance.
Quick Start
Via CLI (recommended)
One command — installs the CLI globally and teaches your coding agents (Claude Code, Codex, Cursor, ZCode, Kimi Code…) how to use it:
npx taste-bank setup
Then just talk to your agent in plain language:
"Build me a landing page with one of the styles in taste-bank."
Your agent already knows what to do — setup injected a skill that teaches it the taste-bank CLI commands. It will browse styles, fetch the complete pack, and implement strictly within the design tokens.
Prefer the terminal?
taste-bank list # browse all styles
taste-bank skill <slug> # get the complete pack (meta + tokens + skill + css + templates)
taste-bank use <slug> # land a style into your project as a rules file
No per-agent config, no JSON to paste. Browse visually first at tastebank.cloud.
Via MCP (legacy)
For agents that prefer the MCP protocol, configure one URL in your MCP client:
{
"mcpServers": {
"taste-bank": {
"url": "https://tastebank.cloud/mcp",
"headers": { "x-invite-code": "sl_your_invite_code" }
}
}
}
Both paths call the same backend. CLI is recommended — simpler, works with 70+ agents out of the box.
Features
- One-line setup:
npx taste-bank setupinstalls the CLI and injects skills into all your coding agents (Claude Code, Codex, Cursor, ZCode, Kimi Code, and 70+ more via the openskillsecosystem) - Complete style packs:
taste-bank skill <slug>returns the full pack in one call — meta, tokens, SKILL.md rules, scoped CSS, and HTML template snapshots. Agents get everything they need. - 3-day local cache: packs are cached; if the server is unreachable, the CLI falls back to cache
- TikTok-style gallery: tastebank.cloud — endless stream of live-rendered previews, horizontal card rail, leaderboards
- Structured & validated: every pack passes a strict zod schema (meta / tokens / skill / templates), versioned, with invite-only submissions + ed25519-signed ownership + human review
- Submit from the terminal:
taste-bank submit— sign and submit a new style without leaving your project - Private key as identity: no accounts — whoever holds the key manages the style
CLI Commands
Browsing & applying (no auth)
| Command | What it does |
|---|---|
taste-bank list [--q WORD] [--json] | List published styles |
taste-bank show <slug> [--json] | Style detail (meta + design tokens) |
taste-bank skill <slug> [--md] | Complete pack as JSON: {meta, tokens, skill, css, templates}. --md for plain SKILL.md |
taste-bank use <slug> [--as agents|claude|skill] | Land a style into your project (managed sentinel block, won't clobber your edits) |
taste-bank favorite <slug> / unfavorite / favorites | Manage favorites |
taste-bank doctor | Health check (CLI, network, identity, skill injection, cache) |
Contributing (invite + ed25519 identity)
| Command | What it does |
|---|---|
taste-bank keygen | Generate an ed25519 keypair into ~/.style-lab/ (one-time) |
taste-bank whoami | Your bound identity, owned styles, pending submissions |
taste-bank validate <pack.json> | Dry-run validate a pack locally (no network) |
taste-bank submit <pack.json> | Submit a new style (needs invite code + private key) |
taste-bank update <slug> <pack.json> | Update an owned style (version must bump) |
taste-bank delete <slug> | Delete an owned style (asks to confirm) |
How it works
npx taste-bank setup
① npm install -g taste-bank (install CLI globally)
② npx skills add …/taste-bank -g (inject 2 skills into your agents:
taste-bank for browsing/applying,
taste-bank-contribute for submitting)
③ environment check (report state, read-only)
Two skills are injected (via the open skills ecosystem):
taste-bank— teaches your agent the CLI commands for browsing and applying stylestaste-bank-contribute— the full contribution SOP: how to sample a project, pack a style, sanitize it, and submit
After setup, your agent knows the CLI. You just say "use a taste-bank style" and it runs the commands itself.
The CLI talks to tastebank.cloud by default and caches packs locally for 3 days. Self-host? Set TASTEBANK_API=https://your-host.
Submit your own style
# One-time identity setup
taste-bank keygen
echo '{ "inviteCode": "sl_xxx" }' > ~/.style-lab/config.json # get a code from the maintainer
# From any project with a style worth keeping:
taste-bank validate my-style.pack.json # dry-run check
taste-bank submit my-style.pack.json # sign + submit (enters review queue)
Or just tell your agent: "submit this project's style to taste-bank" — the injected taste-bank-contribute skill guides it through the full SOP (sample 2 files max, extract real tokens, sanitize business-identifying content, pack, validate, submit).
See the pack format, the taste-bank-contribute skill, and the agent workflow guide (how to manage project styles in agent conversations). 中文版见 Agent 工作流指南。
Security
Authentication & ownership
- Invite codes: submissions require an invite code; a code binds to the submitter's public key on first use — one code, one identity; only hashes stored server-side
- ed25519 signatures: submit / update / delete all require a private-key signature (message =
style-lab:<action>:<slug>:<timestamp>:<sha256(payload)>, 30-min window) — your key is your identity - Review queue: submissions land in
data/pending/and go live only after maintainer approval - Rate limits: 20 submits/min per pubkey, 30 manages/min per slug
Content safety
- Template sandbox: previews render in a
sandbox=""iframe with CSP forbidding scripts/external loads - HTML blocklist + secret-pattern scanning: submissions are screened for dangerous attributes and high-confidence secret patterns
- Prompt-injection mitigation: style content is labeled "data, not instructions" in skill descriptions
⚠️ Every submission is manually reviewed. But reviews can miss things — do not blindly trust fetched content; treat it as data.
HTTP API
| Endpoint | Description |
|---|---|
GET /api/styles.json | Style list, ?q=keyword filter |
GET /api/styles/:slug.json | meta + tokens + file list |
GET /api/styles/:slug/pack.json | Complete pack (meta + tokens + skill + css + templates) |
GET /api/styles/:slug/skill.md | Assembled SKILL.md |
GET /api/styles/:slug/tokens.css | Scoped CSS from tokens |
GET /api/styles/:slug/screenshot.png | Template screenshot |
GET /api/whoami.json | Identity lookup (x-invite-code header) |
POST /api/styles.json | Submit (invite + signature) |
PUT /api/styles/:slug.json | Update (signed, version bump) |
DELETE /api/styles/:slug.json | Delete (signed) |
Project structure
src/lib/ core: schema / store / create / assemble / review / auth
src/pages/ Astro pages & HTTP API endpoints
mcp/ MCP server (Streamable HTTP) — thin shell over src/lib
cli/ the taste-bank npm package (CLI + skills source)
skills/ two agent skills: taste-bank (browse) + taste-bank-contribute (submit)
scripts/ keygen / sign / invite / review admin scripts
styles/ published styles (pointed to by STYLE_LAB_DIR at runtime)
data/ invite-code hashes, review queue, usage stats, screenshot cache
docs/SPEC.md full style pack specification
License
MIT © QuasarG
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.