Getting Started
This guide will help you set up MindRoom and create your first AI agent.
Recommended: Hosted Matrix + Local MindRoom (uv only)
If you do not want to self-host Matrix yet, this is the simplest setup. You only run MindRoom locally.
Prerequisite: Install uv.
1. Initialize local config
This creates:
~/.mindroom/config.yaml~/.mindroom/.envprefilled withMATRIX_HOMESERVER=https://mindroom.chat
The default --matrix-server mindroom.chat preset uses hosted Matrix and defaults to the openai provider.
Use --provider to select a different provider preset:
# Use Anthropic Claude
uvx mindroom config init --provider anthropic
# Use Codex CLI ChatGPT subscription auth
uvx mindroom config init --provider codex
# Use local Ollama
uvx mindroom config init --provider ollama
# Use local llama.cpp through its OpenAI-compatible server
uvx mindroom config init --provider llama.cpp
# Use Vertex AI Claude (Google Cloud)
uvx mindroom config init --provider vertexai_claude
Use --matrix-server mindroom.chat for hosted Matrix and --matrix-server self-hosted when you run your own homeserver.
Use --provider for the model provider.
Run codex login before starting MindRoom when using --provider codex.
--provider ollama uses local Ollama with gemma4 by default and also configures qwen3.6:27b.
Run ollama pull gemma4 and ollama pull qwen3.6:27b before starting MindRoom.
--provider llama.cpp uses a local OpenAI-compatible llama.cpp server on http://localhost:8080/v1.
Start llama-server with one of the configured Unsloth GGUF refs before starting MindRoom.
These local provider configs run entirely locally and do not require real cloud API keys such as OPENAI_API_KEY or ANTHROPIC_API_KEY unless you switch the config to a remote provider.
Use --provider vertexai_claude for Vertex AI Claude on hosted Matrix.
2. Add remote-provider credentials when needed
For hosted providers, set the credentials for the provider you selected:
ANTHROPIC_API_KEY=..., orOPENAI_API_KEY=..., orOPENROUTER_API_KEY=..., or- For Codex CLI subscription auth: run
codex login. - For Vertex AI Claude: set
ANTHROPIC_VERTEX_PROJECT_IDandCLOUD_ML_REGIONand authenticate withgcloud auth application-default login. Skip this step for--provider ollamaor--provider llama.cppunless you also add a remote provider.
3. Pair your local install from chat UI
- Open
https://chat.mindroom.chatand sign in. - Go to
Settings -> Local MindRoom. - Click
Generate Pair Code. - Run locally:
Notes:
- Pair code is short-lived (10 minutes). Generate a new one if it expires.
mindroom connectwrites local provisioning values (includingMINDROOM_NAMESPACE) into~/.mindroom/.envby default.- Use
--no-persist-envto export variables only for the current shell session instead of writing to.env.
4. Run MindRoom
5. Verify
In chat: Send a message mentioning your agent in a room where it is configured.
Dashboard: Access the web dashboard at http://localhost:8765 to configure agents, models, and tools.
Protect the dashboard API in non-localhost environments by setting MINDROOM_API_KEY in your .env.
Preflight check: Run mindroom doctor before mindroom run to verify config, API keys, Matrix connectivity, and storage in one pass.
For a detailed architecture and credential model, see: Hosted Matrix deployment guide.
Alternative: Full Stack Docker Compose (bundled dashboard + Matrix + MindRoom client)
Use this when you want everything local: the bundled MindRoom dashboard, Matrix homeserver, and a Matrix client in one stack.
Prereqs: Docker + Docker Compose.
1. Clone the full stack repo
2. Add your API keys
3. Start everything
Open:
- MindRoom UI: http://localhost:8765
- MindRoom client: http://localhost:8080
- Matrix homeserver: http://localhost:8008
The stack uses published mindroom, mindroom-cinny, and mindroom-tuwunel images by default.
If you access the stack from another device, set CLIENT_HOMESERVER_URL=http://<host-ip>:8008 in .env before starting it.
Manual Install (advanced)
Use this if you already have a Matrix homeserver and want to run MindRoom directly.
Prerequisites
- Python 3.12 or higher
- A Matrix homeserver (or use a public one like matrix.org)
- API keys for your preferred AI provider (Anthropic, OpenAI, etc.)
Installation
Configuration
1. Create your config file
Create a config.yaml in your working directory:
agents:
assistant:
display_name: Assistant
role: A helpful AI assistant that can answer questions
model: default
include_default_tools: true
rooms: [lobby]
# Optional: file-based context (OpenClaw-style)
# context_files: [SOUL.md, USER.md]
models:
default:
provider: openai
id: gpt-5.4
defaults:
tools: [scheduler]
markdown: true
timezone: America/Los_Angeles
2. Set up environment variables
Create a .env file with your credentials:
# Matrix homeserver (must allow open registration for agent accounts)
MATRIX_HOMESERVER=https://matrix.example.com
# Optional: For self-signed certificates (development)
# MATRIX_SSL_VERIFY=false
# Optional: For federation setups where server_name differs from homeserver hostname
# MATRIX_SERVER_NAME=example.com
# AI provider API keys
OPENAI_API_KEY=your_openai_key
# OPENROUTER_API_KEY=your_openrouter_key
# ANTHROPIC_API_KEY=your_anthropic_key
# Optional: protect the dashboard API (recommended for non-localhost)
# MINDROOM_API_KEY=your-secret-key
Optional: Bootstrap local Synapse + Cinny with Docker (Linux/macOS)
If you want a local Matrix + client setup without running the full mindroom-stack app, use the helper command:
If you're running from source in this repo, use:
This starts Synapse from the mindroom-stack compose files, starts a MindRoom Cinny container, waits for both services to be healthy, and by default writes local Matrix settings to .env next to your active config.yaml.
Note
MindRoom automatically creates Matrix user accounts for each agent. Your Matrix homeserver must allow open registration, or you need to configure it to allow registration from localhost. If registration fails, check your homeserver's registration settings.
3. Run MindRoom
MindRoom will:
- Connect to your Matrix homeserver
- Create Matrix users for each agent
- Create any rooms that don't exist and join them
- Start listening for messages
Next Steps
- Learn about agent configuration
- Learn about OpenClaw workspace import if you want file-based memory/context patterns
- Explore available tools
- Set up teams for multi-agent collaboration