Skip to main content
Most configuration happens in onboarding and by just asking BOR (“switch to Gemini”, “rename yourself”, “change the theme”). This page covers the knobs behind that.

Models and reasoning effort

Every provider you connect has its own settings panel (in onboarding, and later via the model picker’s per-provider Settings):
  • Model — pick from the provider’s current list (or type any model id for OpenAI-compatible endpoints).
  • Reasoning effortOff, Low, Medium, High (recommended), Max. Higher effort means the model thinks longer before acting; you see that thinking stream as reasoning cards in the bubble. Saved per provider.

The model chip

The chip in the presence’s input bar shows the active model. Click it to switch: the picker lists every provider you’ve connected, its models, and connection status. Switching is instant and applies to the next message. See The presence.

config.json

Each presence keeps a config.json at its data root (os-data/presences/<id>/config.json). Onboarding and BOR itself write it; you rarely touch it by hand. It holds:
  • defaultProvider and providers — the active provider plus each provider’s { apiKey, model, baseUrl, reasoning }.
  • aiName, personality, baseTheme, avatar settings.
  • connectors — your linked services and their tokens.
Secrets. API keys and connector tokens live in this local file (a macOS Keychain migration is planned). They never leave your machine, but treat os-data/ as sensitive.

Environment variables

Set before launching (PORT=8080 bor) if you need them: The full list is in the Configuration reference.

Files that extend BOR

  • Skills — Markdown playbooks in .bed-of-roses/skills/ (project) and ~/.bed-of-roses/skills/ (global). See Memory & skills.
  • MCP servers — installed by the marketplace into the presence’s .bor/mcp.json; hand-written entries go in .bed-of-roses/mcp/servers.json. Changes hot-reload. See Configuring servers.

Next