Skip to content

Configuration

Votrio is zero-config by default, but you can customize its behavior with a votrio.config.mjs file in your project root.

Basic Configuration

Create a votrio.config.mjs file to customize votrio:

votrio.config.mjs
import { defineConfig } from "votrio";

export default defineConfig({
  // AI model for trace analysis
  model: "claude-sonnet-4-20250514",

  // Stack trace analysis settings
  traces: {
    enabled: true,
    minConfidence: 70,  // Minimum confidence to display (0-100)
    showFix: true,      // Show fix suggestions
  },

  // Security scanning settings
  scan: {
    ignore: ["node_modules/**", ".next/**", "dist/**"],
    autoFix: false,
  },

  // Code quality detection
  slop: {
    enabled: true,
    checkImports: true,  // Flag imports that don't exist in npm
  },
});
Traces Configuration

Control how votrio analyzes stack traces when using votrio run:

traces.enabled

Enable/disable stack trace analysis (default: true)

traces: {
  enabled: false,  // Disable trace analysis
}

traces.minConfidence

Only show AI explanations with confidence above this threshold (0-100). Default: 70

traces: {
  minConfidence: 85,  // Only show high-confidence explanations
}

traces.showFix

Display code fixes and suggestions (default: true)

traces: {
  showFix: false,  // Only show explanation, no fixes
}
Scan Configuration

Configure security scanning behavior when using votrio scan:

scan.ignore

Glob patterns to exclude from scanning

scan: {
  ignore: [
    "node_modules/**",
    ".next/**",
    "dist/**",
    "build/**",
    "*.test.js"
  ]
}

scan.autoFix

Automatically fix safe, non-breaking issues (default: false)

scan: {
  autoFix: true,  // Auto-apply safe patches
}
AI Model Selection

Votrio uses Anthropic models for trace analysis. You can override the default model:

export default defineConfig({
  model: "claude-opus-4-1",  // Use Claude Opus (more capable)
});

Available models: claude-opus-4-1, claude-sonnet-4-20250514 (default), claude-haiku-3.5

Custom Rules

Define custom security rules in .votrio/rules.json:

.votrio/rules.json
{
  "patterns": [
    {
      "pattern": "TODO.*FIXME",
      "severity": "low",
      "type": "CODE_MARKER",
      "message": "Found TODO marker in code",
      "suggestion": "Address the TODO before merging"
    },
    {
      "pattern": "console\\.(log|error)\\(",
      "severity": "medium",
      "type": "DEBUG_LOG",
      "message": "Debug logging detected",
      "suggestion": "Remove console logs in production code"
    }
  ],
  "ignore": [
    "**/*.test.js",
    "**/node_modules/**"
  ]
}
Environment Variables

Override configuration via environment variables:

ANTHROPIC_API_KEY

Your Anthropic API key (instead of using votrio auth)

VOTRIO_MODEL

Override the AI model for trace analysis

VOTRIO_TRACE_MODEL

Specifically override the trace analysis model (takes precedence over VOTRIO_MODEL)

export ANTHROPIC_API_KEY="sk-ant-..."
export VOTRIO_MODEL="claude-opus-4-1"
votrio run "npm start"
Full Configuration Example
votrio.config.mjs (complete example)
import { defineConfig } from "votrio";

export default defineConfig({
  // Use a specific model
  model: "claude-sonnet-4-20250514",

  // Stack trace analysis
  traces: {
    enabled: true,
    minConfidence: 70,
    showFix: true,
  },

  // Security scanning
  scan: {
    ignore: [
      "node_modules/**",
      ".next/**",
      "dist/**",
      "build/**",
      "coverage/**",
      "*.lock",
    ],
    autoFix: false,  // Don't auto-fix unless explicitly running votrio scan --fix
  },

  // Code quality
  slop: {
    enabled: true,
    checkImports: true,
  },
});