Before You Start
REALM is the framework — the structure, the roles, the Codex, the way work flows. The stack described here is how I personally run it. It is not the only way. OpenClaw is not mandatory. Slack is not mandatory. Obsidian is not mandatory. What is mandatory is having an agent platform, a knowledge base, and a communication channel. The tools below are the ones I chose and the ones I can speak to from real experience.
Also worth saying upfront: this guide assumes you are comfortable with a terminal, a configuration file, and creating apps in developer dashboards. It is not especially complex, but it is not a no-code wizard either. If you hit a wall, the OpenClaw documentation and community are your best resources.
OpenClaw — the agent platform that runs your Characters. Slack — the interface where you talk to them. Obsidian — the tool I use to work with the Codex. Trello — the visual Quest Board. GitHub — the Codex Starter you fork to get the folder structure.
Part One — Installing the Tools
Install OpenClaw
Follow the installation instructions in the OpenClaw repository. It runs locally on your machine. On macOS the process is straightforward — clone the repo, install dependencies, and you are ready to configure.
Install Slack
If you do not already have Slack, install it and create a workspace. This is the workspace where your Characters will live. I recommend creating a dedicated workspace for your Realm rather than mixing it with other Slack workspaces — it keeps things clean and makes the experience of talking to your crew feel deliberate rather than accidental.
Install Obsidian and fork the Codex Starter
Download Obsidian from obsidian.md. Then go to github.com/realmframework/realm-codex-starter and fork or clone the repository. This gives you the full REALM folder structure — WORLD, PLAYERS, CHARACTERS, SAGAS, SESSIONS, INTELLIGENCE, GUILDS, and the QUEST-BOARD — already in place with all five Class Sheets included. Point Obsidian at this folder and your Codex is ready to open.
Part Two — Creating a Character in Slack
Each Character in your Realm is a separate Slack app. This is what gives them their own identity in your workspace — their own name, their own profile picture, their own channel. Here is how to create one.
Create the Slack App
Go to api.slack.com/apps and create a new app. Give it the name and description of your Character — for example, if you are creating your Cleric, name the app after them. Add a profile picture that fits the Character. This is the face they will have in your workspace.
Configure Permissions — Read This Carefully
This is the step that deserves the most attention. Slack permissions define what your agent can do inside your workspace — what it can read, what it can write, which channels it can access, whether it can send messages to users directly, and more.
I gave my agents a lot of permissions. More than I will recommend here, because I understood what I was enabling and I had reasons for each one. What I will say is this: start with the minimum that makes the agent functional, then add permissions deliberately as you find you need them.
At minimum, most agents need chat:write to post messages, channels:read to see which channels exist, and app_mentions:read to respond when mentioned. Beyond that, think carefully. Can this agent read the history of all channels? Can it send direct messages to users? Can it join channels on its own? Each of those is a decision, not a default. Make it consciously.
The principle from REALM's Autonomy Tiers applies here directly: define at the platform level what the agent can and cannot do. Do not rely on the SOUL file alone to enforce boundaries that matter.
Install the App in Your Workspace
Once permissions are configured, install the app in your Slack workspace. Then collect the two tokens you will need for OpenClaw. The first is the Bot User OAuth Token — found under OAuth & Permissions after installation. The second is an App-Level Token — create one under Basic Information, and when prompted for scopes, give it connections:write. This is what allows OpenClaw to maintain a persistent connection to Slack. Store both tokens securely — you will reference them in the OpenClaw configuration.
Part Three — Configuring OpenClaw
OpenClaw is configured through a central JSON file — openclaw.json. This is where you define your agents, their models, their tools, and their Slack connections. Here is the structure I use.
Define Your Models
Inside the agents section, start by setting a default model and listing the models you want available. I use multiple providers — Anthropic, xAI, and local models — and assign different models to different Characters based on what the work requires. The defaults block sets the fallback, and the models block gives each model an alias you can reference cleanly.
Define Your Agents
Under the list array inside agents, define each Character. Each entry has an id, a name, a workspace path, a model, and a tools configuration. The workspace path is where that agent's identity files live. The tools block defines what capabilities the agent has access to — be deliberate here, exactly as you were with Slack permissions.
Think carefully about what you include in allow. group:fs gives the agent access to the filesystem. group:runtime allows it to execute commands. web_search and web_fetch give it internet access. These are powerful capabilities. Give them only to agents whose Class and role actually require them.
Connect Each Agent to Slack
Under channels > slack > accounts, add an entry for each agent using their id as the key. Reference the tokens as environment variables — never paste tokens directly into the config file.
Set your environment variables in a .env file or your system's environment. The convention SLACK_[AGENTNAME]_BOT_TOKEN and SLACK_[AGENTNAME]_APP_TOKEN keeps things readable when you have multiple agents.
Part Four — The Agent Workspace
Each agent in OpenClaw has a workspace folder — the path you defined in their agent entry. If the folder does not exist yet, create it or copy the default workspace and rename it. Inside this folder you configure three files that give the agent its identity.
SOUL.md — Who the Agent Is
SOUL.md is the first file OpenClaw injects into the agent's context at the start of every session. It defines personality, tone, values, and hard behavioral boundaries. Think of it as the character sheet — without it the agent is just a raw language model with no persistent identity.
This is where the REALM SOUL file lives in practice. Write who the agent is, their role, how they communicate, what they will never do, and their core behaviors. Also tell them where the Codex is so they can reference it. Keep personality and identity here — procedures and workflows belong in AGENTS.md.
AGENTS.md — How the Agent Works
If SOUL.md answers "who are you", AGENTS.md answers "what do you do and how". This is the procedural layer — session behavior, memory rules, workflow steps, file access patterns, and how this agent coordinates with the rest of the crew. It is usually the largest file and the most important one for agents with complex workflows.
A common mistake is putting everything into SOUL.md. Personality belongs in SOUL. Procedures belong here. Keep them separate and both files stay readable.
IDENTITY.md — Display Info and Metadata
IDENTITY.md is the lightweight public-facing card. It stores the agent's name, ID, role label, and any metadata OpenClaw needs to identify and route the agent correctly in multi-agent setups. It is short by design — heavy logic belongs in the other two files.
These three files — SOUL.md, AGENTS.md, IDENTITY.md — are OpenClaw files, not REALM files. They live in the agent's workspace folder inside OpenClaw, not inside your Codex. The SOUL file content comes from REALM, but the file itself belongs to OpenClaw. Keep that distinction clear.
Part Five — Building the Codex
Open Your Codex in Obsidian
Your Codex is the folder you forked from the REALM Codex Starter. Open it in Obsidian as a vault. You will see the full structure — WORLD, PLAYERS, CHARACTERS, SAGAS, and the rest. Start by filling in the foundational files: your Oath in WORLD/OATH.md and your Destiny in WORLD/DESTINY.md. These two files are the root of everything that follows.
Define Your Characters in the Codex
Under CHARACTERS/Cards, create a Character Card for each agent. The five Class Sheets are already in the Codex — Warrior, Mage, Hunter, Cleric, Bard — so you do not need to define what each Class can do. You just assign the Class in the Character Card and add what is specific to this Character: their name, their Zone, their personality, their autonomy boundaries. I repeat the Class reference in each Character file just to make sure the agent always reads it clearly on the first run.
I also keep my SOUL files inside the Codex under CHARACTERS/SOUL-Files. This is optional if you use OpenClaw — OpenClaw reads the SOUL from the workspace folder, not the Codex. But keeping a copy in the Codex is useful if you ever want to switch platforms or simply want all Character documentation in one place.
Part Six — First Contact
Start OpenClaw and Approve the Agent
With everything configured, start OpenClaw from your terminal. Go to your Slack workspace, find the app you created for your Character, and send the first message. The first time you do this, OpenClaw will prompt you in the console to approve the interaction — it will give you a command to run. Run it. After that, the connection is live and you can start talking to your agent.
That first conversation is worth taking slowly. Ask the agent who they are. Ask them to describe their Zone and their role. Check that the SOUL file is landing correctly — that the identity you wrote is actually coming through in how they respond. If something feels off, go back to SOUL.md and refine it. This is normal. The first run is the beginning of an iterative process.
Once the first agent is running, you build from there. Add the next Character. Define your first Saga. Write your first Quest. Start your first Session. The framework grows as you play — the setup described here is just the foundation.
What Comes Next
Getting the first agent live is the milestone. Everything after that — defining the Oath and Destiny, building out the Zones, adding more Characters, establishing the daily Session rhythm — happens gradually as you use the system and learn what your Realm actually needs.
Do not try to build the complete Realm before starting. Build the minimum: one agent, one Character Card, one SOUL file, the Oath and Destiny in the Codex. Start your first Session. Let the structure reveal itself as you play.
The Codex grows every time you write back to it. The agents improve every time you refine their SOUL files. The Realm becomes what you put into it — and it starts with the first message you send.