Palette Forgedeterministic themes · free, for people and agents

A colour engine your agent can trust.

One word in, a complete accessible UI theme out: 15 role-assigned tokens, dark and light, every contrast pair measured. Same seed, same palette, every caller, forever. It does not know your brand, and says so instead of guessing: your agent locks the real colours and the engine builds the system around them.

See for yourself →

Why not just ask the model?

Asked once for five accessible colours, a frontier LLM delivers. Asked twice, every hex changes, and five colours is a third of a theme anyway: no hover or pressed states, no focus ring, nothing measured. Verify us from two terminals: curl "https://palette-forge.fly.dev/palette?seed=ocean"

koi pond0/15 hexes stable across LLM runs · 16/16 stable here, forever

LLM · run one

LLM · run two, same request

Palette Forge · every run, every caller

Add the connector

Endpoint (no login, no API key):

https://palette-forge.fly.dev/mcp

Claude Code: run the line below, then /mcp to confirm. Add --scope user for every project.

claude mcp add --transport http palette-forge https://palette-forge.fly.dev/mcp

ChatGPT (web only, Plus/Pro): Settings → Connectors → Advanced → Developer mode on, then add a connector with the endpoint URL, authentication none.

Claude app (desktop, claude.ai, mobile): Settings → Connectors → Add custom connector, paste the endpoint. The brief-first-theme prompt appears under + on desktop.

Then ask for a palette for something real and see whether it interviews you first. That is the point.

the explorer · seed gallery · llms.txt · service info · v4.7.0 · build b15cc69