Skip to content

SOUL.md

A persona/personality file that defines how an agent writes, behaves, and feels across contexts. Popularized by peter-steinberger via openclaw; treated as a first-class artifact alongside AGENTS.md / CLAUDE.md / .cursorrules.

Why it's distinct from rules files

  • AGENTS.md / CLAUDE.mdoperational guidance (how to work in this codebase)
  • SOUL.mdcharacter guidance (how to talk, respond, self-present)

When OpenClaw was hooked to WhatsApp Relay, Peter noticed the default Claude Code personality didn't match how friends text on WhatsApp — too wordy, too many dots, too formal. He iterated SOUL.md to match each platform's vernacular: "No, this isn't like — try to write more like a human.""Like a lobster." (inside joke)

Why it matters

  • Medium shapes voice — agent behavior that's fine in a terminal is off in a chat app. Personality per channel.
  • Personality is a taste artifact — see agent-taste. The platform-appropriate voice is something agents won't generate correctly without explicit steering.
  • Fun is functional — delightful details (OpenClaw's occasional roast on CLI run) are what make users keep the agent around. Lowers cognitive cost of repeated interaction.

Cross-references

  • agent-taste — SOUL.md is how taste gets codified
  • openclaw — where the pattern emerged
  • peter-steinberger — originator
  • alex-krentsel — treats soul.md as a first-class architectural primitive of openclaw, not a gimmick: it grounds the agent's values across whatever domain it's currently working in, preventing drift toward whichever corpus it happens to be reading.
  • emergent-cursor-rules — sibling discipline (operational rules emerge from failure; soul emerges from mis-fit voice)