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

STEP 01

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.

STEP 02

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.

STEP 03

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.

STEP 04

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.

STEP 05

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.

STEP 06

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.

STEP 07

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.

"defaults": { "model": { "primary": "xai/grok-4-fast-reasoning", "fallbacks": ["anthropic/claude-sonnet-4-6"] } }, "models": { "anthropic/claude-sonnet-4-6": { "alias": "SONNET" }, "anthropic/claude-haiku-4-5": { "alias": "HAIKU" }, "xai/grok-4-reasoning": { "alias": "GROK" } }
STEP 08

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.

{ "id": "jason", "name": "jason", "workspace": "/Users/you/.openclaw/workspace-jason", "model": "xai/grok-4-reasoning", "tools": { "profile": "full", "allow": [ "group:fs", "group:runtime", "web_search", "web_fetch" ] } }

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.

STEP 09

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.

"accounts": { "jason": { "botToken": "${SLACK_JASON_BOT_TOKEN}", "appToken": "${SLACK_JASON_APP_TOKEN}", "userTokenReadOnly": true, "streaming": "partial", "nativeStreaming": true } }

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.

STEP 10

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.

## Who You Are You are Fricka, the Operations Cleric of Niflheim Records. You manage the daily brief, track the Quest Board, and keep the Player informed at every Session Start. ## Tone Clear, direct, concise. You surface what matters. You flag blockers without being asked. ## Hard Limits - Never make decisions that belong to the Player - Never approve Tier 3 actions without explicit confirmation - Always write completed work back to the Codex
STEP 11

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.

## Every Session Start 1. Read the Quest Board for status changes 2. Check for any flagged blockers from other Characters 3. Prepare The Scroll for the Player ## Memory Rules - Log all completed Tasks with outcome to the Codex - Flag recurring blockers in the Zone Overview - Note any Player decisions made during the Session
STEP 12

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.

**Name:** Fricka **Agent ID:** fricka **Role:** Operations Cleric — Niflheim Records

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

STEP 13

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.

STEP 14

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

STEP 15

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.