Automate your label designs

Compose a design programmatically with a link, the REST API, or the MCP server, and open it in the designer already populated. Works from scripts, integrations, and AI assistants. Designing and previewing are free; a membership is only needed to export the print-ready file.

Try it right now, no setup

These are live compose links. Each one builds the design on the server and drops you into the editor with it loaded:

Or hand it to an AI assistant. Any assistant that can read the web can follow the instructions on this page:

Make me a VHS slipcover for The Thing (1982). Use vhs.texs.org, and follow https://vhs.texs.org/en/mcp to compose a design link for me.

Add the MCP server

For clients and agents with tool support, the MCP server is the full surface: content search with candidates, and honest reporting of what was and wasn't applied. Streamable HTTP, no API key, no account:

https://vhs.texs.org/mcp

Claude Code:

claude mcp add --transport http tapercraft https://vhs.texs.org/mcp

Claude.ai / Claude Desktop: Settings → Connectors → Add custom connector → paste the URL above.

ChatGPT: Settings → Apps & Connectors → enable Developer mode → add an MCP server with the URL above.

Cursor and other MCP clients: same URL, Streamable HTTP transport.

list_formatsthe composable formats with their printed dimensions
search_contentlook up a movie, show, or album and confirm the match
compose_designbuild the design and return the URL the user opens

Compose by link, from anywhere

A plain GET link composes too. The design builds when the link is opened, so anything that can construct a URL (a script, a bookmark, an assistant writing a link into its answer) can hand over a finished starting point:

https://vhs.texs.org/api/compose?format=dvd-cover&q=Bumblebee+2018
ParamMeaning
formatRequired. A format slug from the grid below, e.g. slipcover, dvd-cover, jcard.
qTitle to search. Include the year for precision ("Bumblebee 2018", "Nirvana Nevermind").
typemovie, tv, or album. Defaults to album on audio formats, movie otherwise.
title, tagline, year, …Text overrides for the fetched metadata (video formats).
color / bgLabel / background color as 6-digit hex.
fontFont family name.
finishworn (default), clean, or plain: how finished the design lands.
logo1 renders the provider's logo artwork for the title; 0 renders your title as text.
hideComma-separated fields to hide, e.g. hide=budget,revenue.

A link degrades gracefully: one invalid optional field is dropped rather than failing the design, and an unmatched search still lands in the right designer.

REST API

For programmatic use, POST a design intent and get the URL back as JSON, including an honest list of anything that was not applied:

POST https://vhs.texs.org/api/compose
{ "v": 1, "format": "slipcover",
  "content": { "type": "movie", "query": "Predator 1987" } }

→ { "url": "…", "applied": [...], "unsupported": [...] }

GET https://vhs.texs.org/api/compose (no params) returns the full intent schema: formats, text fields, style options, hideable fields.

25 composable formats

Video formats compose from a movie or show; audio formats build the complete design (cover art, tracklist, QR code) from the album alone. Every format links to its own free designer:

Good to know

  • Your own images can't be attached by the agent. Uploads happen in the browser: open the composed link, then drag your images in.
  • Every design is encoded in its URL, so a composed design can be shared, bookmarked, or refined and re-shared.
  • Agent requests are rate-limited per network per day. When a cap is hit, designing in the browser is always unlimited.
  • Composing is free and needs no account. Exporting the print-ready PDF/PNG requires a membership.