Use --model at Launch to Pick Your Starting Model
Most developers launch Claude Code and let it default to whatever model is configured globally. You can be more intentional by specifying the model at the start of each session:
# Start a focused session on Sonnet for implementation work
claude --model claude-sonnet-4-6
# Start on Opus for an architecture investigation
claude --model claude-opus-4-6
# Short form also works
claude -m sonnet
Pair this with /model mid-session to shift gears as the task changes. Start on Opus for planning, switch to Sonnet for the execution phase once the approach is clear.
For one-off tasks where you know the model upfront, set it in the command:
# Quick code generation task — Sonnet is fine, no need for Opus
claude --model sonnet -p "Add a created_at timestamp to every model that doesn't have one"
To avoid specifying it every time, set a default in your settings:
// ~/.claude/settings.json
{
"model": "claude-sonnet-4-6"
}
Or use the environment variable, which is useful in CI:
ANTHROPIC_MODEL=claude-sonnet-4-6 claude -p "Run the test suite and fix any failures"
Pick the right model at launch — you'll spend less and lose nothing on routine tasks.
Log in to leave a comment.
When Claude writes error messages, button labels, validation text, or onboarding flows, it defaults to generic developer-speak. Add a "Users" section to your CLAUDE.md describing who your actual users are — their technical level, industry jargon, and what they care about — so Claude writes copy that makes sense to THEM, not to developers.
Use the --agent flag with custom markdown files in .claude/agents/ to launch purpose-built Claude sessions with restricted tools and scoped system prompts.
Every project has traps — the billing module that silently fails if you forget to queue the job, the legacy table with column names that don't match the model, the config value that must be set before tests run. Document these gotchas in your CLAUDE.md so Claude avoids the same mistakes your team spent days debugging.