Agent skill

Tinte

by Railly in Railly/tinte

Agent-native design system infrastructure. An agent skill from Railly/tinte.

MITAuto-check passedFrontend & Design

Install Tinte

skills CLI
$ npx skills add Railly/tinte --skill tinte -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Railly/tinte tinte --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Railly/tinte.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/tinte .claude/skills/tinte && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
tinte
GitHub stars
624
Token cost
~1.6k tokens
SKILL.md length
319 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Agent-native design system infrastructure. An agent skill from Railly/tinte.

  • Works in 4 steps: Browse and install a design system → Extract design system from screenshot → Switch design system → …
  • User asks about themes
  • SKILL.md covers Preset API (shadcn v4…, Browse Themes, Get Theme Details and Registry Routes (shadcn…, plus 5 more sections
  • Calls npx, curl and jq; reaches tinte.dev and ray.tinte.dev

What it does

Tinte is an agent skill from Railly/tinte. 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.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Design systems. It works with shadcn/ui, Visual Studio Code and Next.js. The repository describes itself as: Compile your design system into an Agent Plugin. Extract an identity from any reference, emit SKILL.md + tokens.css, lint what bypasses your tokens. The licence is MIT.

When your agent uses it

  • User asks about themes
  • Tasks that involve Design systems

Example prompts

  • “/tinte”

Requirements

  • Node.js

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Browse and install a design system
  2. Extract design system from screenshot
  3. Switch design system
  4. Preview result

What it can do on your machine

Read from SKILL.md and the folder at commit 7905be3. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx
    • curl
    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • tinte.dev
    • ray.tinte.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Tinte loads about 1.6k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 319 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Railly/tinte at commit 7905be3, republished under its MIT licence (© Railly). 319 words, ~1,597 tokens.

Download SKILL.mdSave it as .claude/skills/tinte/SKILL.md (or your agent's skills folder).
name
tinte
description
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.

Tinte - Design System Infrastructure

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.

Preset API (shadcn v4 compatible)

Every public Tinte theme is installable as a shadcn registry:base item.

Install a theme
bash
npx shadcn@latest add https://tinte.dev/api/preset/{slug}
Install theme fonts
bash
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 full preset pack (base + fonts + install commands)
GET https://tinte.dev/api/preset/{slug}?type=pack

Response:

json
{
  "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"]
  }
}

Browse Themes

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 Theme Details

GET https://tinte.dev/api/themes/slug/{slug}

Returns full theme data including light/dark color blocks and overrides.

Registry Routes (shadcn compatible)

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

Extract Theme from Image

Upload a screenshot or design image to extract a color theme:

bash
curl -s -X POST https://ray.tinte.dev/api/v1/extract-theme \
  -F "image=@design.png" | jq

AI mode for higher fidelity:

bash
curl -s -X POST "https://ray.tinte.dev/api/v1/extract-theme?mode=ai&model=anthropic/claude-haiku-4.5" \
  -F "image=@design.png" | jq

Response:

json
{
  "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" }, ... }
}

Screenshot Preview

Generate a code screenshot with any Tinte theme applied:

bash
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

Agent Workflows

1. Browse and install a design system
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
2. Extract design system from screenshot
1. POST ray.tinte.dev/api/v1/extract-theme -F image=@screenshot.png → get TinteBlock
2. Use extracted colors to search for matching themes or create new one
3. Install via preset API
3. Switch design system
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
4. Preview result
1. POST ray.tinte.dev/api/v1/screenshot with theme slug → get PNG
2. Open screenshot to verify visual result

Color Model

Tinte uses 13 semantic OKLCH tokens per mode (light/dark):

TokenRole
bgBackground
bg_2Elevated surface
uiBorder, separator
ui_2Subtle border
ui_3Hover state
txPrimary text
tx_2Secondary text
tx_3Muted text
prPrimary accent
scSecondary accent
ac_1Accent 1
ac_2Accent 2
ac_3Accent 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.

Design system compiler (Agent Plugins)

tinte compiles a project identity into an installable Agent Plugin (agent-plugins.org 1.0.0) so coding agents generate on-brand UI instead of default slop.

bash
tinte build --plugin --config tinte.config.json --out ./acme-plugin
# emits: plugin.json + skills/<name>-design/SKILL.md (composition law + identity)
#        + references/tokens.css (OKLCH token API from the theme graph)

tinte lint src/            # scan for hex/rgb/hsl literals and Tailwind palette classes
tinte lint --json          # machine-readable; exit 1 on violations (CI gate)
Extracting an identity from a reference site

The CLI never guesses colors. The agent looks, the CLI does the math:

bash
tinte from --emit-script > extract.js
agent-browser open https://example.com && agent-browser wait --load networkidle
agent-browser eval "$(cat extract.js)" > candidates.json
# The agent (vision) reviews a screenshot to assign semantic roles if needed.
tinte from --normalize candidates.json --name example --out draft-identity.json
# Draft only: fill voiceWords/dosDonts by hand, then validate strictly via tinte build.

