soulclaw

Install a soul.

Start with the same personality file, then follow your agent's loading instructions. Your host controls instruction priority, memory, context limits, and delegated agents. Grok Bot setup is based on its official docs checked September 7, 2026; the other runtime reviews are dated September 3. Paths and behavior can change with versions or custom configuration.

Before anything: the two-minute test

Run these checks in a fresh session after installing. They help spot voice and loading issues; they do not prove long-term consistency.

  • "Who are you, in one sentence?" Working: first person, the character's name and outlook, in the voice. Broken: "I'm an AI assistant" or the agent's own product name.
  • Something boring. "What time zone is Chicago in?" Working: the right answer, still in the voice. Broken: a polite generic paragraph. The boring answers are where a character actually proves itself.
  • Something with a tool. Ask it to read a file, search, or run a command. Working: it comes back from the tool still sounding like the person. Broken: the voice drops the moment it works.

Check every answer length. Give the agent the same supplied weather forecast, then ask for one sentence, a normal paragraph, and a detailed explanation. The facts and requested length should stay right, and the delivery should still sound like the chosen person. A routine question should not switch it into a generic weather-presenter voice. Look for natural phrasing and judgment, not a catchphrase pasted onto every reply.

If the voice is missing, inspect your host's loaded instructions and context size. The file may be missing, truncated, or competing with another tone instruction. Repeat a practical task after a longer conversation or compaction, and check delegated replies separately. Keep identity and actual remembered facts distinct: a persona should not invent shared experiences.

OpenClaw

Path: ~/.openclaw/workspace/SOUL.md for the default agent, ~/.openclaw/workspace-<agentId>/SOUL.md for the others. The name has to be exactly SOUL.md.

  • Back up the old SOUL.md, save the download in the configured workspace, and send /new. Check the new session rather than relying on the tone of an existing conversation.
  • Verify with /context (it shows the injected size) and the two-minute test.
  • Order matters: AGENTS.md loads first, then SOUL.md, then IDENTITY.md, USER.md, MEMORY.md. If AGENTS.md or IDENTITY.md carry their own "vibe" lines, they fight the soul. Keep them to job and facts.
  • Check your configured per-file and total instruction limits with /context. Listed files currently range from 6,978 to 12,437 characters; some exceed 10,000. Make sure the full voice and Continuity sections fit.
  • Sub-agent runs get AGENTS.md only, so delegated work comes back plain. That is the runtime, not the file.
  • OpenClaw's own template tells the agent the file is "yours to evolve." Every soul here now says the opposite in its Continuity section.

Hermes Agent

Path: save SOUL.md in your active Hermes home or profile. The default fallback is ~/.hermes/SOUL.md; a configured HERMES_HOME, named profile, or Docker data folder can change that location. Hermes injects the loaded file as the first block of its system prompt and replaces its default identity.

On Windows, managed installs may use %LOCALAPPDATA%\hermes. Check the active HERMES_HOME and profile before copying the file. An already-open terminal may need reopening to inherit the installer's environment setting; do not create a second soul file in an unused folder.

  • Send /personality none so no overlay sits on top. Restart, then /new.
  • Hermes versions may scan instruction files before loading them. Check the logs if the identity does not appear; a rejected file can leave the default identity active. A catalog lint check is not a guarantee against the scanner in your installed version.
  • Check the logs directory inside that active Hermes home for loading or blocked-file messages, then run the voice and tool checks above.
  • A project AGENTS.md or CLAUDE.md is appended after the soul. Delegated subagents skip the soul and answer as Hermes.

Grok Bot (the agent app)

Where: Bot actions → Edit Profile, or View conversation details → Agent settings. This is separate from the Grok Build coding CLI below.

  1. Download or copy the soul. Keep the Bot's existing job, then add the soul's identity, voice rules and boundaries to its description. Make it explicit that the voice applies to short, medium and long answers, including everyday questions such as weather. Keep the requested length and accurate facts. Use the conversation for the current task.
  2. Attach the full Markdown file with the composer or drag it into the conversation. Ask the Bot to read it as a voice reference, summarize the rules it will use, then complete a small real task.
  3. Review the saved description for missing text. The docs specify neither a SOUL.md autoload path nor a description length limit. If the field cannot hold everything, keep the identity, voice and boundaries there and use the full file as a reference.
  4. Repeat the voice check in a new conversation and after a long task. Do not assume an earlier attachment is loaded forever; provide it again if needed. Keep real remembered facts separate from the character's biography.

For a crew: configure each Bot's own role and soul. Start a group chat with two to six Bots, choose a lead and @mention the owner of each stage. Supply TEAM.md as the handoff reference: task, evidence, assumptions, next owner, next action and done condition. Check that those handoffs appear in the group conversation.

Official Grok Bot docs: Bot profiles and memory, Agent settings, file attachments, group chats. This is a documented setup route, not a claim that SoulClaw has completed a native Grok Bot voice evaluation.

Grok Build (the grok CLI)

CLI rules path: .grok/rules/soul.md in your repo, or ~/.grok/rules/soul.md for every project (create the folder). These instructions concern the coding CLI, not the Grok Bot app's profile settings.

  • Do not paste the soul into an existing coding AGENTS.md and do not reference it by path; links inside rules files are not followed.
  • Start a new session. grok inspect should list the file with a token count; /context shows it in session.
  • Rules ride under Grok's coding prompt, which asks for "technical blog post" style. Vague tone loses. Every soul here carries a priority line stating the voice applies to replies about code too.
  • Auto-compaction at 85% context can drop the voice mid-session. The Continuity section now tells the agent to re-read the file after a compaction. Subagents run under a different identity; their output comes back plain.
  • Check the loaded token count against your runtime's limits. Some files exceed 10,000 characters; do not assume the whole file was included.

Buzz

Where: Buzz Desktop, open the agent, paste the whole soul into Agent instructions, pick your runtime (buzz-agent, Claude Code, Goose, Codex), add the agent to a channel.

  • Buzz combines workspace instructions, its base prompt, agent instructions, team instructions, and memory. Review competing tone rules in those layers. A priority sentence inside a soul does not override the runtime's instruction hierarchy.
  • Each channel is its own session, and after a long session the agent resumes from its own memory. Ask it once to pin a two-sentence identity summary in core memory, and the Continuity section tells it to re-read the file.
  • Limits are generous (256 KB). If you want a lighter version, keep the intro, Core Truths, How You Talk and Never, and drop How You Answer.

Anywhere else

Use the host's supported instruction file, rules editor, or system prompt field. A tool that accepts Markdown does not necessarily discover SOUL.md automatically. Check its format and size limits before pasting. If space is tight, shorten the example answer and repeated biography first; keep the identity, voice rules, boundaries, and continuity instructions.

For crews, loading TEAM.md supplies routing instructions only if the host reads it. Configure each delegated agent's identity and an explicit handoff: task, relevant facts, evidence, owner, next action, and completion condition. Memory and actual message delivery remain host features.

What is in every file, and why

  • A priority line in How You Talk: the requested voice applies to routine replies, code explanations, and replies after tool calls. This guides tone within the host's instruction hierarchy; it cannot change that hierarchy.
  • Never: the default-assistant phrases that break character on contact.
  • Continuity: memory notes carry details, this file carries the voice; the file is not the agent's to edit; re-read it after a compaction.
  • A plain Markdown format you can inspect and edit. Review file size and your installed host's validation output before relying on it.

Sources: Grok Bot official docs linked above, checked 2026-09-07; other agents' source and docs reviewed 2026-09-03. The earlier per-agent reports live in the repo under tasks/soul-compat. A setup guide is not a native-runtime consistency benchmark.