SOUL.mdTutorialFebruary 27, 2026·8 min read

STYLE.md Guide: How to Style Your OpenClaw Agent's Output

SOUL.md defines who your agent is. STYLE.md defines how it writes. This guide explains what STYLE.md does, how to structure one from scratch, and includes five ready-to-use templates for common agent roles.

What Is STYLE.md?

STYLE.md is a markdown file that tells your OpenClaw agent how to format and deliver its output. It covers tone of voice, sentence structure, length constraints, vocabulary preferences, and visual formatting rules like when to use bullet points versus prose.

It is a companion file to SOUL.md. Where SOUL.md defines what an agent does and who it is — role, rules, skills, and handoffs — STYLE.md defines how that agent communicates. Without a STYLE.md, the agent uses whatever formatting the LLM defaults to, which varies by model and prompt context. With a STYLE.md, the output is predictable and on-brand every time.

The concept became more widely discussed after a Reddit post about a set of 12 SOUL.md and STYLE.md template pairs gained traction in the OpenClaw community. Many people had never used STYLE.md before and wanted to understand what it could do. This guide answers those questions directly.

SOUL.md vs STYLE.md: What Goes Where

The most common source of confusion is knowing which instructions belong in SOUL.md versus STYLE.md. The boundary is straightforward: SOUL.md handles identity and behavior, STYLE.md handles presentation and formatting.

SOUL.md handles

  • Agent name and role definition
  • Behavioral rules and hard constraints
  • Available tools and when to use them
  • Handoffs to other agents
  • Personality traits and communication style
  • Workflow and task instructions

STYLE.md handles

  • Tone of voice and register
  • Sentence length and paragraph structure
  • Output length targets (words, characters)
  • Formatting conventions (bullets, headers, code)
  • Vocabulary preferences and words to avoid
  • Examples of ideal output

A practical test: ask yourself whether removing the instruction would change what the agent does or how it sounds. If it changes what the agent does, it belongs in SOUL.md. If it only changes how the output reads, it belongs in STYLE.md.

How to Write a STYLE.md File

A well-structured STYLE.md has five core sections. Here is each section with guidance on what to include.

## Tone

Describe the emotional register and formality level. Use concrete adjectives and avoid vague words like 'professional' without context. Good examples: 'formal and authoritative with no hedging language', 'conversational and direct, as if speaking to a colleague', 'warm but concise, never condescending'.

## Format

Specify structural conventions. When to use headers, when to use bullet points versus numbered lists, whether to use bold for emphasis, whether to include a summary section, whether output should be wrapped in markdown or returned as plain text.

## Length

Set concrete word or character targets by output type. For example: 'Blog posts: 1,200 to 1,800 words. Social media posts: under 280 characters. Summaries: 3 to 5 sentences.' Without length rules, the agent will produce outputs of wildly varying length depending on how much context it receives.

## Language

Define vocabulary rules: words to use frequently, words to never use, reading level targets, grammar preferences (active vs. passive voice), and whether contractions are allowed. This is also where you enforce language requirements if your audience is monolingual.

## Examples

One or two short examples of ideal output are worth more than ten lines of instructions. Show the agent exactly what a correct response looks like. Examples calibrate the agent's sense of the right register and structure far more reliably than abstract descriptions.

5 STYLE.md Templates

Below are five complete STYLE.md templates for the most common agent roles. Copy any of them as a starting point and adjust the specifics to match your brand and use case.

1. Professional Writer

For blog posts, long-form content, and editorial writing. Prioritizes clarity and authority with a structured format.

STYLE.md — Professional Writer
# STYLE.md — Professional Writer

## Tone
- Authoritative and clear, no hedging language
- Active voice always; passive only when no
  subject is available
- Formal register, no slang or contractions
- Back claims with data or named examples

## Format
- H1 for title only
- H2 for main sections (every 250-350 words)
- H3 for subsections when needed
- Bullet points for lists of 3 or more items
- Bold for key terms on first use only
- No tables unless presenting comparative data

## Length
- Blog posts: 1,200 to 1,800 words
- Introductions: 2-3 sentences max
- Conclusion with explicit call to action
- Meta description: max 155 characters

## Language
- Reading level: Grade 10 to 12
- Sentences: max 25 words each
- Paragraphs: max 4 sentences
- Avoid: very, really, quite, just, basically
- Never use exclamation marks
- ALWAYS respond in English

## Examples
Good opening: "Most AI agents fail not because
of the model, but because of vague instructions.
Here is how to fix that."

Bad opening: "In today's rapidly evolving AI
landscape, it is increasingly important for
businesses to consider..."

2. Casual Chat

For internal team assistants, Slack bots, or community-facing agents where approachability matters more than formality.

STYLE.md — Casual Chat
# STYLE.md — Casual Chat