--normalize detects primaryStyle: "inverted" (sites whose CTA is a foreground/background pair, not a hue) and normalizes pill radii. Tokens that need app states (destructive, ring, input) are reported as warnings, never invented.

© Railly, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/tinte of Railly/tinte.

Open the folder on GitHubat commit 7905be3

Compare with similar skills

Tinte next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Tinte compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tinte this skillRailly/tinte624—~1.6kAutomated safety check: PassMIT
Creative Tim UI Blockscreativetimofficial/ui12k—~2.1kAutomated safety check: NotesMIT
Cosscrafter-station/petdex4.2k—~1.4kAutomated safety check: PassMIT
Ss Learnbitjaru/styleseed970—~1.3kAutomated safety check: PassMIT
Nextjs Nextra Starter Distillpdsuwwz/nextjs-nextra-starter318—~596Automated safety check: PassMIT
8sl Consume Registry8starlabs/ui140—~781Automated safety check: PassMIT

Similar skills

  • Creative Tim UI Blocks

    creativetimofficial/ui

    Helps install, generate and review Creative Tim UI blocks: shadcn/ui-based React and Tailwind sections that follow a restrained, production-minded design philosophy.

    12k GitHub stars~2.1k tokensUpdated 6 mo ago
    Frontend & DesignAuto-check: notes
  • Coss

    crafter-station/petdex

    Helps implement coss UI components correctly. An agent skill from crafter-station/petdex.

    4.2k GitHub stars~1.4k tokensUpdated 8 days ago
    Frontend & DesignAuto-check passed
  • Ss Learn

    bitjaru/styleseed

    Capture a human-approved UI design lesson as a privacy-minimized local StyleSeed candidate, review it, and prepare an opt-in share package without transmitting project code, prompts, screenshots, or…

    970 GitHub stars~1.3k tokensUpdated 6 days ago
    Frontend & DesignAuto-check passed
  • Nextjs Nextra Starter Distill

    pdsuwwz/nextjs-nextra-starter

    Distill and apply this repository's Next.js Nextra starter architecture, implemented features, extension points, and migration patterns.

    318 GitHub stars~596 tokensUpdated 20 days ago
    Frontend & DesignAuto-check passed
  • A skill your agent uses when users want to install, integrate, or adapt 8StarLabs UI components in a Next.js plus shadcn project.

    140 GitHub stars~781 tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed
  • Styleseed

    bitjaru/styleseed

    Build, improve, or inspect UI with StyleSeed. An agent skill from bitjaru/styleseed.

    970 GitHub stars~1.1k tokensUpdated 6 days ago
    Frontend & DesignAuto-check passed

More from Railly/tinte

  • Ray

    Railly/tinte

    Generate code screenshots via ray.tinte.dev API. An agent skill from Railly/tinte.

    624 GitHub stars~712 tokensUpdated 2 mo ago
    Auto-check passed
  • Tinte Landing

    Railly/tinte

    Design or substantially improve a landing page for tinte. An agent skill from Railly/tinte.

    624 GitHub stars~3.9k tokensUpdated 2 mo ago
    Auto-check passed

Questions about Tinte

What does Tinte do?

Agent-native design system infrastructure. An agent skill from Railly/tinte. Tinte is an agent skill from Railly/tinte. Agent-native design system infrastructure.

When should I use Tinte?

Tinte fits situations like: user asks about themes; tasks that involve Design systems.

How do I install Tinte in Claude Code?

Run `npx skills add Railly/tinte --skill tinte -a claude-code`. Or copy the skill folder (skills/tinte in Railly/tinte) into .claude/skills/tinte in your project. Claude Code loads it when a task matches its description.

How do I install Tinte in Codex?

Run `npx skills add Railly/tinte --skill tinte -a codex`. Or copy the skill folder (skills/tinte in Railly/tinte) into .agents/skills/tinte in your project. Codex loads it when a task matches its description.

Can I use Tinte in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Railly/tinte --skill tinte -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tinte, .gemini/skills/tinte, .github/skills/tinte and .opencode/skills/tinte in your project.

What does Tinte need to run?

Going by SKILL.md and its folder, Tinte needs the command-line tools its instructions call (npx, curl and jq). Our summary lists: Node.js.

Does Tinte access the network?

SKILL.md names 2 domains. In commands or code: tinte.dev and ray.tinte.dev; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Tinte safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Tinte use?

Tinte is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tinte use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Tinte?

Skills that share tags, products or a category with Tinte: Creative Tim UI Blocks (creativetimofficial/ui, 12k stars), Coss (crafter-station/petdex, 4.2k stars), Ss Learn (bitjaru/styleseed, 970 stars) and Nextjs Nextra Starter Distill (pdsuwwz/nextjs-nextra-starter, 318 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tinte?

Railly (a GitHub user) maintains it in Railly/tinte, which has 624 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on August 8, 2026.

Source: Railly/tinte on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.