skills/tinte/SKILL.md
Agent-native design system infrastructure. Browse, install, and preview design systems from tinte.dev. Use when user asks about themes, design systems, presets, color palettes, or says "tinte". Works with shadcn/cli v4 presets and registries.
npx skillsauth add railly/tinte tinteInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate, compile, install, and preview design systems from one source of truth.
Tinte maintains a theme graph of 13 semantic OKLCH color tokens that compiles to shadcn/ui presets, VS Code themes, terminal configs, and 19+ other formats.
Every public Tinte theme is installable as a shadcn registry:base item.
npx shadcn@latest add https://tinte.dev/api/preset/{slug}
npx shadcn@latest add https://tinte.dev/api/preset/{slug}/font?variable=sans
npx shadcn@latest add https://tinte.dev/api/preset/{slug}/font?variable=mono
GET https://tinte.dev/api/preset/{slug}?type=pack
Response:
{
"base": { "$schema": "...", "name": "...", "type": "registry:base", "cssVars": { "light": {...}, "dark": {...} } },
"fonts": [{ "$schema": "...", "name": "font-inter", "type": "registry:font", "font": {...} }],
"slug": "theme-slug",
"install": {
"base": "npx shadcn@latest add https://tinte.dev/api/preset/{slug}",
"fonts": ["npx shadcn@latest add https://tinte.dev/r/font/inter?variable=sans"]
}
}
GET https://tinte.dev/api/themes/public?search={query}&limit=20&page=1
Optional filters: ?vendor=tinte|tweakcn|rayso
Response includes themes[] with slug, name, concept, and color tokens.
GET https://tinte.dev/api/themes/slug/{slug}
Returns full theme data including light/dark color blocks and overrides.
These routes serve raw registry:base and registry:font items:
GET https://tinte.dev/r/{slug} # registry:base or registry:theme
GET https://tinte.dev/r/{slug}?type=registry:base # explicit base type
GET https://tinte.dev/r/font/{family}?variable=sans # registry:font
Upload a screenshot or design image to extract a color theme:
curl -s -X POST https://ray.tinte.dev/api/v1/extract-theme \
-F "[email protected]" | jq
AI mode for higher fidelity:
curl -s -X POST "https://ray.tinte.dev/api/v1/extract-theme?mode=ai&model=anthropic/claude-haiku-4.5" \
-F "[email protected]" | jq
Response:
{
"dark": { "bg": "#0a0a12", "bg_2": "#0f0f18", "ui": "...", "tx": "...", "pr": "...", "sc": "...", "ac_1": "...", "ac_2": "...", "ac_3": "..." },
"light": { "bg": "#fafafa", "bg_2": "#f0f0f0", ... },
"name": "Extracted Theme Name",
"gradient": "linear-gradient(...)",
"swatches": { "vibrant": { "hex": "#e84393" }, ... }
}
Generate a code screenshot with any Tinte theme applied:
curl -s -X POST https://ray.tinte.dev/api/v1/screenshot \
-H 'Content-Type: application/json' \
-d '{
"code": "const x = 42;",
"language": "typescript",
"theme": "{slug}",
"title": "preview.ts"
}' -o preview.png
1. GET https://tinte.dev/api/themes/public?search=minimal → pick theme
2. GET https://tinte.dev/api/preset/{slug}?type=pack → get install commands
3. npx shadcn@latest add https://tinte.dev/api/preset/{slug} → install base
4. npx shadcn@latest add https://tinte.dev/api/preset/{slug}/font?variable=sans → install fonts
5. npx shadcn info --json → verify
1. POST ray.tinte.dev/api/v1/extract-theme -F [email protected] → get TinteBlock
2. Use extracted colors to search for matching themes or create new one
3. Install via preset API
1. npx shadcn info --json → read current project config
2. GET https://tinte.dev/api/themes/public?search=dark+minimal → browse alternatives
3. npx shadcn@latest add https://tinte.dev/api/preset/{new-slug} → overwrite with new theme
1. POST ray.tinte.dev/api/v1/screenshot with theme slug → get PNG
2. Open screenshot to verify visual result
Tinte uses 13 semantic OKLCH tokens per mode (light/dark):
| Token | Role |
|-------|------|
| bg | Background |
| bg_2 | Elevated surface |
| ui | Border, separator |
| ui_2 | Subtle border |
| ui_3 | Hover state |
| tx | Primary text |
| tx_2 | Secondary text |
| tx_3 | Muted text |
| pr | Primary accent |
| sc | Secondary accent |
| ac_1 | Accent 1 |
| ac_2 | Accent 2 |
| ac_3 | Accent 3 |
These compile to 30+ shadcn CSS variables (background, foreground, card, primary, secondary, muted, accent, destructive, chart-1..5, sidebar-*, etc.) with OKLCH color space formatting.
development
Generate code screenshots via ray.tinte.dev API. Use when user asks for code screenshots, code images, code snippets as images, or says "ray". Calls POST https://ray.tinte.dev/api/v1/screenshot and saves the PNG result.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------