Config Reference

Mole’s configuration lives in mole.yaml. All fields can be overridden with MOLE_ prefixed environment variables.

Full example

github:
  app_id: 12345                          # GitHub App ID
  private_key_path: /etc/mole/app.pem    # Path to private key
  webhook_secret: "secret"               # Webhook secret

llm:
  api_key: "sk-ant-..."                  # Anthropic API key
  review_model: "claude-sonnet-4-6"      # Standard review model
  deep_review_model: "claude-opus-4-6"   # Deep review model
  # Pricing per 1M tokens [input, output] -- for the Costs dashboard
  # Defaults to Anthropic's published pricing if omitted
  pricing:
    claude-sonnet-4-6: [3.00, 15.00]
    claude-opus-4-6: [15.00, 75.00]

mysql:
  host: localhost
  port: 3306
  database: mole
  user: mole
  password: "password"

valkey:
  host: localhost
  port: 6379

server:
  port: 8080
  environment: production            # development | production

worker:
  count: 3

log:
  level: info                            # debug | info | warn | error

# Server-level defaults (overridable per-repo via .mole/config.yaml)
defaults:
  language: en                           # en, pt-BR
  personality: mole                      # mole, formal, minimal

# Codebase exploration (optional -- requires git on host)
# Enables /mole dig command for contextual reviews
repos:
  base_path: "/var/lib/mole/repos"   # Where to clone repos (empty = disabled)

exploration:
  max_turns: 25                       # Max Sonnet tool-use turns
  model: "claude-sonnet-4-6"           # Exploration model

# Dashboard (optional)
dashboard:
  github_client_id: ""
  github_client_secret: ""
  session_secret: ""
  base_url: "http://localhost:8080"
  allowed_org: ""                        # Restrict to org members (leave empty to allow all)

GitHub

FieldTypeDescription
github.app_idnumberGitHub App ID
github.private_key_pathstringPath to PEM key file
github.webhook_secretstringWebhook validation secret

LLM

FieldTypeDescription
llm.api_keystringAnthropic API key
llm.review_modelstringModel for standard reviews
llm.deep_review_modelstringModel for deep reviews
llm.pricingobjectPricing per 1M tokens [input, output] for cost tracking

MySQL

FieldTypeDescription
mysql.hoststringMySQL host
mysql.portnumberMySQL port
mysql.databasestringDatabase name
mysql.userstringDatabase user
mysql.passwordstringDatabase password

Valkey

FieldTypeDescription
valkey.hoststringValkey host
valkey.portnumberValkey port

Server

FieldTypeDefaultDescription
server.portnumber8080HTTP port
server.environmentstringproductionEnvironment (development, production)

Worker

FieldTypeDefaultDescription
worker.countnumber3Number of worker goroutines

Log

FieldTypeDefaultDescription
log.levelstringinfoLog level (debug, info, warn, error)

Defaults

FieldTypeDefaultDescription
defaults.languagestringenReview language (en, pt-BR)
defaults.personalitystringmolePersonality mode (mole, formal, minimal)

Repos

FieldTypeDefaultDescription
repos.base_pathstring(empty)Where to clone repos for /mole dig (empty = disabled)

Exploration

FieldTypeDefaultDescription
exploration.max_turnsnumber25Max Sonnet tool-use turns for codebase exploration
exploration.modelstringclaude-sonnet-4-6Model used for codebase exploration

Dashboard

Optional HTMX-powered dashboard for developer growth tracking. Requires a GitHub OAuth App (created at github.com/settings/developers) with callback URL http://your-server/auth/callback.

FieldTypeDescription
dashboard.github_client_idstringGitHub OAuth App client ID
dashboard.github_client_secretstringGitHub OAuth App client secret
dashboard.session_secretstringRandom 32-char session secret
dashboard.base_urlstringPublic URL of the Mole instance
dashboard.allowed_orgstringRestrict access to members of a GitHub org (empty = allow all)

Access roles

RoleOwn DataTeam AverageIndividual OthersModulesCosts
DevYesYes (anonymous)NoYesNo
Tech LeadYesYesYes (opt-in)YesNo
ManagerNoYesNoYesNo
AdminYesYesYesYesYes

Manager sees less than Tech Lead by design — this tool is for growth, not HR evaluation.

Environment variables

Every field can be overridden with environment variables using the MOLE_ prefix:

VariableConfig field
MOLE_GITHUB_APP_IDgithub.app_id
MOLE_GITHUB_PRIVATE_KEY_PATHgithub.private_key_path
MOLE_GITHUB_WEBHOOK_SECRETgithub.webhook_secret
MOLE_LLM_API_KEYllm.api_key
MOLE_LLM_REVIEW_MODELllm.review_model
MOLE_LLM_DEEP_REVIEW_MODELllm.deep_review_model
MOLE_MYSQL_HOSTmysql.host
MOLE_MYSQL_PORTmysql.port
MOLE_MYSQL_DATABASEmysql.database
MOLE_MYSQL_USERmysql.user
MOLE_MYSQL_PASSWORDmysql.password
MOLE_VALKEY_HOSTvalkey.host
MOLE_VALKEY_PORTvalkey.port
MOLE_SERVER_PORTserver.port
MOLE_SERVER_ENVIRONMENTserver.environment
MOLE_WORKER_COUNTworker.count
MOLE_LOG_LEVELlog.level
MOLE_REPOS_BASE_PATHrepos.base_path
MOLE_EXPLORATION_MAX_TURNSexploration.max_turns
MOLE_EXPLORATION_MODELexploration.model
MOLE_DASHBOARD_GITHUB_CLIENT_IDdashboard.github_client_id
MOLE_DASHBOARD_GITHUB_CLIENT_SECRETdashboard.github_client_secret
MOLE_DASHBOARD_SESSION_SECRETdashboard.session_secret
MOLE_DASHBOARD_BASE_URLdashboard.base_url
MOLE_DASHBOARD_ALLOWED_ORGdashboard.allowed_org
MOLE_DEFAULTS_LANGUAGEdefaults.language
MOLE_DEFAULTS_PERSONALITYdefaults.personality