Configuration
Two places, and only two
Section titled “Two places, and only two”| where | what | |
|---|---|---|
| Local | ~/.bee/config.json (0600) |
one Mongo connection string. Nothing else. |
| Shared | your MongoDB store | provider keys, endpoints, rules, memories, souls |
The shipped binary contains zero credentials. Rotation happens in one place, and a new machine needs one string to become fully configured.
bee config path # where the local file isbee config show # local + remote, secrets maskedbee config get <key> # raw value to stdout, pipeablebee config set <key> <value> [--secret]Model provider — for bee ask
Section titled “Model provider — for bee ask”bee config set ask.provider deepseek # deepseek | openai | anthropicbee config set deepseek.apiKey sk-... --secretbee config set deepseek.model deepseek-chatEmbeddings — for remember search --semantic
Section titled “Embeddings — for remember search --semantic”bee config set embedding.provider local # local (default) | geminibee config set embedding.model <model-id>bee config set gemini.apiKey ... --secret # only for the gemini backendOne backend per store — switching changes the vector width and old facts stop matching new ones.
Skill bridge — for bee skill
Section titled “Skill bridge — for bee skill”bee config set skill.endpoint https://skill-bridge.example.com/mcpEnvironment variables
Section titled “Environment variables”| variable | effect |
|---|---|
BEE_HOME |
Replaces your home directory for bee. bee still appends .bee, so BEE_HOME=/x gives /x/.bee/config.json. |
BEE_SESSION |
Names the current session, for handover --session, when the harness is one bee does not know. |
BEE_EMBEDDING_MODEL |
Overrides the local embedding model id. |
bee also reads session ids the harness already exports —
CLAUDE_CODE_SESSION_ID, CODEX_SESSION_ID — so no extra setup is needed for
Claude Code or Codex.
Project identity
Section titled “Project identity”Rules and memories are scoped to a project, resolved from the git remote. The
same checkout on another machine is the same project; two unrelated directories
are not. --global (rules) and --all-projects (search) cross the boundary
deliberately.
Linked git worktrees are handled: .git there is a file pointing at the main
repository, and identity is read from where git actually keeps it.