Configuration
Erode is configured through environment variables or a .eroderc.json configuration file. For GitHub Actions-specific inputs (model-repo, fail-on-violations, etc.), see GitHub Actions.
Precedence
Section titled “Precedence”Erode resolves configuration in the following order (highest priority wins):
- Environment variables (
ERODE_*), whether set directly, through CI secrets, or via a.envfile .eroderc.json, project-level settings from the config file- Defaults, built-in defaults for all settings
This means you can commit .eroderc.json with project settings (model format, constraints, adapter config) and provide secrets (API keys, tokens) through environment variables in CI or a local .env file.
Configuration file
Section titled “Configuration file”Create a .eroderc.json file in your project root or home directory:
{ "$schema": "https://erode.dev/schemas/v0/eroderc.schema.json", "ai": { "provider": "gemini" }}The $schema field enables autocomplete and validation in editors that support JSON Schema. All sections are optional; Erode fills in defaults for anything you omit.
Erode looks for .eroderc.json in the current working directory first, then the home directory. Any ERODE_* environment variables override matching values from the config file.
Environment variable names map to nested JSON keys. For example:
| Environment variable | JSON path |
|---|---|
ERODE_AI_PROVIDER | ai.provider |
ERODE_GEMINI_API_KEY | gemini.apiKey |
ERODE_MAX_FILES_PER_DIFF | constraints.maxFilesPerDiff |
ERODE_MODEL_FORMAT | adapter.format |
ERODE_MODEL_PATH | adapter.modelPath |
ERODE_MODEL_REPO | adapter.modelRepo |
ERODE_MODEL_REF | adapter.modelRef |
AI provider
Section titled “AI provider”| Variable | Description | Default |
|---|---|---|
ERODE_AI_PROVIDER | AI provider to use (gemini, openai, or anthropic) | gemini |
ERODE_GEMINI_API_KEY | Google Gemini API key | — |
ERODE_OPENAI_API_KEY | OpenAI API key | — |
ERODE_ANTHROPIC_API_KEY | Anthropic API key (experimental) | — |
Architecture model
Section titled “Architecture model”| Variable | Description | Default |
|---|---|---|
ERODE_MODEL_FORMAT | Architecture model format (likec4 or structurizr) | likec4 |
ERODE_MODEL_PATH | Path to the architecture model directory | — |
ERODE_MODEL_REPO | Repository URL or owner/repo containing the model | — |
ERODE_MODEL_REF | Branch or tag to clone from the model repository | main |
ERODE_STRUCTURIZR_CLI_PATH | Path to the Structurizr CLI WAR file (for .dsl files) | — |
ERODE_LIKEC4_EXCLUDE_PATHS | Comma-separated paths to exclude from model loading | — |
ERODE_LIKEC4_EXCLUDE_TAGS | Comma-separated tags to exclude from model loading | — |
Diff limits
Section titled “Diff limits”| Variable | Description | Default |
|---|---|---|
ERODE_MAX_FILES_PER_DIFF | Maximum number of files to include in the diff | 50 |
ERODE_MAX_LINES_PER_DIFF | Maximum number of lines to include in the diff | 5000 |
ERODE_MAX_CONTEXT_CHARS | Maximum characters of architectural context | 10000 |
Erode truncates large diffs to stay within these limits. If a PR exceeds them, Erode processes the most relevant files first based on the architecture model context.
Provider model overrides
Section titled “Provider model overrides”Each AI provider uses two model tiers: a fast model for extraction stages and an advanced model for analysis. Override the defaults with these variables:
| Variable | Description |
|---|---|
ERODE_GEMINI_FAST_MODEL | Gemini model for Stages 1–2 and model updates |
ERODE_GEMINI_ADVANCED_MODEL | Gemini model for Stage 3 (analysis) |
ERODE_OPENAI_FAST_MODEL | OpenAI model for Stages 1–2 and model updates |
ERODE_OPENAI_ADVANCED_MODEL | OpenAI model for Stage 3 (analysis) |
ERODE_ANTHROPIC_FAST_MODEL | Anthropic model for Stages 1–2 and model updates |
ERODE_ANTHROPIC_ADVANCED_MODEL | Anthropic model for Stage 3 (analysis) |
See AI Providers for default model names and guidance on choosing a provider.
Platform tokens
Section titled “Platform tokens”| Variable | Description | Default |
|---|---|---|
ERODE_GITHUB_TOKEN | GitHub token for API access | — |
ERODE_GITHUB_BASE_URL | GitHub API base URL | https://api.github.com |
ERODE_MODEL_REPO_PR_TOKEN | Separate token for the model repository | Uses ERODE_GITHUB_TOKEN |
ERODE_GITLAB_TOKEN | GitLab token with api scope | — |
ERODE_GITLAB_BASE_URL | GitLab instance URL | https://gitlab.com |
ERODE_BITBUCKET_TOKEN | Bitbucket app password or token | — |
ERODE_BITBUCKET_BASE_URL | Bitbucket API base URL | https://api.bitbucket.org/2.0 |
See Authentication for required permissions, token types, and platform-specific setup.
Timeouts
Section titled “Timeouts”| Variable | Description | Default |
|---|---|---|
ERODE_GEMINI_TIMEOUT | Request timeout for Gemini API calls (ms) | 60000 |
ERODE_OPENAI_TIMEOUT | Request timeout for OpenAI API calls (ms) | 60000 |
ERODE_ANTHROPIC_TIMEOUT | Request timeout for Anthropic API calls (ms) | 60000 |
ERODE_GITHUB_TIMEOUT | Request timeout for GitHub API calls (ms) | 30000 |
| Variable | Description | Default |
|---|---|---|
ERODE_DEBUG_MODE | Enable debug output | false |
ERODE_VERBOSE | Enable verbose logging | false |
What’s next
Section titled “What’s next”- CLI Commands: run Erode locally against any pull request
- Authentication: token permissions for GitHub, GitLab, and Bitbucket
- AI Providers: supported providers, default models, and overrides
- Analysis pipeline: stage-by-stage reference for the analysis engine