Skip to content

Configuration

ankurCES edited this page Jun 7, 2026 · 14 revisions

Configuration

blumi reads layered configuration (via figment):

  1. Built-in defaults
  2. ~/.blumi/settings.json (global)
  3. ./.blumi/ in the current project (per-project overrides)
  4. Environment variables, prefixed BLUMI_ with __ as the nesting separator (e.g. BLUMI_GRID__SECRET, BLUMI_LLM__MODEL)

Secrets live in settings.json, which is written with mode 0600. Never commit it — the repo's .blumi/ is gitignored.

Fastest path: the login wizard

blumi login

Pick a provider, paste a key (or endpoint), and choose a model. It writes the right bits into settings.json. You can re-run it any time to switch providers.

Providers & keys

blumi is provider-agnostic. Supported providers include:

Provider Notes
openai OpenAI and any OpenAI-compatible endpoint (set base_url)
anthropic Claude — API-key auth only
gemini Google Gemini (native client)
azure Azure AI Foundry (Anthropic models)
local a local OpenAI-compatible server (e.g. llama.cpp / Ollama-compatible)
mock deterministic, for tests/demos

Override per-invocation without editing config:

blumi --provider anthropic --model claude-sonnet-4 run ""
blumi --provider openai tui

A minimal settings.json:

{
  "llm": { "provider": "anthropic", "model": "claude-sonnet-4" },
  "providers": {
    "anthropic": { "api_key": "sk-ant-…" },
    "openai":    { "api_key": "sk-…", "base_url": "https://api.openai.com/v1" }
  }
}

Other sections

settings.json also holds (all optional, sensible defaults):

  • permissions — which tools auto-allow / ask / deny. Interactive by default; toggle YOLO (auto-approve everything) with ctrl+y / /yolo / --yolo.
  • persona + personas — the active agent persona and your custom ones (e.g. architect, pair, reviewer). Switch with --persona <name> or /persona.
  • executorlocal (host) or docker (sandbox); ssh for a remote host.
  • web — gateway password hash (set via blumi serve pair).
  • voice — see Voice.
  • grid — see Grid.
  • brain — local-LLM approval reviewer (off / advisory / auto).
  • router — cost-aware model routing: mode (off/heuristic/hybrid/judge), light/heavy tier provider+model, subagent_tier, prefer_grid_light. Off by default. See Self-Management → Cost-aware routing.
  • always_on — proactive discovery: enabled, autonomy (off/propose/auto), cadence_secs, rate-limit + caps. Off by default. See Self-Management → Always-on discovery.
  • hooks — lifecycle hooks: user_prompt_submit shell commands inject their stdout as turn context; pre_tool_use commands can block a tool call by exiting non-zero (with a matcher to scope by tool). Off by default. See Self-Management → Lifecycle hooks.
  • notify — completion notifications when an autonomous run (blumi loop / always-on discovery) finishes: desktop (OS notification) and bot ({transport,target} to a Telegram/Discord/Slack/WhatsApp gateway), gated by on. Off by default. See Self-Management → Completion notifications.
  • acceleration — GPU/accelerator mode for the bundled embedder (auto / cpu / apple / cuda). See Memory & Knowledge → GPU acceleration.
  • heal — self-healing & evolution (reflex recovery budget, failure→fix learning, autonomy). See Self-Management → Self-healing.
  • embeddings / memory / knowledge — local embeddings, semantic memory, and the code knowledge base. See Memory & Knowledge.
  • mcp_servers, lsp_servers, gateway (messaging bots), git (commit identity).

Auto-continue (token budget)

When a turn stops only because it hit the per-turn tool cap, blumi auto-continues the same session and narrates each step. It's bounded by both a step budget (llm.max_auto_continue, default 12) and a token ceiling (llm.max_auto_continue_tokens, default 400k) — whichever is hit first. Tune live in the TUI with /autocontinue <n> (0 disables).

Memory

Two markdown files the agent reads/writes: project MEMORY.md and your USER.md (in ~/.blumi/). View/edit them in the TUI (/memory), the web/phone control center, or on disk.

Clone this wiki locally