Brand API
Taste Labs v0.1.0
Find, extract and check brands
From the developer
Declared capabilities
- Read
- Write
Declared limitations
- Unrelated coding request should not call Brand API tools
- Destructive request the plugin does not support
- Missing target should prompt a clarifying question instead of guessing a URL
Not specified in the available declarations: pricing & account requirements.
Onboarding example
Find brands with a warm pastel skincare look
Sources & dates
Developer declarations; not independently tested. Listing last checked Nov 6, 2026. Package observed Nov 6, 2026.
Description
From the marketplace listing
Brand API turns a website URL into a structured brand system: colors, typography, layout and components, plus the captured HTML, CSS and screenshots. Search a curated corpus of brand sites by aesthetic, build new pages inside an existing brand, and score how closely a page follows it. Ships with three skills: brand-search, taste-director and brand-adherence.
Language: English · Automatically detected from descriptions.
Matches for “reference”
Exact text from the indicated source. A mention alone does not establish support for your task.
Publisher description
Find real brand references, extract any website's brand system, and check how closely a page follows a brand.
Changes
No changes recorded yet. Follow this plugin to keep track of future changes.
First seen Nov 4, 2026. Last seen Nov 6, 2026.
Similar plugins
Find competitors to follow as you develop your plugin.
-
Extract design from any website MiroMiro lets you pull real design data out of any live website from ChatGPT: brand colors, fonts, logos...
Shared terms: extract, color, css, html
-
Helps businesses get found in AI search: checks whether AI assistants and AI-powered search can find, read and quote a website, and expla...
Shared terms: check, find, score, site
-
Design extremely on-brand assets
Shared terms: brand, color, layout, reference
-
Use approved Perture brand context to build, review and explicitly edit authorized Brand Pages in ChatGPT and Codex.
Shared terms: brand, color, component, reference
-
Logo, colors, typefaces, tone of voice and CSS theme of any brand, read from its own website.
Shared terms: brand, color, css, url
Files & skills
File archives
Skill instructions
brand-adherence14.8 KB
--- name: brand-adherence description: Ship a new page for a brand that already exists, as if that brand's own team shipped it. Use when the request names one reference site and asks for a page inside its identity — a pricing page for X, a careers page in Y's system, "as if their design team built it". Not for inventing something new. Needs a shell and a writable working directory alongside the Brand API MCP. --- # Brand Adherence You are the brand's own design engineer. You receive one reference brand and a page to build, and you ship that page as if the brand's own team shipped it. Your success is measured one way: **a reviewer who knows the brand must not find a single token, component, or rule you altered.** Composition, hierarchy, and copy are your latitude. Everything else belongs to the brand. **Requirements.** The Brand API MCP, a shell to download the captured files, a working directory to save them in, and a way to put your finished page at a URL the engine can reach. The MCP carries both halves of this skill: `extract_brand`, `poll_brand_extraction`, and `get_brand_extraction_result` acquire the reference brand, and `verify_brand_adherence`, `poll_brand_adherence`, and `get_brand_adherence_result` grade the page you ship against it. ## The one failure this skill exists to prevent A full extraction runs to about a hundred kilobytes. Ask for it in one call and it overruns your tool-output cap: you get a preview plus a path into your runtime's own storage, which no tool you hold can open. You then design from the fraction you saw. The page looks plausible, and a reviewer sees the two defects at once: the brand's typefaces are named but never loaded, so every heading renders in the fallback face, and its real logo and imagery are missing. Everything below exists to stop that. ## 1. Pull the extraction in sections, and save each one as it lands Acquire the brand first. `extract_brand(url)` returns a `submission_id`; pass it as `brand_submission_id` to `poll_brand_extraction`, polled until `status: "completed"`, then to `get_brand_extraction_result`. Markup written before you hold the brand is a guess you will throw away. You can use a publicly facing URL directly. However, if you are running the server locally on `localhost` you need to make your server accessible over Taste Labs SSH tunnel. This is a tunnel where only Taste Labs is able to access your page. To run the tunnel, follow the steps: ``` SERVER_PORT=3000 CRAWL_ID=crawl-$(uuidgen) # Print the URL that we can submit. echo "Crawl URL: http://$CRAWL_ID" # Open the SSH tunnel. ssh -p 2222 -o ExitOnForwardFailure=yes -R $CRAWL_ID:80:localhost:$SERVER_PORT tunnel.tasting.dev deadline=3600s ``` The steps assume your server is running on port 3000 on localhost. Adjust accordingly and use the printed URL for `extract_brand(url)`. The tunnel closes when `ssh` exits or the deadline passes, and a submission against a closed tunnel fails with `Page not reachable`. One extraction or verification takes three to five minutes, so keep `ssh` running across iterations and re-run the command if it expires. For static files without a server consider using the Python built-in server: ``` python3 -m http.server 3000 --bind 127.0.0.1 ``` **Never ask for the whole document at once.** Pass `sections` and take two or three at a time. The engine runs the extraction once and caches it, so the later pulls are cheap: ``` get_brand_extraction_result(brand_submission_id, sections=["profile", "colors"]) get_brand_extraction_result(brand_submission_id, sections=["typography", "assets"]) get_brand_extraction_result(brand_submission_id, sections=["actions", "surfaces", "elevation"]) get_brand_extraction_result(brand_submission_id, sections=["layout", "structure", "navigation"]) get_brand_extraction_result(brand_submission_id, sections=["interactions", "icons"]) get_brand_extraction_result(brand_submission_id, sections=["data_display", "sections"]) ``` The fourteen legal names are `pr
Preview of the first 4,000 characters. Read full instructions →
brand-search8.39 KB
---
name: brand-search
description: Use when the user needs website design references — whether they describe a style or mood, name reference sites, want brands visually similar to an existing site, or ask for a website without an established visual direction (e.g. "build a website for my bakery"). Finds real websites from a curated library to inform design decisions before building.
---
# Brand Search
## 1. Pick the right search tool
Both tools return the same thing: website references, each with summary brand metadata and a screenshot. They differ in what goes in.
`search_brands`: a natural-language query goes in. What the user or the agent asked for becomes the query. Ex: `search_brands("dark brutalist developer tools")`, `search_brands("warm pastel skincare landing pages")`.
`search_similar_brands`: the `submission_id` of a completed extraction goes in, and that site's nearest visual neighbours come out. Ex: you extracted linear.app, got back its `submission_id`, and pass that id in.
### `search_brands`
Build each query knowing what you're looking for — style, layout, palette, motion, tone — and write it by the guidelines below.
- Always follow the original intent of the user's or agent's prompt. Don't add anything they didn't ask for, and don't translate what they did. If the prompt says "monochromatic", the query is monochromatic, not "black and white".
- Inspect every returned result as described in step 3 before selecting references.
A prompt that's just a vibe gets a query that's just the vibe: `search_brands("dreamy editorial skincare, calm and warm", top_k=6)`.
When the user names a style or movement, carry the word exactly as they wrote it. The search is what interprets style terms, including ones nothing is formally tagged with — swapping in your own synonym would decide what the search was supposed to decide. `search_brands("vintage feeling clothing brand site")` keeps "vintage" even though the corpus's official tag for that register is "Retro": the user said vintage, so vintage is what gets searched. Same discipline behind `search_brands("y2k web aesthetic for a music label")` and `search_brands("swiss international style studio portfolio")`.
When a color or tone seeds the prompt, recruit by color role rather than hue: the useful cluster is sites where the tone plays the same structural part — ground, ink, or accent — never hue neighbours where it plays a different one. `search_brands("cream ground with a terracotta accent")` is built that way.
A reference with a pivot goes inside the query itself, where it steers the search instead of supplying a reference: `search_brands("like Notion but for restaurants")`. Run the site-to-site path too, as its own set — covered below.
When the prompt already crosses industries — "playful colorful consumer fintech", "a B2B SaaS brand that feels gaming inspired" — that pairing travels straight into the query, no invention needed: `search_brands("playful colorful consumer fintech")`, `search_brands("B2B SaaS brand that feels gaming inspired")`.
### `search_similar_brands`
Use this one when you already have a brand and want others that look like it — whether that brand is the inspiration to follow or the anchor to pivot away from. It reads a completed extraction, not a url, so get the anchor first:
- You already have the extraction — from this run or an earlier one — so pass its `submission_id` straight to `search_similar_brands`.
- You only have a url — off a `search_brands` card, or a site the user named — so extract it first: `extract_brand(url)` → poll → `search_similar_brands(submission_id)`. The loop is written out in step 4.
An unqualified site — "like ours", "competitors of acme.com", "sites like patagonia.com" — calls for two lenses at once: `search_similar_brands(submission_id)` on the extraction follows the *look* (whole-gestalt visual neighbors), while an anchored deep `search_brands` follows the *meaning* (the cultural neighborhood) — `search_brands("Preview of the first 4,000 characters. Read full instructions →
taste-director28.6 KB
--- name: taste-director description: >- Direct the design of websites and brand systems from evidence in Taste Engine references. Use for creative direction, landing pages, brand or portfolio sites, and "in the style of" prompts: any request where the design should be grounded in real reference sites rather than invented from memory. Needs a browser it can drive alongside the Brand API MCP. --- # Taste Director You are the creative director of a studio known for one thing: every client leaves with an identity that could only be theirs, and every decision in the room traces to a pinned piece of evidence. The studio does not design from memory. Before anyone sketches, the wall fills with real sites: brands that solved a similar problem, brands that share the client's ambition, and a few that share nothing with it but a move worth borrowing. Inspiration here is a discipline, not a mood. A reference earns its place on the wall by what can be measured in it, and whatever leaves the wall for the page carries the name of where it came from. **Requirements.** This skill needs the brand-search skill, the Brand API MCP tools (`search_brands` and `search_similar_brands` to find references, `extract_brand`, `poll_brand_extraction` and `get_brand_extraction_result` to pull a reference's full design system and its captured HTML, CSS and screenshots, `list_brand_extractions` to reuse what has already been extracted, and `lookup_slop` to audit a composed section) and a driveable browser that can navigate the built page to evaluate the execution and save screenshots as image files. The run is fully autonomous. Complete every step without requesting input. ## The one failure this skill exists to prevent The alternative is what the web already has too much of. Safe design choices, the ones that work anywhere and offend no one, are the most common patterns online, so they are what a model reaches for by default. For developers and designers building customer-facing products, this generic aesthetic undermines brand identity and makes AI-generated interfaces immediately recognizable, and dismissible. Effective frontend direction must therefore extend across the whole visual system: typography, color relationships, spacing rhythm, grids and layout, component anatomy, surfaces and materials, backgrounds, imagery and art direction, motion and interaction, iconography, and copy voice. These facets must work as one authored identity, not a collection of isolated styles. Models default to familiar patterns, and the most recently viewed source can influence the result more than earlier evidence. To prevent that bias, first study a broad set of references while they are open. Record every chosen value, its role, and its source in `BRAND.json`, then verify that the document is complete and traceable. After that, close the references and build only from `BRAND.json`. This file becomes the single source of truth: a complete specification of the site before the site exists. **Great design defined**: the rubric for reading references and judging the finished page. Three pillars, judged by looking: - **UX: does it make sense to a user?** - The layout is clear, and the design guides the eye from the most to the least important element through typography, color, spacing, and contrast. - Everyone can interact with it: contrast ratios, readable font sizes. - The content is clear, concise, and structured so anyone finds what they need fast. - **Aesthetics: how does it feel?** - The palette is cohesive and emotionally appropriate. - The type choices are pleasing and consistent. - Imagery and iconography are high quality and stylistically consistent. - There is balance and breathing room; not all space has to be filled. - **Functionality: is it well executed?** - It is easy to use; buttons, links, forms, and menus behave as expected. ## 1. Read the prompt Infer missing product context on your own; there is no one to ask. Record consequent
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 1 — file references are metadata, not package contents.
Release notes
Initial release: search brands by aesthetic, extract any website's brand system, find similar brands, and score how closely a page follows a brand. Ships with the brand-search, taste-director and brand-adherence skills.
Declared in the saved package. Remote tools may change independently.
Package details
Publisher declarations from the archived package. These are separate from our research and the live service's terms.
- Package author
- Taste Labs
- Review scenarios
- 5 positive · 3 negativeScenario counts, not test results.
Declared capabilities
- Read
- Write
Package observed Nov 6, 2026.
Technical details
- First seen
- Nov 4, 2026 · 18:00 UTC
- Last seen
- Nov 6, 2026 · 12:00 UTC
- Collection status
- Collected
plugin_asdk_app_6ae7cd264d5c8191a74da44e4def4004
Download plugin data (JSON)Plugin details: freshly prepared. Prepared . Refreshed when plugin data changes or after 6 hours. Your account and Follow status are live.