Skip to content

Output Styles, Voice & UI Customization

Quality-of-life features that change how Claude communicates and how the terminal feels.

Output styles modify the system prompt to change role, tone, and format — not what Claude knows. Use when you keep re-prompting for the same voice, or when Claude isn’t doing software engineering at all.

Built-in styles (pick via /config → Output style, or "outputStyle" setting):

StyleBehavior
DefaultStandard software engineering
ProactiveExecutes immediately, assumes instead of asking (permission prompts still apply)
ExplanatoryAdds educational “Insights” about implementation choices
LearningCollaborative learn-by-doing — leaves TODO(human) markers for you to implement

Learning style is gold for this curriculum — Claude teaches while you build.

Custom style = markdown file in ~/.claude/output-styles/ (user) or .claude/output-styles/ (project):

---
name: Diagrams first
description: Lead every explanation with a diagram
keep-coding-instructions: true
---
When explaining code or architecture, start with a Mermaid diagram, then prose.

keep-coding-instructions: true keeps Claude’s engineering behavior; omit it for non-coding roles (writing assistant, data analyst). Style changes apply after /clear or restart (system prompt loads once per session).

vs related features: CLAUDE.md = project knowledge · --append-system-prompt = one-off addition · skills = on-demand workflows · output style = every response, different persona.

Speak prompts instead of typing (v2.1.69+; claude.ai account required — audio is transcribed on Anthropic servers; local microphone needed).

/voice # toggle (hold mode default)
/voice tap # tap once to record, tap again to send
/voice off
  • Hold mode: hold Space, speak, release — transcript lands at your cursor; mix voice + typing freely
  • Tap mode: no warmup; auto-submits transcripts ≥3 words
  • Tuned for coding vocabulary (regex, OAuth, localhost); your project + branch names are recognition hints
  • 20 languages via the language setting; rebind the key via voice:pushToTalk in keybindings.json
  • Works in agent view’s dispatch/reply inputs too

A custom status line shows model, git branch, context usage, cost — always visible.

/statusline show the model name, current branch, and context percentage

…and Claude writes the script for you. Under the hood: "statusLine": {"type": "command", "command": "~/.claude/statusline.sh"} — your script receives JSON (model, cwd, current_usage cache/token counts) on stdin every update. Great for watching cache hit health (54-prompt-caching-deep-dive.md).

FeatureHow
Fullscreen TUI rendering (alt-screen, smoother redraw)/fullscreen or "fullscreen": true
Themes/theme (dark/light/ansi/daltonized variants)
Vim keybindings/vim
Session name colors (for agent view)/color
Custom keybindings~/.claude/keybindings.json (05-interactive-mode-shortcuts.md)

Real Case: Teaching Mode for This Curriculum

Section titled “Real Case: Teaching Mode for This Curriculum”
1. /config → Output style → Learning
2. "implement capstone 4's /new-endpoint skill with me"
3. Claude scaffolds, explains each decision as an Insight, and leaves
TODO(human) for the validation logic — you write the crux, it reviews
  • Trick: “Style = persona, CLAUDE.md = knowledge, skills = recipes.”
  • Do: put trainees on the Learning style for their first week — Claude co-teaches.
  • They’ll trip on: style changes apply only after /clear or restart.

Learning path:51-artifacts-and-deep-links.md · Index · ➡ 53-devcontainers-sandbox-environments.md

Written by Fenil Patel