Brainless: Claude Code-Style Shadcn Components

By Rogier Muller07.16.26
Brainless: Claude Code-Style Shadcn Components

Brainless is Swerdlow’s small shadcn/ui registry for building interfaces that look like Claude Code, Codex, and Grok. Developers want AI coding surfaces that feel familiar without rebuilding every prompt box, transcript, and action panel from scratch. Brainless is a component kit, not an agent runtime, and Keep the UI familiar while keeping the tool boundary explicit. For teams adding a GitHub MCP server to Claude Code, that means pairing the nice-looking surface with a narrow permission note, not hiding real GitHub access behind polished chrome.

Claude Code Codex and Grok, xAI’s assistant, have each made terminal-adjacent agent UI feel recognizable. Brainless turns that look into installable shadcn-style components. That is why it got attention: it is not a grand platform pitch, just a useful little kit for people already building around AI coding workflows.

Treat Brainless as an interface kit, not an agent

Brainless gives you components that resemble the visual language of coding agents: message panels, command-like controls, and the calm gray scaffolding that makes long-running work feel readable. A shadcn registry is a way to distribute copyable React components so a project can install and own the code instead of consuming a sealed widget library.

That choice matters. Developers asked why Brainless uses the shadcn registry shape because registry components fit the way frontend teams already work: inspect the code, copy it into the app, edit it, and keep design tokens local.

Don't assume the UI grants agent behavior. It does not. A Claude-like composer is still just a composer until you connect it to a model, a repository, and a permissioned tool surface.

A good use is an internal code-review helper panel. The panel can show an agent plan, a diff summary, and a final receipt. The actual authority still belongs to Claude Code and whatever MCP servers, hooks, or repository rules you connect behind it.

Make the familiar surface show real boundaries

The interesting part of Brainless is not that it looks like Claude Code. It is that it makes agent UI normal enough to critique.

When a component looks familiar, users stop marveling at the interface and start asking better questions. What can this button do? Is this action read-only? Did the agent fetch live GitHub data or summarize stale context? Can I inspect the command before it runs?

That is the healthy pressure. The tiny Hacker News discussion around Brainless was telling: people mostly reacted to the shape of the project, the registry choice, and the inspiration behind it. The excitement was about reusable craft, not magic.

Watch for aesthetic trust. If your panel looks like a coding agent, people may assume it inherits the safety model of one. Add labels for tool access, disabled states for unavailable actions, and a visible review step before anything writes to GitHub.

For Claude Code users, this connects cleanly to Team conventions: conventions are most useful when they are visible at the moment of action. A short permission note beside a button beats a forgotten policy buried in a doc.

Add GitHub MCP after the screen tells the truth

Here is the practical bridge. If Brainless gives you the front of the house, MCP gives Claude Code the door to outside systems.

MCP is the Model Context Protocol, an open protocol for connecting AI applications to external tools and data sources through servers. In a Claude Code workflow, a GitHub MCP server can let Claude inspect issues, pull requests, files, and repository metadata, depending on the server and token permissions you provide.

Start with read-only access. Use a fine-grained GitHub token when possible. Give it only the repositories and permissions the workflow needs, then make that boundary visible in the UI.

A safe first example is a Brainless-style review panel that asks Claude Code to read a pull request, summarize risky files, and suggest review questions. Do not let that first version merge, push, close issues, edit labels, or trigger workflows.

Watch for installing the server and then giving the interface one vague button named Run. Better names sound boring because they are honest: Read PR, Summarize changed files, Draft review notes.

Try it safely with one component and one server

Use this as a small experiment, not a rewrite. Pick one screen where an agent-style component would make work easier to inspect: a PR review drawer, a migration assistant, or a release-note generator.

Then connect only the minimum GitHub surface needed for that screen. This is a server setup snippet, not a universal production config:

export GITHUB_PERSONAL_ACCESS_TOKEN=your_read_only_fine_grained_token
claude mcp add github -s project -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
claude mcp list

Use a permission note next to the component:

Surface Allowed first Keep off at first
PR review panel Read pull requests, files, comments, metadata Merge, push, edit labels, close issues
Issue triage panel Read issues and comments Assign users, change milestones, create labels
Release-note draft Read commits and merged PRs Create releases, publish packages, trigger workflows

Before you keep the experiment, run this review:

  • Can a developer tell which GitHub repo the agent can read?
  • Can they tell whether the action is read-only or write-capable?
  • Does the UI show the draft before anything leaves the page or lands in GitHub?
  • Is the Claude Code MCP server scoped to the project, not every repo on the machine?
  • Is there one boring escape hatch, like copy the prompt or open in Claude Code?

This is also where a concise CLAUDE.md can help, but it should stay supporting context. Use it for durable repo rules such as test commands, branch naming, and review expectations. Do not make it carry secrets or one-off task instructions.

Keep the component honest during review

The best Brainless-style interface is one that makes agent work reviewable. It should not turn a multi-step coding task into a black box with nicer borders.

For a real repo, ask the component to produce a handoff receipt after Claude Code reads GitHub data. Keep it short:

  • What GitHub objects were read?
  • What files or PRs were considered?
  • What did the agent infer rather than verify?
  • What command, if any, should a human run next?

This pairs nicely with the lesson from Microsoft’s Claude Code and Copilot CLI Study: the interface around an agent changes how people supervise it. A polished surface should reduce replaying chat, not reduce scrutiny.

The limitation is obvious but easy to forget. Brainless can make the work legible, but it cannot decide your trust boundary. That belongs in the tool config, token scopes, hooks, and review habits around Claude Code.

Common questions

Why did developers care about the shadcn registry choice?

Because shadcn-style distribution gives developers component code they can own. That fits agent UI especially well: teams often need to adjust states, permissions, wording, and review receipts. The caveat is maintenance. Once copied into your app, the component is yours to audit, update, and secure.

Further reading

Next step

Install one Brainless component in a throwaway branch, connect one read-only GitHub MCP action, and ask whether a reviewer can see the boundary without reading the code. If they cannot, fix the surface before adding more power.