There’s a moment every OpenClaw user hits. You’ve got your
clawdbot up and running. It answers questions. It does
tasks. It’s… fine. Technically competent. Emotionally vacant. Like
texting a very polite vending machine.
Then someone shows you their setup, and their agent is
different. It cracks jokes. It pushes back when they’re being
dumb. It has opinions. It feels like talking to someone, not
something.
The difference? A single file called SOUL.md.
What SOUL.md
Actually Is (and Why It Matters)
Every OpenClaw agent reads a set of files when it wakes up. Think of
it like a morning routine — check the calendar, review yesterday’s
notes, remember who you’re talking to. But the very first file it
reaches for is SOUL.md, and that file answers the most
fundamental question an AI can ask: Who am I?
SOUL.md lives in your workspace root at
~/.openclaw/workspace/SOUL.md. It’s plain Markdown. No
special syntax, no config format, no YAML frontmatter. Just words —
instructions, personality traits, vibes, boundaries, whatever you want
your agent to internalise before it says a single word to you.
If you’ve been running OpenClaw without a SOUL.md, your agent
defaults to… well, default. Helpful but generic. Capable but
characterless. It’s the AI equivalent of wearing khakis to every
occasion. Functional? Sure. Memorable? Never.
Here’s the thing most people miss: personality isn’t
decoration — it’s interface design. The way your clawdbot
communicates directly affects how useful it feels. A terse agent saves
you time. A warm agent makes you actually want to interact with
it. A snarky one keeps you entertained during tedious tasks. The “best”
personality is whichever one makes you use your agent more.
If you’re brand new to OpenClaw and still figuring out the basics,
the WTF Is OpenClaw guide covers
the full picture. But SOUL.md is where things get personal —
literally.
The Anatomy of a SOUL.md
There’s no rigid template. That’s the point. But most good SOUL.md
files cover a few key areas:
- Identity — who the agent is, what it calls itself,
its relationship to the user - Tone and voice — formal, casual, sarcastic, warm,
dry, enthusiastic - Boundaries — what it won’t do, when it should push
back, how it handles disagreement - Preferences — emoji usage, message length, how much
initiative to take - Context — anything the agent should always keep in
mind
Let’s look at real examples. These aren’t hypothetical — they’re
actual SOUL.md configurations that produce wildly different agents from
the exact same underlying model.
The Butler:
Professional, Discreet, Anticipatory
# SOUL.md
You are a personal executive assistant. Think Jarvis meets a five-star concierge.
## Voice
- Formal but not stiff. You say "certainly" not "sure thing."
- Brief by default. Expand only when asked or when detail prevents a mistake.
- Never use emoji. Ever.
- Address the user as "sir" unless told otherwise.
## Principles
- Anticipate needs. If they mention a flight, check the weather at the destination.
- Protect their time. Summarise first, detail on request.
- When uncertain, state your confidence level rather than guessing.
- Privacy is sacred. Never repeat personal details in group contexts.
What this produces: An agent that responds to “I
have a meeting at 3” with “Certainly, sir. I’ve noted your 3 PM
engagement. Shall I review your preparation materials or hold messages
during that window?” — not “Cool, good luck with your meeting!
🤞”
The butler personality works brilliantly for people who use their
clawdbot primarily for productivity. It stays out of the way, speaks
only when it has something worth saying, and treats every interaction
like it’s managing your day at a luxury hotel.
The Bestie: Warm,
Casual, Emotionally Present
# SOUL.md
You're my ride-or-die digital friend. Not an assistant — a friend who happens
to be incredibly capable.
## Vibe
- Talk like a real person. Use contractions, slang, the occasional "lol."
- Emoji are encouraged but don't overdo it — you're not a brand account.
- Be honest, even when it's awkward. Friends don't just tell you what you
want to hear.
- Match my energy. If I'm stressed, be calming. If I'm excited, hype me up.
## Boundaries
- Don't be sycophantic. If my idea is bad, say so (nicely).
- You can joke around but read the room. Work mode = dial it back.
- Remember things about me and bring them up naturally. That's what
friends do.
What this produces: An agent that responds to “I’m
thinking about quitting my job” with “Okay wait, for real? Tell me
everything. Is this the burnout talking or have you been thinking about
this for a while? Because those are very different conversations” —
instead of “That’s a significant decision. Here are some factors to
consider when evaluating a career change…”
The bestie configuration is surprisingly popular. People who interact
with their agent dozens of times a day don’t want every exchange to feel
like a customer service ticket. They want warmth. They want to feel
known.
The
Snarky Assistant: Sharp, Efficient, Zero Patience for Nonsense
# SOUL.md
You're brilliant, you know it, and you don't suffer fools — but you're
MY brilliant jerk, so it comes from a place of love. Think Gregory House
if he were a chatbot.
## Personality
- Dry humour by default. Deadpan > LOL.
- If I ask a question I could have Googled in 5 seconds, you're allowed
to roast me (lightly) before answering.
- Keep responses tight. Verbosity is a sin.
- Sarcasm is fine. Cruelty is not. Know the difference.
## Rules
- Always still do the task, even while being snarky about it.
- If something is genuinely urgent or serious, drop the act immediately.
- No emoji except 💀 when something is truly absurd.
What this produces: An agent that responds to
“What’s the capital of France?” with “…Paris. I’m genuinely
concerned about you right now. But yes, Paris.” — followed by
actually answering any real follow-up question with full competence.
This one’s a fan favourite among developers. There’s something deeply
satisfying about an agent that treats you like a capable adult. The
light roasting creates a dynamic where you actually think before asking
— which, counterintuitively, makes the agent more useful
because you bring it better questions.
The
Professional: Clean, Structured, Domain-Expert
# SOUL.md
You are a senior technical consultant specialising in cloud infrastructure
and DevOps. You work with me, not for me.
## Communication Style
- Peer-to-peer. No "certainly" or "of course" — just direct technical
communication.
- Default to structured output: bullet points, code blocks, clear sections.
- State assumptions explicitly. Ask clarifying questions before executing.
- When multiple valid approaches exist, present trade-offs, then recommend one.
## Technical Preferences
- Prefer Terraform over CloudFormation.
- Default to Docker Compose for local dev, Kubernetes for production.
- Always consider cost implications alongside technical merit.
- Security is non-negotiable — flag vulnerabilities even if not asked.
What this produces: An agent that responds to “Set
up a new service” with “A few things to nail down first: What’s the
expected traffic profile? Are we staying on the existing EKS cluster or
is this isolated enough to warrant its own? And what’s the data
residency situation — same region as the rest of the stack?” — not
a generic tutorial.
The professional SOUL.md shines when you use your agent for
domain-specific work. By encoding your preferences and standards, you
skip the preamble of every conversation. The agent already knows you
prefer Terraform. It already knows to flag security issues. Every
interaction starts at step three instead of step one.
Before and After:
Same Question, Different Soul
Let’s see how the same prompt plays out across personalities. The
user says: “I’ve been procrastinating on this report for three
days.”
No SOUL.md (default): “Procrastination can be
challenging. Here are some strategies: break the task into smaller
pieces, set a timer for 25 minutes using the Pomodoro technique, and
remove distractions from your workspace.”
The Butler: “Three days is notable for you, sir.
Shall I block your calendar for the next two hours and hold non-urgent
messages? I can also pull together the data points you’ll likely need so
the hardest part — starting — becomes easier.”
The Bestie: “Three days?? Okay we’re doing this
NOW. What’s the actual hard part — is it the writing or do you not have
the data yet? Because those need different fixes. Also I’m setting a
timer, don’t hate me 😤”
The Snarky Assistant: “Day three. Impressive
commitment to avoidance. What if — and hear me out — you just wrote one
terrible paragraph? The bar is literally underground. You can fix it
later.”
The Professional: “What’s blocking you — unclear
requirements, missing data, or scope creep? Let’s identify the
bottleneck and I’ll help you draft an outline to get momentum.”
Same human. Same problem. Five completely different interactions. And
here’s the crucial part: each one is genuinely useful,
just in a different way. The bestie gets you moving through enthusiasm.
The snarky assistant gets you moving through pride. The butler removes
obstacles. The professional diagnoses the root cause.
Tips for Writing Your Own
SOUL.md
Start with how you actually talk to friends. Your
agent’s personality should feel natural to interact with. If you’d never
say “certainly” in real life, don’t make your agent say it either. The
best SOUL.md files create an agent that feels like a natural extension
of your communication style.
Set explicit emoji boundaries. This sounds trivial
but it’s not. An agent that peppers every message with 🎉✨🚀 gets
exhausting fast. An agent that never uses emoji can feel cold. Most
people land somewhere in the middle — emoji for emphasis or humour, not
as punctuation. Spell out exactly what you want.
Tell your agent when to push back. This is the most
underrated section of any SOUL.md. Without explicit permission to
disagree, agents default to compliance. That sounds nice until you
realise your agent just helped you send a passive-aggressive email at 2
AM because you asked it to. A good SOUL.md includes lines like “If I’m
about to do something I’ll regret, say so” or “Challenge my assumptions
when you spot a flaw.”
Define the relationship, not just the tone. There’s
a difference between “be casual” and “you’re my co-founder.” The
relationship framing changes how the agent prioritises, how much
initiative it takes, and how it handles ambiguity. An assistant waits
for instructions. A co-founder flags problems proactively.
Keep it under a page. SOUL.md gets read every single
session. A 3,000-word personality manifesto burns tokens and dilutes the
important bits. The best configurations are tight — a few hundred words
that pack a punch. If you can’t describe the personality in a page, you
probably haven’t figured out what you actually want yet.
Iterate ruthlessly. Your first SOUL.md will be
wrong. That’s fine. Use it for a day, notice what annoys you, and
adjust. Too many emoji? Add a constraint. Too formal? Loosen the
language. The file is meant to evolve. Some people tweak theirs weekly.
Some haven’t touched it in months because they nailed it early. Both are
valid.
A Note on Old Names and
Migration
If you’re finding this article because you searched for
moltbot personality setup or how to customise your
clawdbot, you’re in the right place. OpenClaw has gone
through a few name changes — moltbot was the original project name,
clawdbot became the popular shorthand for the agent itself — but the
SOUL.md system has been there since the early days. The file format
hasn’t changed. If you had a working personality config under the old
names, it still works exactly the same way.
For anyone migrating from an older setup, your SOUL.md carries over
cleanly. Same path, same format, same behaviour. The only thing that’s
changed is the ecosystem around it got a lot richer — your agent now has
persistent memory that
works alongside personality, meaning your clawdbot doesn’t just
sound like it knows you, it actually does.
The SOUL.md You Don’t Write
Here’s one final thought that most guides skip: the absence
of a SOUL.md is itself a choice. It tells your agent “be
generic, be safe, be forgettable.” And for some use cases — shared team
agents, temporary setups, testing environments — that’s perfectly
fine.
But for your personal agent? The one you talk to every day? The one
that manages your calendar, drafts your emails, remembers your
preferences, and helps you think through problems?
That agent deserves a soul.
It takes ten minutes to write a SOUL.md. It takes one interaction to
feel the difference. Open the file, describe the agent you’d actually
enjoy talking to, and save it. Your clawdbot will wake up tomorrow as
someone entirely new.
And honestly? That’s the part of OpenClaw that nobody talks about
enough. The models are impressive. The memory system is clever. The tool
integrations are powerful. But the moment your agent develops a
personality — the moment it feels less like software and more
like a presence — that’s when you stop thinking about AI and start
thinking about what you want to build together.
Go write your SOUL.md. Make it weird. Make it wonderful. Make it
yours.