Configuration
MindRoom is configured through a config.yaml file. This section covers all configuration options.
Configuration File
The configuration file is loaded from the current directory by default. You can specify a different path:
Basic Structure
# Agent definitions (at least one recommended)
agents:
assistant:
display_name: Assistant # Required: Human-readable name
role: A helpful AI assistant # Optional: Description of purpose
model: sonnet # Optional: Model name (default: "default")
tools: [file, shell] # Optional: List of tool names
skills: [] # Optional: List of skill names
instructions: [] # Optional: Custom instructions
rooms: [lobby] # Optional: Rooms to auto-join
num_history_runs: 5 # Optional: Override default (inherits from defaults section)
markdown: true # Optional: Override default (inherits from defaults section)
add_history_to_messages: true # Optional: Override default (inherits from defaults section)
# Model configurations (at least a "default" model is recommended)
models:
sonnet:
provider: anthropic # Required: openai, anthropic, ollama, google, gemini, groq, cerebras, openrouter, deepseek
id: claude-sonnet-4-latest # Required: Model ID for the provider
host: null # Optional: Host URL (e.g., for Ollama)
api_key: null # Optional: API key (usually from env vars)
extra_kwargs: null # Optional: Provider-specific parameters
# Team configurations (optional)
teams:
research_team:
display_name: Research Team # Required: Human-readable name
role: Collaborative research # Required: Description of team purpose
agents: [researcher, writer] # Required: List of agent names
mode: collaborate # Optional: "coordinate" or "collaborate" (default: coordinate)
model: sonnet # Optional: Model for team coordination (default: "default")
rooms: [] # Optional: Rooms to auto-join
# Router configuration (optional)
router:
model: haiku # Optional: Model for routing (default: "default")
# Default settings for all agents (optional)
defaults:
num_history_runs: 5 # Default: 5
markdown: true # Default: true
add_history_to_messages: true # Default: true
show_stop_button: false # Default: false
# Memory system configuration (optional)
memory:
embedder:
provider: openai # Default: openai
config:
model: text-embedding-3-small # Default embedding model
api_key: null # Optional: From env var
host: null # Optional: For self-hosted
llm: # Optional: LLM for memory operations
provider: ollama
config: {}
# Voice message handling (optional)
voice:
enabled: false # Default: false
stt:
provider: openai # Default: openai
model: whisper-1 # Default: whisper-1
api_key: null
host: null
intelligence:
model: default # Model for command recognition
confidence_threshold: 0.7 # Default: 0.7
# Authorization (optional)
authorization:
global_users: [] # Users with access to all rooms
room_permissions: {} # Room-specific user permissions
default_room_access: false # Default: false
# Room-specific model overrides (optional)
room_models: {}
# Plugin paths (optional)
plugins: []
# Timezone for scheduled tasks (optional)
timezone: America/Los_Angeles # Default: UTC
Sections
- Agents - Configure individual AI agents
- Models - Configure AI model providers
- Teams - Configure multi-agent collaboration
- Router - Configure message routing
- Skills - Skill format, gating, and allowlists
- Plugins - Plugin manifest and tool/skill loading
Notes
- All top-level sections are optional with sensible defaults, but you need at least one agent
- A model named
defaultis required unless all agents/teams specify explicit models - When
authorization.default_room_accessisfalse, only users inglobal_usersor room-specificroom_permissionscan interact with agents - The
memorysystem works out of the box with OpenAI; usememory.llmfor memory summarization with a different provider