Agentic UX Patterns

34 interaction patterns that came after the chatbot window and the ✨ sparkle button, with 72 real screenshots and what each one means for your design system.

34 patterns · 7 families · 72 screenshots · 14 with a terminal version · updated 8 October 2026

In 2023, AI in the interface meant a chatbot window in the corner and a ✨ icon on a button. Agents now run for minutes or hours, edit files, open browsers, ask for permission and keep working in the background. The patterns below repeat from product to product across web apps, mobile apps and terminals. Most of them have no component in today's design systems.

The 12 patterns to learn first

These show up in almost every serious agent product.

  1. Live plan / to-do checklist
  2. Collapsible tool-call / action log rows
  3. Scoped approval prompt (“Yes, and don't ask again”)
  4. Autonomy modes: plan mode / accept edits / auto
  5. Take control of the agent's browser
  6. Agent inbox: Needs input / Working / Completed
  7. Background/cloud agent sessions with PR status
  8. Generative UI and in-chat app widgets
  9. Per-hunk diff review: Keep / Undo / Apply
  10. Checkpoints and rollback
  11. “Thought for N s” thinking disclosure
  12. Hybrid ⌘K palette: “Ask AI or navigate”

Entry points: where AI lives in the UI

AI moved out of a separate chatbot and into the surfaces people already use: a sparkle button, a ⌘K palette, a docked panel, or the cursor itself.

01. Sparkle ✨ AI affordance with inline generate → Replace / Refine

A sparkle icon has become the shared signal for “AI here”. It opens an inline menu, and the generated text appears in place with Discard / Refine / Insert below / Replace actions, so you never leave the doc.

Coda: sparkle ✨ “Write with AI” menu inside the doc
Coda: sparkle ✨ “Write with AI” menu inside the doc
Confluence: generated text with Discard / Refine / Insert below / Replace
Confluence: generated text with Discard / Refine / Insert below / Replace
Strut: “AI Edit” and a sparkle ⌘K pill
Strut: “AI Edit” and a sparkle ⌘K pill
Seen inCodaStrutConfluenceNotionGoogle Workspace

For your design system. The sparkle is now an icon with meaning, so give it a rule. When is it allowed? Is it always the same color? Many teams use a special "AI gradient" token here. Decide if you want one before five teams invent five gradients.

02. Hybrid ⌘K palette: “Ask AI or navigate”

Top 12

The command palette now takes natural language as well as commands. One input either jumps to a tool or hands the query to the assistant.

Magnific: ⌘K palette “Ask Magnific or navigate to tools”
Magnific: ⌘K palette “Ask Magnific or navigate to tools”
Seen inMagnificStrutGumloopLinearRaycast

For your design system. If your library already has a Command palette, this is an extension of it: a fallback row at the bottom of the results ("Ask AI about …") and a loading state for the answer.

03. Docked side-panel copilot with a context chip

A persistent right-hand assistant panel sits next to your work. A chip such as “Current file + 1 item” shows exactly what the assistant can see.

Fabric: assistant panel with a “Current file + 1 item” context chip
Fabric: assistant panel with a “Current file + 1 item” context chip
Semrush: AI chat docked as a side panel with quick-action chips
Semrush: AI chat docked as a side panel with quick-action chips
Seen inSemrushFabricMicrosoft 365 CopilotNotionFigma

For your design system. The context chip is the small part that builds trust. People stop asking "does it know about this file?" when the answer is written on the panel.

04. Ghost text and Next Edit Suggestions

Grey inline completions accepted with Tab (or word by word). Next Edit Suggestions go further and predict where your next edit should happen, marking it with a gutter arrow.

VS Code Copilot: ghost text with the “1/3 · Accept Tab · Accept Word” toolbar
VS Code Copilot: ghost text with the “1/3 · Accept Tab · Accept Word” toolbar
VS Code Copilot: Next Edit Suggestion arrow in the gutter
VS Code Copilot: Next Edit Suggestion arrow in the gutter

For your design system. This one started in code editors and is slowly moving into text fields everywhere. If your Textarea component might ever get suggestions, you'll need a "suggested text" color token that passes contrast and still reads as not yours yet.

05. Prompt starters and suggested follow-ups

An empty-state gallery of example prompts (with Shuffle), plus follow-up chips after each answer that suggest the next step.

Hootsuite OwlyGPT: prompt-starter cards, chips and Shuffle
Hootsuite OwlyGPT: prompt-starter cards, chips and Shuffle
Unify: table output followed by suggested follow-up chips
Unify: table output followed by suggested follow-up chips
Seen inHootsuite OwlyGPTUnifyCustomer.ioNotebookLMPerplexity

For your design system. The blank prompt box is the hardest screen in AI products. Prompt starters are an empty-state pattern, so they belong next to your other empty states in the docs.

Composer and context control

The prompt box has turned into a control surface. Users pick context, tools, model, effort and input mode before they hit send.

06. @-mentions and context chips

Also in the terminal

Typing @ pulls in files, docs, people or connected-app records as chips. The terminal equivalent is @path.

ClickUp Brain: @-mention picker for docs, people and connected apps
ClickUp Brain: @-mention picker for docs, people and connected apps
Notion AI: attachment, @ picker and connector icons in the composer
Notion AI: attachment, @ picker and connector icons in the composer
Seen inClickUp BrainNotion AICursorGemini CLIClaude Code

For your design system. You probably have a Mention component and a Chip component already. The new part is the chip that represents context the model will read, often with a file type icon and a remove button.

07. “+” tools/connectors menu and mode chips

A plus button in the composer opens tools, connectors and saved playbooks. Toggle chips such as Research or Voice switch the agent's mode.

WRITER: “+” menu (Connectors, Playbooks, Voice) and mode chips
WRITER: “+” menu (Connectors, Playbooks, Voice) and mode chips
Seen inWRITERChatGPTClaudeNotion AI

08. Model picker, effort slider and agent tiers

Also in the terminal

Users choose the model and how hard it should think (effort/reasoning level), or pick a cost tier such as Lite / Economy / Power. In terminals this is a /model command.

Replit: agent modes (Lite/Economy/Power), model picker and an Effort slider
Replit: agent modes (Lite/Economy/Power), model picker and an Effort slider
Rox: model picker in the composer
Rox: model picker in the composer
Seen inReplitRoxChatGPTCursorCodex CLI

For your design system. Notice how Replit names tiers by cost and effort, and hides model names one level deeper. That's a content design decision worth copying.

09. Context-window and cost meter

Also in the terminal

Context used, tokens and dollars are shown as a status line or meter, so users know when to compact the context or start fresh.

Claude Code: custom status line with model, branch, context-window bar (42%), cost and time
Claude Code: custom status line with model, branch, context-window bar (42%), cost and time

For your design system. This is a Progress bar with a new meaning. Agree on thresholds and colors (when does 70% turn into a warning?) so every product shows the same thing.

10. Voice mode orb and live transcript

A full-screen animated orb for real-time speech, with a live transcript and a big Stop button you can use to interrupt.

ChatGPT iOS: voice mode orb
ChatGPT iOS: voice mode orb
Meta AI iOS: voice mode with live transcript and Stop
Meta AI iOS: voice mode with live transcript and Stop
Seen inChatGPT VoiceMeta AIGemini Live

For your design system. Motion tokens matter here. The orb's states (listening, thinking, speaking) are carried mostly by animation, and that needs a reduced-motion version.

Agent transparency: showing the work

Agents now run for seconds to hours, so the UI streams a plan, every tool call and the reasoning, letting users follow along, trust the result and interrupt.

11. Live plan / to-do checklist

Top 12 · Also in the terminal

The agent writes a step list up front and ticks items off as it goes (“2 of 6 completed”). The same pattern appears in web apps and terminals.

Relevance AI: “Todo List · 2 of 6 completed” with struck-through steps
Relevance AI: “Todo List · 2 of 6 completed” with struck-through steps
Manus: plan steps with 2/2 progress and “Schedule task”
Manus: plan steps with 2/2 progress and “Schedule task”
Codex CLI: “Updated Plan” checklist in the terminal
Codex CLI: “Updated Plan” checklist in the terminal
Warp: agent task checklist and “Thought for N seconds” in the terminal
Warp: agent task checklist and “Thought for N seconds” in the terminal
Seen inRelevance AIManusCodex CLIClaude Code (TodoWrite)WarpCursor

For your design system. If you build one new component this quarter, I'd build this one. It's a Checklist with four states per item (pending, in progress, done, skipped or failed) and a summary line. Simple to spec, and it shows up everywhere.

12. Collapsible tool-call / action log rows

Top 12 · Also in the terminal

Each action becomes a compact row (“Viewing 7 paths”, “Edited .env”, “Created 1 file”, “Task created”) that you can expand for detail. In terminals, ctrl+o expands it.

Emergent: collapsed tool rows (“Viewing 7 paths”, “Edited /app/backend/.env”) and “Agent is running…”
Emergent: collapsed tool rows (“Viewing 7 paths”, “Edited /app/backend/.env”) and “Agent is running…”
Claude Code: Read/Search tool calls folded with “ctrl+o to expand” (README demo frame)
Claude Code: Read/Search tool calls folded with “ctrl+o to expand” (README demo frame)
Gemini CLI: WriteFile tool box, “Using: 2 GEMINI.md files | 2 MCP servers”
Gemini CLI: WriteFile tool box, “Using: 2 GEMINI.md files | 2 MCP servers”
Lightfield: “Task created” action chips in the chat
Lightfield: “Task created” action chips in the chat
OpenCode: Grep/Glob/Read steps, token/cost meter, “tab agents”
OpenCode: Grep/Glob/Read steps, token/cost meter, “tab agents”
Seen inEmergentLightfieldClaude CodeGemini CLIOpenCodeCursor

For your design system. The hard part is the writing. "Edited 1 file" is useful. "Called tool: file_write" is noise. Put the verb list in your content guidelines (Viewing, Searching, Edited, Created, Ran) so every team writes rows the same way.

13. “Thought for N s” thinking disclosure

Top 12 · Also in the terminal

Reasoning is collapsed behind a timer label (“Thought for 42s”, “Show thinking”). It signals effort without dumping chain-of-thought on the user.

ChatGPT: “Thought for 42s” followed by an answer with inline source pills
ChatGPT: “Thought for 42s” followed by an answer with inline source pills
Customer.io: “Thought for 2 seconds”, “Searched docs”, “5 references” popover
Customer.io: “Thought for 2 seconds”, “Searched docs”, “5 references” popover
Plane (Pi): “Show thinking” disclosure
Plane (Pi): “Show thinking” disclosure
Seen inChatGPTClaudeGeminiCustomer.ioPlaneWhopClaude Code

For your design system. Technically, this is a Disclosure (or Accordion) with a live timer in the label. You likely have 80% of it already.

14. Inline citations and sources panel

Answers carry source pills or numbered citations, often with a side panel listing every source. This grounds the answer and lets users verify it.

NotebookLM: sources panel, numbered citations and follow-up chips
NotebookLM: sources panel, numbered citations and follow-up chips
Cohere: “Performing multistep reasoning using tools” with citation chips
Cohere: “Performing multistep reasoning using tools” with citation chips
Seen inChatGPT searchPerplexityNotebookLMCohereCustomer.io

15. Deep-research activity feed

A long-running research job streams an Activity timeline of searches and readings with a source count, ending with “Research completed in 5m” and a report.

ChatGPT deep research: Activity panel, “23 Sources”, “Research completed in 5m”
ChatGPT deep research: Activity panel, “23 Sources”, “Research completed in 5m”
Seen inChatGPT deep researchGemini Deep ResearchPerplexity

16. Playful status verbs with an interrupt hint

Also in the terminal

Whimsical rotating gerunds (“Grooving…”, “Sprinkling some magic…”, “Pondering the meaning of it all”) paired with hard data: elapsed time, tokens, and “esc to interrupt”.

Claude Code: “Grooving… (esc to interrupt · 6s · ↓ 441 tokens)” and “Thought for 1s (ctrl+o to show thinking)”
Claude Code: “Grooving… (esc to interrupt · 6s · ↓ 441 tokens)” and “Thought for 1s (ctrl+o to show thinking)”
Seen inClaude CodeEmergentLindy

For your design system. I love this one because it's personality plus control. The joke keeps you company during a long wait, and the interrupt hint right next to it tells you how to stop the agent.

17. Agent's computer pane, run trace and replay

A live window into the agent's own browser or terminal, plus a scrubbable replay or timestamped trace of every step after the run.

Lindy: “Start computer” card, step checklist, Browser/Terminal pane and playful loading lines
Lindy: “Start computer” card, step checklist, Browser/Terminal pane and playful loading lines
Manus: session replay with a timeline, action chips and “Skip to results”
Manus: session replay with a timeline, action chips and “Skip to results”
Browserbase: run trace (Prompt / Reason / Tool rows with timestamps) and Stop
Browserbase: run trace (Prompt / Reason / Tool rows with timestamps) and Stop
Cofounder: agent workspace tabs (Preview / Changes / Replay / Scratchpad), “Ran 35 actions”
Cofounder: agent workspace tabs (Preview / Changes / Replay / Scratchpad), “Ran 35 actions”
Seen inManusLindyBrowserbaseCofounderDevinChatGPT agent

Human in the loop and autonomy controls

How much the agent may do without asking is now a first-class UI decision, with approvals, questions, modes and takeover.

18. Scoped approval prompt (“Yes, and don't ask again”)

Top 12 · Also in the terminal

Before a risky action, the agent shows the exact command or diff and offers Yes once, Yes always for this pattern, an escalation to a more autonomous mode, or No (Tab to amend).

Claude Code: Bash permission prompt (Yes / Yes, and don’t ask again for: npm test * / switch to auto mode / No)
Claude Code: Bash permission prompt (Yes / Yes, and don’t ask again for: npm test * / switch to auto mode / No)
Seen inClaude CodeCodex CLIGemini CLICursorGumloop

For your design system. The detail I'd steal: "don't ask again" is scoped to a pattern (npm test *). It doesn't unlock everything. Your Confirmation dialog probably has two buttons. This one needs a scope line and a preview of the action.

19. Structured clarifying questions

Also in the terminal

Instead of guessing, the agent pauses with a form-like card (radio options, numbered choices, Submit/Reject) and lists it in a “Pending approval” queue.

Gumloop: “Asking for your input” with radio options, Reject/Submit and a “Pending Approval” sidebar
Gumloop: “Asking for your input” with radio options, Reject/Submit and a “Pending Approval” sidebar
Whop: the agent thinks, then offers numbered choices
Whop: the agent thinks, then offers numbered choices
Seen inGumloopWhopOpenCodeClaude CodeChatGPT deep research

For your design system. Good news: this is built from components you have (Radio group, Card, Button). What's missing is a documented pattern for "form inside a conversation", including what happens to the card after it's answered.

20. Autonomy modes: plan mode / accept edits / auto

Top 12 · Also in the terminal

One keystroke (Shift+Tab) cycles how autonomous the agent is. Plan mode means read-only planning, and a status-bar label always shows the current mode.

Claude Code: Shift+Tab cycles auto / manual / accept edits / plan mode (frames from the docs video)
Claude Code: Shift+Tab cycles auto / manual / accept edits / plan mode (frames from the docs video)

For your design system. The mode label needs to be visible all the time. If I can't tell at a glance whether the agent is in "auto", I shouldn't walk away from my laptop.

21. Take control of the agent's browser

Top 12

The user watches the agent operate a remote browser and can press “Take control” to handle a login, CAPTCHA or payment, then hand control back.

Manus: “Manus’s Computer” live browser view with a “Take control” button
Manus: “Manus’s Computer” live browser view with a “Take control” button
Seen inManusOpenAI Operator → ChatGPT agent (Jul 2025)Perplexity Comet

Explicit consent before an agent sees your screen or data, plus settings that tune behaviour, such as “Ask me clarifying questions”, response detail and scope.

Quicken: consent screen before an AI agent can view your screen
Quicken: consent screen before an AI agent can view your screen
Clay: agent settings, “Ask me clarifying questions” toggle, response detail and scope
Clay: agent settings, “Ask me clarifying questions” toggle, response detail and scope

Async, background and multi-agent

Agents run in the cloud while you do something else, and several run at once. The UI starts to look like an inbox or a CI dashboard instead of a chat.

23. Background/cloud agent sessions with PR status

Top 12

Fire off a task and the agent works remotely. A session list shows status (“PR is ready”), with tabs for worklog, changes, PR and the agent's desktop.

Devin: session list (“PR is ready”) with Worklog / Changes / PR / Desktop tabs
Devin: session list (“PR is ready”) with Worklog / Changes / PR / Desktop tabs
Cursor cloud agent: “Get notified when finished”, “3 Files Changed”, “Worked for 37s”
Cursor cloud agent: “Get notified when finished”, “3 Files Changed”, “Worked for 37s”

24. “Notify me when done” and multitasking

Long tasks offer a notification opt-in and explicitly invite you to keep chatting or work elsewhere while a progress card runs.

ChatGPT: research progress card, “Try asking ChatGPT something else while you wait”, Activity panel
ChatGPT: research progress card, “Try asking ChatGPT something else while you wait”, Activity panel
Replit: “Get notified when Agent is done”
Replit: “Get notified when Agent is done”

25. Agent inbox: Needs input / Working / Completed

Top 12 · Also in the terminal

Many parallel sessions grouped by state, so the human acts as a dispatcher and answers whichever agent is blocked.

Claude Code agent view: sessions grouped as Needs input / Working / Completed
Claude Code agent view: sessions grouped as Needs input / Working / Completed
Warp: agent list with an “Agent harness” picker (Warp / Claude Code / Codex)
Warp: agent list with an “Agent harness” picker (Warp / Claude Code / Codex)

For your design system. This is a status system more than a component. "Needs input", "Working", "Completed", "Failed" should mean the same thing (same color, same icon, same words) in the inbox, the notification and the session header.

26. Subagents and harness picker

Also in the terminal

A lead agent delegates to specialised subagents (“Waiting for design subagent”). Some tools let you choose which agent harness runs a task, for example Warp, Claude Code or Codex.

Replit: “Design agent working…”, “Waiting for design subagent”
Replit: “Design agent working…”, “Waiting for design subagent”
Seen inReplitWarpClaude Code subagentsOpenCode (tab agents)

27. Scheduled actions and automation triggers

Prompts become recurring jobs: “every Monday at 9”, on an event trigger, or via MCP tools. A manager lists them all.

Gemini: Scheduled actions manager
Gemini: Scheduled actions manager
Devin: Automations with trigger, schedule and MCPs
Devin: Automations with trigger, schedule and MCPs
Seen inGemini scheduled actionsChatGPT TasksDevin AutomationsManus

Outputs, generative UI and review

The result is no longer just a chat bubble. It is an editable artifact or a live widget, and agent changes get reviewed like code: per hunk, revertible, by checkpoint.

28. Canvas / artifact pane with versions

Long outputs open in a side-by-side editor next to the chat, with versions (“Version 1”, “Updated canvas”) you can edit directly.

Langdock: “Updated canvas”, with the document editor beside the chat
Langdock: “Updated canvas”, with the document editor beside the chat
Mistral Le Chat: Canvas
Mistral Le Chat: Canvas
Klaviyo Composer: “Version 1” artifact card with Preview
Klaviyo Composer: “Version 1” artifact card with Preview

29. Generative UI and in-chat app widgets

Top 12

The model answers with interactive components (cards, carousels, maps, charts, reports with actions) instead of prose. Third-party apps can now render widgets inside ChatGPT.

ChatGPT Apps SDK design guidelines: inline cards, carousel, list and map widgets inside the chat
ChatGPT Apps SDK design guidelines: inline cards, carousel, list and map widgets inside the chat
Langdock: “Read skill, worked”, then a radar chart rendered in the chat
Langdock: “Read skill, worked”, then a radar chart rendered in the chat
Rox: generated interactive report with “Suggested actions”
Rox: generated interactive report with “Suggested actions”
ChatGPT shopping research: product card with “Not interested / More like this”
ChatGPT shopping research: product card with “Not interested / More like this”

For your design system. This is the pattern that should keep design system teams up at night, in a good way. When the model picks which component to render, your components become the model's vocabulary. Clear names, clear props and written usage rules decide whether the agent renders your Card correctly or invents something. OpenAI's Apps SDK guidelines are worth reading for exactly this reason: they're a design system written for a model.

30. Per-hunk diff review: Keep / Undo / Apply

Top 12

Agent edits land as reviewable diffs. Accept or reject each hunk, step through “1 of 5”, then “Apply changes to main”. AI review bots also comment on PRs.

VS Code Copilot: per-hunk Keep / Undo overlay, “1 of 5”
VS Code Copilot: per-hunk Keep / Undo overlay, “1 of 5”
Replit: “Ready for review”, then “Apply changes to main version”
Replit: “Ready for review”, then “Apply changes to main version”
Devin Review: split diff
Devin Review: split diff
Cursor: “Agentic Security Review” comment posted on a PR
Cursor: “Agentic Security Review” comment posted on a PR

For your design system. Diffs used to be a developer thing. Now they show up in docs, slides and design tools too: the AI changed this paragraph, keep it or undo it. Added and removed colors are a good candidate for semantic tokens (color.diff.added, color.diff.removed) if you don't have them yet.

31. Checkpoints and rollback

Top 12

Every agent turn creates a restore point. You can roll back files, the database and even the agent's memory to an earlier step.

Replit: “Rollback to this checkpoint?” listing Files / Database / Agent memory
Replit: “Rollback to this checkpoint?” listing Files / Database / Agent memory
VS Code Copilot: “Restore Checkpoint” on a chat turn
VS Code Copilot: “Restore Checkpoint” on a chat turn

For your design system. Undo was always a safety net. With agents, it's the reason people dare to say "yes" to autonomy in the first place.

Memory, connectors and project instructions

Persistent context is now something users can see and edit: what the AI remembers, which tools it can reach, and the house rules files it reads.

32. User-visible memory manager

A settings page listing what the assistant remembers about you (notes, concepts, entities), with the ability to edit or delete each item.

Perplexity: Memory manager (Notes / Concepts / Entities)
Perplexity: Memory manager (Notes / Concepts / Entities)
Higgsfield: “Supercomputer’s memory of You”
Higgsfield: “Supercomputer’s memory of You”

33. Connectors / MCP tool catalog

Also in the terminal

An app-store-like list of connected services and MCP servers, with tool counts (“9 tools available”) and per-tool toggles. Terminals show “2 MCP servers” in the footer.

WRITER: Connectors page, “9 tools available”
WRITER: Connectors page, “9 tools available”
Notion AI: connector settings
Notion AI: connector settings
Seen inNotion AIWRITERClaudeChatGPTGemini CLIDevin

34. Project instruction files (AGENTS.md / CLAUDE.md / GEMINI.md)

Also in the terminal

A markdown file in the repo acts as the agent's persistent brief. The UI shows which files are loaded (for example “Using: 2 GEMINI.md files”).

Gemini CLI: WriteFile tool box, “Using: 2 GEMINI.md files | 2 MCP servers”
Gemini CLI: WriteFile tool box, “Using: 2 GEMINI.md files | 2 MCP servers”
Seen inClaude CodeCodexGemini CLICursorCopilot

For your design system. This one is closest to home for design system teams. An AGENTS.md file is documentation that an agent reads before every task. If your usage guidelines live only in a Figma page or a Notion doc, the agent never sees them.

What's still missing

  • No original screenshot of Claude Artifacts or ChatGPT Canvas. Canvas is illustrated with Langdock, Le Chat and Klaviyo instead.
  • OpenAI Operator / ChatGPT agent takeover: openai.com blocks automated fetches, so takeover is illustrated with Manus. The openai.com links are cited but could not be machine-checked (HTTP 403 to bots).
  • Ambient/proactive agents (agents that act unprompted, e.g. inbox triage suggestions) and agent-to-agent handoff between vendors: no strong visual found beyond Warp's harness picker.
  • Aider and Cline: no usable raster screenshot (Aider uses an SVG screencast).

Screenshot sources

Most screenshots come from Mobbin, a library of real app screens. The rest come from official product docs and READMEs on code.visualstudio.com, code.claude.com, github.com, warp.dev, manus.im, help.manus.im, developers.openai.com and cursor.com. Pattern framework: The Shape of AI.

Weekly newsletter

Get the weekly DSG newsletter.

One practical guide each week: prompts, Codex and Claude notes, design-system automation, and tools worth trying.

Opens Substack. Unsubscribe anytime.