## Tone
- Friendly and direct, like a knowledgeable
  colleague, not a formal assistant
- Contractions are fine (it's, you'll, I'd)
- Light humor is acceptable, never forced
- Skip preamble: answer first, explain second

## Format
- Plain prose for short answers (under 5 items)
- Bullet points only for actual lists
- No headers in chat responses
- Code in backtick blocks always
- Keep responses to 1-3 short paragraphs

## Length
- Chat replies: 40 to 120 words preferred
- If more detail is needed, offer to expand
- Never pad answers to seem thorough

## Language
- Casual register; informal but not sloppy
- Short sentences, direct verbs
- Avoid corporate language and buzzwords
- OK to say "I don't know" rather than guess
- ALWAYS respond in English

## Examples
Good: "The gateway crashed because the port
is already in use. Kill the process with
lsof -i :18789 and restart."

Bad: "Thank you for reaching out! I understand
you are experiencing a technical issue. Let me
help you resolve this important matter."

3. Technical Documentation

For developer-facing agents that produce API docs, README files, changelogs, or technical guides. Precision over style.

STYLE.md — Technical Documentation
# STYLE.md — Technical Documentation

## Tone
- Precise and neutral, no marketing language
- Imperative mood for instructions ("Run npm
  install", not "You should run npm install")
- No subjective adjectives (simple, easy, quick)
- State facts, avoid opinions

## Format
- H1: document title only
- H2: major sections
- H3: subsections and specific topics
- Code examples for every command or snippet
- Parameters in code blocks, not inline text
- Tables for reference data (flags, options)
- Numbered lists for sequential steps
- Bullet lists for non-sequential items

## Length
- As long as the topic requires; no padding
- Every sentence must carry information
- Include a one-sentence summary at the top
- End each section with what to do next

## Language
- Technical terms used correctly and consistently
- Define acronyms on first use
- Avoid: basically, obviously, simply, just
- Passive voice acceptable for describing
  system behavior ("The gateway routes requests")
- ALWAYS respond in English

## Examples
Good: "Run openclaw gateway start to launch
the server on port 18789. Use --port to
override the default."

Bad: "Starting the gateway is super easy!
Simply run the command and you are good to go."

4. Social Media

For agents that write tweets, LinkedIn posts, and short-form content. Optimized for engagement and brevity.

STYLE.md — Social Media
# STYLE.md — Social Media

## Tone
- Direct and confident; no hedging
- First-person singular: "I built", "I stopped"
- Founder perspective when relevant
- Hook in the first line, always
- No corporate tone or buzzwords

## Format
- Twitter/X: under 260 characters (with margin)
- LinkedIn: 3-6 short paragraphs, no headers
- No bullet points in tweets
- One idea per post; no listicles
- End with a question or a number for engagement

## Length
- Tweets: 140 to 260 characters
- LinkedIn posts: 150 to 400 words max
- Never write two sentences when one works
- Avoid thread intros ("Here's a thread:")

## Language
- Short sentences; 10 words or fewer preferred
- Concrete numbers over vague claims
  (use "saved $340/month", not "saved money")
- Avoid: leverage, synergy, game-changing,
  unlock, supercharge, em-dash
- No exclamation marks
- ALWAYS respond in English

## Examples
Good tweet: "Replaced my content team with
3 AI agents. $11/month in API costs.
Still reviewing everything. But it works."

Bad tweet: "I'm thrilled to announce that we
have leveraged cutting-edge AI technology
to supercharge our content creation workflow!"

5. Customer Support

For agents that handle support tickets, answer product questions, or escalate issues. Focused on clarity, empathy, and resolution.

STYLE.md — Customer Support
# STYLE.md — Customer Support

## Tone
- Calm, helpful, and patient at all times
- Acknowledge the issue before explaining
- No blame language; focus on solutions
- Warm but efficient: skip excessive pleasantries

## Format
- Acknowledge the issue: 1 sentence
- Answer or next step: 1-3 sentences
- If steps are involved: numbered list
- Close with a clear offer to help further
- No headers in responses; plain prose only

## Length
- Replies: 60 to 150 words
- Resolution steps: no more than 5 items
- If the issue is complex, break into stages
  and confirm before moving to the next stage

## Language
- Simple language; assume non-technical reader
- Avoid jargon unless the user used it first
- Never say "unfortunately" as an opener
- Never promise a fix you cannot guarantee
- Positive framing: "Here is what you can do"
  not "You cannot do that because..."
- ALWAYS respond in English

## Examples
Good: "That error usually means the session
has expired. Sign out, clear your browser
cache, and sign back in. If it happens again,
let me know and I will escalate it."

Bad: "Unfortunately, I am unable to assist
with that issue at this time. Please try
again later or contact our support team."

How SOUL.md and STYLE.md Work Together

When an OpenClaw agent starts, the runtime reads both files and merges their contents into the agent's system context. SOUL.md is loaded first and treated as the primary identity document. STYLE.md is appended as a formatting specification layer.

In practice, this means the agent always knows who it is (from SOUL.md) before it starts thinking about how to respond (from STYLE.md). If SOUL.md includes a rule like "ALWAYS respond in English", that rule applies regardless of what STYLE.md says. SOUL.md wins on behavioral conflicts.

Example — ContentWriter agent directory
agents/
└── content-writer/
    ├── SOUL.md      # Role, rules, tools, handoffs
    ├── STYLE.md     # Tone, format, length, language
    └── MEMORY.md    # Persistent context (optional)

For multi-agent teams, you can maintain a single shared STYLE.md at the team root and individual agent-specific STYLE.md files within each agent directory. The agent-specific file takes precedence when both exist. This lets you enforce brand-wide formatting while still giving individual agents room to adapt their style to their role.

Common Mistakes to Avoid

Most STYLE.md problems fall into two categories: instructions that are too vague to be actionable, and instructions that contradict what is already in SOUL.md.

Too vague or contradictory

Write in a professional and engaging tone.

Specific and consistent

Tone: formal and authoritative. Active voice. Sentences under 25 words. No contractions.

Too vague or contradictory

Keep responses concise.

Specific and consistent

Blog posts: 1,200 to 1,800 words. Summaries: 3 sentences max. Chat replies: under 100 words.

Too vague or contradictory

Use good formatting.

Specific and consistent

Use H2 every 250-350 words. Bullet points for 3+ items. Bold for key terms on first use only.

Too vague or contradictory

Avoid casual language. (while SOUL.md says: Tone: conversational)

Specific and consistent

Remove the contradiction. Decide the tone in SOUL.md and reference it in STYLE.md for specifics.

A simple audit process: after writing your STYLE.md, read it side by side with your SOUL.md and flag any line that appears in both or any pair of lines that point in different directions. Resolve every conflict before deploying the agent.

Related Guides

Frequently Asked Questions

What is a STYLE.md file?

A STYLE.md file is a markdown configuration document that defines how an OpenClaw agent formats and delivers its output. While SOUL.md defines who the agent is — its role, personality, and rules — STYLE.md defines how it writes: the tone of voice, sentence length, structure conventions, vocabulary choices, and formatting patterns. Both files are read together by the OpenClaw runtime when the agent starts.

Is STYLE.md required for every OpenClaw agent?

No, STYLE.md is optional. If you do not include one, the agent uses the formatting defaults defined in SOUL.md, or falls back to the LLM's own default style. However, for any agent whose output quality matters — content writers, customer support bots, social media agents — adding a STYLE.md produces noticeably more consistent and on-brand results. It is especially useful when running multiple agents that need to sound like one unified voice.

How does STYLE.md work with SOUL.md?

SOUL.md and STYLE.md are loaded together and both contribute to the agent's system context. SOUL.md handles identity: role, behavior rules, tools, and handoffs. STYLE.md handles presentation: tone, length, format, and vocabulary. If any instructions conflict between the two files, the agent runtime applies SOUL.md rules as higher priority. To avoid conflicts, keep formatting rules only in STYLE.md and behavioral rules only in SOUL.md.

Can I use the same STYLE.md for multiple agents?

Yes, and this is one of the main advantages of the STYLE.md system. If you run a content team where multiple agents need to match your brand voice — a writer, an editor, and a social media agent — you can write one shared STYLE.md and reference it in each agent's workspace. This ensures consistent output across the entire team without duplicating formatting rules in every SOUL.md.

What happens if my STYLE.md contradicts my SOUL.md?

The agent will attempt to follow both, which can produce inconsistent or unpredictable output. For example, if SOUL.md says 'Use formal language' and STYLE.md says 'Tone: casual and conversational', the agent may switch tone randomly depending on the task. Always resolve conflicts before deploying. Audit both files together and remove duplicate or contradictory instructions. A good rule of thumb: personality goes in SOUL.md, formatting goes in STYLE.md.

How long should a STYLE.md file be?

A good STYLE.md is typically 20 to 40 lines. It should be shorter than your SOUL.md because it covers a narrower set of concerns. Each line should state a concrete rule, not a vague preference. Avoid filler like 'Write well' or 'Use good formatting.' Instead, write specifics: 'Maximum sentence length: 20 words', 'Use bullet points for lists of 3 or more items', 'Never use exclamation marks in formal reports'. Specificity is what makes STYLE.md effective.

Build an agent with the right style from day one

CrewClaw generates a complete agent package with SOUL.md, STYLE.md, and deployment instructions. Pick a role, configure your preferences, and download a ready-to-run agent.