Skip to content

Configuration

Most users never touch configuration. CodeRecon ships with opinionated defaults that work out of the box. This page covers the settings that actually matter.


.recon/.reconignore

Controls what CodeRecon indexes. Follows .gitignore syntax. Created automatically by recon register.

# Default patterns
node_modules/
dist/
build/
.venv/
__pycache__/
*.pyc
*.log
coverage/
.pytest_cache/

When to edit

  • Generated code flooding search results (generated/, proto_out/)
  • Vendored dependencies you don't want indexed
  • Large data files that aren't source code

Edit .recon/.reconignore directly, or add a .reconignore at the repo root. Root-level patterns are merged automatically and survive --reindex.

echo "generated/" >> .reconignore

Sensitive files

Index artifacts in .recon/ are gitignored by design, so it is safe to index files like .env. They are never committed or shared. Exclude them via .reconignore only if you don't want them in search results.


.recon/config.yaml

User-editable. Created by recon register. Only three fields:

# Server port (override with: recon up --port <N>)
port: 7654

# Skip files larger than this (MB) during indexing
# max_file_size_mb: 20

# Log level: DEBUG, INFO, WARNING, ERROR, CRITICAL
# log_level: INFO

That's the entire user-facing config. Everything else uses internal defaults that shouldn't need changing.


Feature toggles

On machines with limited RAM, disable the ML models to fall back to BM25-only search:

CODERECON__FEATURES__SPLADE=false
CODERECON__FEATURES__CROSS_ENCODER=false

Or in ~/.config/coderecon/config.yaml (applies to all repos):

features:
  splade: false
  cross_encoder: false
Toggle Default Effect when disabled
splade true Saves ~470 MB RSS. Search uses BM25 only.
cross_encoder true Disables reranking. Results may be less precise.

Debugging

Set log level to DEBUG for troubleshooting:

CODERECON__LOGGING__LEVEL=DEBUG

Or in .recon/config.yaml:

log_level: DEBUG

Config precedence

Settings are resolved in this order (highest wins):

  1. Environment variables (CODERECON__SECTION__KEY)
  2. Per-repo: .recon/config.yaml
  3. Global: ~/.config/coderecon/config.yaml
  4. Built-in defaults

Environment variables

Use a CODERECON__ prefix with double-underscore nesting:

CODERECON__LOGGING__LEVEL=DEBUG
CODERECON__SERVER__PORT=8080
CODERECON__FEATURES__SPLADE=false

.recon/state.yaml

Auto-generated. Do not edit. Stores runtime paths (index location for cross-filesystem setups).