Skip to content

Configuration

ElmatadorZ edited this page Jul 24, 2026 · 2 revisions

Configuration

Three files make an install yours. All three are git-ignored, and templates for all three ship in the repository. CI re-checks on every push that none of them has been committed.

File Holds Template
.env cloud provider keys, integration tokens .env.example
backend/settings.json model choices, vault path backend/settings.example.json
backend/prompts/USER.md who you are, for the council backend/prompts/USER.example.md

.env

Optional. A purely local install needs none of it.

# where the local model runtime lives — default http://localhost:11434.
# Set it when Ollama is not on this machine. docker compose sets it to
# http://ollama:11434, because inside a container "localhost" is the
# container itself, not the host.
OLLAMA_BASE_URL=

# cloud providers — only if you use one
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
OPENROUTER_API_KEY=

# web_search providers — without a key it falls back to free scrapers,
# which are unreliable; any one key gives a deterministic primary source
BRAVE_SEARCH_API_KEY=
TAVILY_API_KEY=
SERPER_API_KEY=

# optional integrations
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=

# optional: move the institutional database
INSTITUTIONAL_DB=

backend/settings.json

{
  "vault_path":      "/path/to/your/obsidian/vault",   // optional
  "obsidian_vault":  "/path/to/your/obsidian/vault",   // keep equal to vault_path

  "model":           "llama3.1:8b",        // reasoning — the council deliberates with this
  "active_model":    "llama3.1:8b",
  "default_model":   "llama3.1:8b",
  "embed_model":     "nomic-embed-text",

  "exec_model":      "qwen2.5-coder:7b",   // execution — tool calls and file edits
  "exec_connection": "ollama"
}

The vault is optional. Without one, the Scout's four Obsidian tools report that none is configured and everything else runs normally.

Why two models: Choosing a Model.


backend/prompts/USER.md

The prompt layer is file-based and composed in order:

IDENTITY.md  →  AGENTS.md  →  TOOLS.md  →  SOUL.md  →  USER.md
   who            rules        tools       tone        you

USER.md is the only one that is per-install. It is optional — if absent, the composer skips it. Copy USER.example.md and fill in your name, locale, what you are building, and how you want to be answered.

This file changes model behaviour more than anything else you can set. Be specific: "pushes back when output does not run on the target machine" changes more than "prefers quality".


What is never committed

.env                      settings.json          USER.md
*.db  *.db-wal  *.db-shm  SELF.md                sessions/
governance_config.json    skills_index.json      memory/

The privacy CI job fails the build if a personal identifier, a private path, or USER.md appears in the tree.

→ Next: Choosing a Model

Clone this wiki locally