Create Custom Output Styles to Transform Claude into Any Agent
Output styles completely replace Claude Code's software engineering system prompt, making it possible to use Claude as any kind of agent while keeping all its file access, shell, and tool capabilities.
A custom output style is just a Markdown file with a frontmatter header:
---
name: Technical Writer
description: Focuses on documentation quality and clear explanations
keep-coding-instructions: false
---
You are a technical writing assistant helping developers create clear,
accurate documentation. When asked to write or review docs, you focus
on clarity, completeness, and consistency with the existing style guide.
Always suggest concrete improvements and explain your reasoning.
Save user-level styles to ~/.claude/output-styles/ or project-level styles to .claude/output-styles/. They appear in the /config picker automatically.
The keep-coding-instructions frontmatter key controls whether Claude Code's coding-specific prompt (like "verify code with tests") is retained alongside your instructions. Set it to true if you want Claude to still behave like a coding assistant but with an added layer of custom behaviour.
# Open the style picker
/config
# Select: Output style
Because styles modify the system prompt at session start, switching styles takes effect on the next new session, keeping prompt caching effective mid-conversation.
Use cases: code review assistant, documentation writer, architecture advisor, security auditor, or a domain-specific agent tailored to your team's workflow.
Custom output styles let you ship specialised Claude agents with zero infrastructure, using nothing but a Markdown file.
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.