Meaghan Choi joined Anthropic in late 2024 as the first designer on what became Claude Code - a CLI tool that edits your codebase directly. She saw the experimental demo (45-minute setup, janky, but mind-bending) and DM’d her manager: “I think this is going to be big. I want to design Moonlight for this.” Over the next ~18 months she’d go on to shape Claude Code’s terminal UX, lead the design of Artifacts, and become one of the earliest power users of Claude Tag - Anthropic’s multi-user shared-agent product.
Designing for the terminal - invisible thinking
Most people assumed a CLI didn’t need a designer. Choi saw the opposite. The terminal strips away progressive disclosure - everything you show is already disclosed, and developers expect extreme information density. Design on a CLI is about mental models, interaction primitives, and state communication. The biggest debate wasn’t about visuals - it was about keyboard shortcuts for switching modes (plan/auto), because every shortcut collides with decades of existing terminal muscle memory.
The warm mascot at startup (generated by Claude itself) was deliberate - she wanted the tool to feel like you’re in the computer with Claude, not just running a script. That vibe carries through in the loading states, the tool-calling animations, and the ANSI-art-inspired backgrounds she designed with the brand team.
Artifacts - from HTML file sharing to a product
The origin: people inside Anthropic were constantly generating HTML files from Claude and sending them to each other via iMessage. Choi saw this insane pattern and thought: make it automatic, make it shareable, make it live. Artifacts started as a single HTML render; the team uncovered the feature set by using it themselves - version control, sharing at specific versions, live iteration.
Her personal workflow with Artifacts is the most revealing part of the conversation. She’ll get a feature request, skip Figma entirely, and have Claude generate an artifact as an interactive proposal. She’ll link it in Slack, get feedback, iterate. When it reaches mid-fidelity, she asks Claude to rebuild it using actual production components and check it into the repo as a PR. The artifact becomes a decision log - she links exploration branches back to the main artifact so anyone can see why a choice was made.
This bridges the gap between “design exploration” and “shippable code” in a way traditional Figma-to-engineering handoff never could.
Claude Tag - the organizational mind
Claude Tag is the hardest thing to explain because it requires a paradigm shift. It’s not “your Claude in a Slack channel” - it’s a single Claude that your entire organization shares. It runs infinitely, it has its own credentials (GitHub, Google, Datadog), it knows everything happening across every channel, and it’s proactive.
Choi showed concrete examples:
- She DMs Claude: “there’s a drop shadow that shouldn’t be there. Remove it.” Claude finds the file, removes it, opens a draft PR with before/after screenshots. She reviews, says “merge it.” Claude checks CI, posts for review, tells her when merged.
- She links a Figma mockup and says “do this.” Claude builds it, opens a PR, and makes a design call where her mockup had gaps - then tells her “I made a decision because your designs didn’t include it. I think it’s better.” It was right.
- Claude proactively tells her when a rename decision was made in another channel, updating the copy in her current PR without being asked.
- She says more than half her code ships this way now. There are even automated cleanup jobs that run weekly, proposing PRs she just reviews and merges.
Fixed vs adaptive interfaces
A key design framework Choi is developing: not everything should be dynamic. She distinguishes between fixed interfaces (login screens, billing settings - things that need to be reliably stable) and adaptive interfaces (the non-deterministic, AI-shaped parts). The designer’s job is figuring out which is which, and teaching users what they can customize vs what they just consume.
Her warning: just because AI makes everything buildable doesn’t mean everything should be built. “Not every idea is good or necessary. Sometimes adding it is worse. But because it feels so easy to build now, everyone’s building everything.” The skill of discernment - knowing what’s worth adding and what isn’t - becomes central.
Letting go of design (and why it’s necessary)
Choi is adamant that designers need to stop being gatekeepers of quality. At Anthropic’s shipping speed, you can’t polish everything before launching - sometimes the mental model is what you’re testing, and polishing a wrong shape is wasted time. She believes in lowering the floor and raising the ceiling: making quality everyone’s responsibility by teaching people what good looks like (through design systems, automation, and Claude itself).
Her practical tactic: stack nicer PRs on top of engineer PRs automatically. She trained Claude to do this - it learned the habit and now does it proactively. It doesn’t erase the engineer’s work; it adds an iteration on top that raises the bar while keeping velocity.
Lessons worth keeping
- Know what to offload vs what to think deeply about. The mistake most people make is asking Claude for execution when they should be asking it to explore the shape of a problem. Claude won’t tell you your idea is wrong - it’ll just execute what you ask. The responsibility for direction stays with the designer.
- Design for the terminal is about mental models and state, not pixels. The same invisible thinking that makes a great CLI designer is the “long unsung hero” of product design everywhere.
- Artifacts collapse the design-to-code gap. If you can get Claude to build from your components, an artifact can go from “early ideation” to “shippable PR” in the same thread.
- The three skills that define future designers: (1) Open-minded fluidity - lean into chaos, don’t cling to rigid processes. (2) Discernment - taste applied to what to build, how to build it, and when to stop. (3) Full ownership of shipping - teaching your org how to elevate quality, not hoarding it.
- Fixed vs adaptive is a real design axis. Decide what needs to be stable and what should be dynamic. Most people will default to “customize everything” - don’t.
Related
- what-are-ai-agents - context on the agent paradigm that Claude Code and Tag operate within
- ultra-mode-codex - another look at AI-assisted coding tooling
- automate-ai-evals - Anthropic’s approach to testing AI behavior
Sources
Full transcript: meaghan-choi-designing-claude-code