Taste Is Just Context Your Agent Never Had
Adam Wathan built a toolkit that hands design taste to your coding agent. I built karnstack's UI with it. Here is the honest field report, and the $120 question.
An agent can type ten thousand words a minute and still hand you the same centered hero with a gradient headline every single time. ui.sh is Adam Wathan's attempt to fix that, and I have been building karnstack's interface with it. Here is the honest version.
The thing AI is still bad at
Let me put my bias on the table first: I am a Tailwind fan. I learned an enormous amount about CSS from Tailwind and from the interfaces the Tailwind Plus team has shipped over the years. So when Adam Wathan sent me an invite to something called ui.sh, I read the whole thing twice.
His diagnosis matched mine exactly. AI has gotten genuinely great at mechanical code work. Extract this to a function, swap this library for that one, rename this across the repo. But designing UI with an agent has stayed underwhelming, for two reasons.
The first is that models reach for the same tired layout every time. Centered headline, gradient text, uppercase eyebrow, two buttons side by side. Ask for "a hero section" with no other detail and you get the exact thing everyone else gets.
The second is subtler. The web is full of interfaces that are quietly broken, and the models trained on all of it inherit the breakage. Icon-only buttons without a real touch target. Icons that stop centering the moment the label wraps to a second line. Tables that lose their horizontal padding at the far edge on mobile. None of this is obvious until someone who has built a lot of UI points at it.
What ui.sh actually is
ui.sh is a toolkit for whatever coding agent you already use, Claude Code in my case. It is a set of agent skills plus an MCP server, installed with a shell script.
The skills, in Adam's own framing and from what I have seen using it, do a handful of things: they carry universal design principles like typography and color, they steer the model away from the generic "obviously AI-designed" look, they seed more interesting layout ideas for different page sections, they generate several concepts at once and let you preview and choose, and they fix the common implementation bugs that make UIs subtly wrong.
In practice the skill splits into modes. There is a default one that designs a single definitive version, an ideas mode that generates several directions and lets you pick between them live, a finalize pass that componentizes the result and canonicalizes the Tailwind, and focused ones like add-dark-mode. Behind all of that the MCP server serves design guidance organized into per-topic documents: buttons, colors, shadows, typography, surfaces, border radius, section layout, and so on. The agent pulls in only the ones relevant to what you are building.
ui.sh is invite-only and early. Adam says so plainly: if you are hoping for a polished, finished product, wait a couple of months. I am writing this as an early adopter, not reviewing a 1.0.
How it works on a real product
karnstack is a from-scratch Tailwind v4 and Base UI app, built by one person. That is squarely ui.sh's sweet spot today: new work, a single builder, and a strong wish to not look auto-generated.
The loop is simple. I type /ui, it pulls in the guidance relevant to whatever I am building, and then it either designs one definitive version or, when I ask, runs the ideas mode and generates a few different directions. For the multi-direction case it drops the variants straight into the real page, gives me a small toolbar to flip between them live in the browser, and once I pick one it collapses to that variant, runs the finalize pass, and deletes the rest.
I will name the pieces and describe what they do, but I am not going to paste ui.sh's actual guidelines in here. The verbatim rule-sets are the thing you pay for, and they are theirs to sell. Every visual below is my own recreation, not a screenshot of their work or a copy of their rules. If the workflow sounds useful, go buy it.
Flip, then choose
I rebuilt the picker idea below with my own code, just so you can feel what it is like. The first direction is what an agent tends to give you unprompted, sparkles and all. The other two are what comes out once real design guidance is in context: left-aligned, one accent color, a single primary button, and a bounded unit doing the talking.
Build Better Software, Faster
The all-in-one platform that empowers your team to ship with confidence. Seamlessly.
The real thing does this inside your actual page, with your actual components, so you are choosing between options that already work rather than picking from a row of dead mockups. That difference matters more than it sounds. You are designing in the medium, not in a design tool, and then translating.
The little things
The big layouts are not what won me over. It was the stuff I would never have caught on my own.
I had a subscription badge that felt empty and I could not say why. ui.sh diagnosed the dead space and rebuilt it with a live status pill, a hairline divider, and a value line, so the box finally had something to hold.
It quietly replaced my border-plus-shadow cards with ring-1 ring-black/5. That is the trick that makes a card's edge blend into its own shadow instead of fighting it. I had been doing it wrong for years.
And it broke my sparkles habit. I kept reaching for the sparkles icon on buttons, and it pointed out that sparkles is the single loudest "this was made by AI" tell, then swapped in an award medal. That note is exactly why the first variant up top wears one.
Plenty of what it caught does not screenshot as cleanly. On a course completion certificate it aligned every value to the same baseline so the rule lines underneath sat at one height across all three columns, with concentric radii on the nested panels so the corners nested instead of clashing.
Every one of those is on Adam's own list of things that separate amateur work from professional work: letter spacing on headlines, concentric radii, real touch targets, borders that blend with shadows. He was right that they add up, and the tool has them written down.
Where it is still rough
Keeping it honest, because pretending otherwise would not help anyone:
- It is one aesthetic right now. A modern, restrained, Tailwind-flavored look. If you want a wildly different visual style, it is not there yet. Adam says more styles are on the way.
- It leans toward new work. Adam says making it valuable on existing projects, rather than only designs built from scratch, is on the roadmap. I did point it at a couple of existing surfaces and that went fine, but building something new is clearly where it shines today.
- It iterates. My certificate took roughly six rounds before I loved it. In fairness, most of that slog was my own PDF rendering pipeline misbehaving, not ui.sh. The visual design part stayed clean throughout.
Is it worth $120?
The pricing is $120 a year for personal use or a business under $250k in revenue, and $300 a year for larger companies. That is ten dollars a month. It is priced like an early subscription, not a premium tool, which is the right call for how early it is.
For my case it paid for itself the first time it stopped a page from looking machine-made. One avoided "this obviously came out of an AI" redesign is worth far more than $120. What you are really buying is Adam Wathan's taste, written down and handed to your agent, plus whatever the roadmap turns into. At ten dollars a month, that is an easy bet to make.
The honest caveat: the guidance is, at bottom, a set of rules. A patient designer could write their own version. Most of us will not, will not keep it current, and do not have Adam's eye to begin with. That gap is the entire pitch, and for me it lands.
The real idea
The lesson here is bigger than one tool. The agent was never bad at design in some permanent, structural way. It simply did not carry the context a good designer keeps in their head, the hundred small rules about spacing and contrast and restraint that never get written down because the people who know them just know them.
Taste is just context your agent never had. The Tailwind team is doing the unglamorous work of writing that context down so the rest of us can hand it to a machine. I am rooting for them, and I am going to keep building with it.