All posts

Skin Your AI Agent: Terminals Are the New Desktop Theme

·Terminal Candy ·6 min read

skinsai-agentsdesignterminalclaude-code

I checked my screen time last week. Six and a half hours in a terminal. Two hours in a browser. Forty minutes in an editor.

That ratio would have been insane to me two years ago. The terminal was a tool I visited. I ran a build, I read the output, I left. Now it is where the work happens, because the work is delegated to an agent and the agent lives in a text stream.

Nobody planned this. But it changes what a terminal is for.

The surface moved and the design didn't follow

Every serious coding agent right now ships as a CLI. Claude Code. Codex CLI. Gemini CLI. aider. Goose. Cline has an editor home, sure, but the ones that took over my day all render into a pty.

That means the most-looked-at pixels on a developer machine are now 14pt monospace on a flat background.

Think about how much design effort went into the surfaces that came before. The IDE got twenty years of theme wars. VS Code has a marketplace with thousands of color schemes. People argue about Solarized in 2026. Browsers got new tab pages, reading modes, tab groups, entire startup companies.

The terminal got a preferences pane with a color picker and a font dropdown.

That was fine when the terminal was a hallway. It is not fine now that it is the living room.

Winamp was right

If you were online between 1997 and 2003 you remember skins. Winamp had tens of thousands of them. So did WindowBlinds, Kaleidoscope on the Mac, ICQ, mIRC, XMMS. People made skins of their cars. People made skins that were just a photo of their cat with tiny transport buttons pasted on it.

It was gaudy and it was great. The point was never that the skin improved playback. The point was that the software felt like it was yours.

Then it died, for reasons that made sense at the time:

  • Flat design arrived and non-native chrome started looking cheap.
  • Apple and Microsoft locked down window decoration to enforce consistency.
  • Everything moved to the web, and a browser tab cannot be skinned by its author in any deep way.
  • Retina and HiDPI killed a generation of bitmap skin art overnight.

So we got a decade of software that all looks the same. Which was arguably correct, because we were not staring at any one app long enough to care.

Why it comes back now

Three things flipped.

Dwell time. You do not customize a room you pass through. You customize a room you sit in. Agent work put us back in one window for hours at a stretch.

Waiting. Agent sessions have dead air. The model is thinking, the tests are running, the diff is being applied. You are looking at a screen that is not asking anything of you. That is exactly the condition under which people notice what a screen looks like.

Parallelism. This is the practical one. I do not run one agent. I run three or four. One refactoring, one writing tests, one chewing on a migration, one that is just my shell. They all produce scrolling text. They all look identical.

That last one turns decoration into information. If tab two is the one with the amber CRT phosphor look, I know at a glance which agent I am about to interrupt. Color is faster than reading a tab title. This is the same reason folder colors and highlighter pens exist.

What a skinnable agent cockpit actually means

I want to be concrete, because "customization" usually means five preset color schemes and a slider.

A cockpit that earns the name gives you:

Real chrome, not just colors

The window frame itself, the title bar, the tab strip, the button shapes. Winamp skins worked because the whole player was the skin. If you can only recolor the text you are painting one wall of a room.

Background art that stays readable

Anyone can put a wallpaper behind text. The hard part is contrast that survives it. A skin should ship with the scrim, the text color, and the selection color already tuned together so your git diff is still legible on top of a photo of a sunset.

Per-tab identity

Different skin per tab, persisted across restarts. Claude Code gets one look, aider gets another, my plain zsh gets a third. See also the Claude Code skins guide for how I set that up in practice.

Effects that are actually optional

CRT curvature, scanlines, phosphor bloom, glow. Delightful for twenty minutes, and then some days you want to just read. A global effects toggle matters more than the effects themselves.

A builder, not just a gallery

Downloading somebody else's skin is fun. Making one is what makes it yours. That was the Winamp lesson and it is the part most theme systems skip.

The part where I admit what I built

I built Terminal Candy because I wanted this and could not find it.

It is a native macOS terminal. AppKit and SwiftTerm, Apple Silicon, no Electron in the stack. That matters here more than it sounds like it should: skinning means compositing art and effects behind live text at 60fps while an agent dumps thousands of lines. A web view chokes on that. A native renderer does not.

There is a one-click gallery in the app, and there is a public skin marketplace where people post what they made. There is a Skin Builder for making your own without touching a config file, though you can absolutely still touch config files.

And there are agent alerts, which is the feature that came out of all this dwell-time thinking. Nine CLI agents are recognized, per tab. When Claude Code finishes or sits waiting for your approval, you get told. You stop babysitting a progress spinner. That deserves its own post, and it has one.

If you are shopping around, I wrote an honest comparison at the best skinnable Mac terminal that includes the competition.

The obvious objection

"This is decoration. Ship features."

Sure. Except we already accepted this argument everywhere else. Nobody tells you your IDE theme is frivolous. Nobody tells you to use the stock macOS wallpaper. We spent a decade agreeing that the tools you use all day should feel good, and then somehow exempted the one window that ate the whole workday.

There is also a quieter thing going on. Agent work can feel oddly disembodied. You describe an outcome, you wait, text appears, the code is different. A window that looks like something you chose puts a little bit of hand back into it. I do not have a rigorous defense of that. I just know that my amber phosphor tab makes a two hour session feel less like supervising a machine.

More on that feeling in vibe coding and terminal aesthetics.

Where this goes

My guess is that within a year the agent CLIs themselves start caring about presentation. Richer status lines, better diff rendering, some notion of visual identity per project. The terminal emulator becomes a container for a UI rather than a dumb glass teletype.

Skins are the early version of that. They are the part you can have today.

Terminal Candy is $10 once, with a 14 day trial and no account required. If your terminal is where you now live, try it and put something on the walls.

Keep reading