Pick the right brain for the job
/model switches the model mid-session (or press Alt+P). You can also launch with claude --model opus. Aliases like opus, sonnet and haiku always point at the current version of each family.
| Family | Reach for it when |
|---|---|
| Opus | Hard problems: architecture, subtle bugs, big refactors |
| Sonnet | Everyday coding: the balanced default for most work |
| Haiku | Fast, cheap, simple tasks. Great for lightweight subagents. |
Claude Code caches your prompt to keep turns fast and cheap. Switching models mid-session starts a fresh cache, so the next turn is slower. Switch when it matters, not on every message.
Effort: how hard Claude thinks
/effort sets reasoning depth: low, medium (the default), high, xhigh and max.
- Low: quick iterations, simple edits.
- Medium: everyday work.
- High / xhigh: subtle bugs, tricky concurrency, design decisions.
- Max: rarely needed.
Include ultrathink in a prompt to raise effort for just that turn.
Fast mode
/fast toggles fast mode for quicker output from the same model. It's great when you're iterating rapidly and waiting on responses.
Output styles: change how Claude talks
/output-style switches how responses are written. Built-in styles include Explanatory, which teaches as it works and adds insights about the choices it makes (perfect while you're learning), alongside the default style for efficient engineering work. You can also write your own:
---
name: Reviewer
description: Terse, review-focused responses
---
Respond like a senior code reviewer. Lead with risks, then suggestions.
Use bullet points. Never exceed 12 lines unless asked.CLAUDE.md is what Claude should know. An output style is how Claude should respond.
The status line
Make the bar at the bottom of the terminal show what you care about: model, git branch, context usage or cost. Run /statusline and describe what you want, and Claude Code sets it up. Under the hood it's a command in your settings:
{
"statusLine": { "type": "command", "command": "~/.claude/statusline.sh" }
}The script receives session info as JSON on stdin and prints one line.
Check your understanding
What's a downside of switching models mid-session?
Which output style is ideal while you're learning?
What's the default effort level?
CLAUDE.md vs output style: which is which?