Skip to content

Configuration

Homingo stores its configuration in ~/.homingo/config.json. Run homingo init to generate a default config.

Config File

json
{
  "model": "claude-sonnet-4-20250514",
  "skillsDir": "./skills",
  "shadowRouter": {
    "promptsPerPair": 10,
    "minPrompts": 5,
    "accuracyThreshold": 90,
    "maxIterations": 5
  },
  "output": {
    "reportDir": "~/.homingo/reports",
    "format": "both",
    "maxReportsPerCommand": 50
  }
}

Options

model

The primary LLM model — the model under test. This is used for routing simulation: the high-volume operation that asks the LLM to pick a skill for each adversarial prompt. Since the goal is to test how your deployment model routes, this should match the model you actually use. The provider is auto-detected from the model name:

PrefixProvider
claude-*Anthropic
gpt-*, o1-*, o3-*OpenAI

genModel (optional)

The model used for prompt generation (test data creation). Prompt generation only needs to produce ambiguous test inputs, so a cheaper model works well. When omitted, a cheaper model is auto-derived from model:

Primary modelAuto gen model
claude-sonnet-*, claude-opus-*claude-haiku-4-5-20251001
claude-haiku-*Same as primary
gpt-4o, gpt-4o-2*gpt-4o-mini
o1*, o3*, o4*gpt-4o-mini
gpt-4o-mini*Same as primary
UnknownSame as primary

Set "genModel": "same" in config (or --gen-model same on the CLI) to force the primary model for generation. The --gen-model CLI flag always takes precedence over the config value.

skillsDir

Path to the directory containing your skill folders. Each skill folder must contain a SKILL.md file. See Skill Format.

shadowRouter

FieldDefaultDescription
promptsPerPair10Number of adversarial prompts generated per skill pair
minPrompts5Minimum prompts for a valid test
accuracyThreshold90Percentage accuracy required to pass (0–100)
maxIterations5Max rewrite iterations in the --fix loop

output

FieldDefaultDescription
reportDir"~/.homingo/reports"Directory for HTML reports and run metadata
format"both"Output format: "json", "markdown", or "both". Note: HTML reports and JSON data are always written regardless of this setting.
maxReportsPerCommand50Maximum number of HTML reports kept per command. Oldest reports are pruned automatically. Set to 0 for unlimited.

API Keys

homingo init prompts for your API key(s) and stores them in ~/.homingo/config.json.

You can override the stored keys with environment variables:

VariableDescription
ANTHROPIC_API_KEYAPI key for Anthropic models
OPENAI_API_KEYAPI key for OpenAI models

Environment variables take precedence over config file values. This is useful for CI/CD or when you prefer not to store keys on disk.

CLI Flag Overrides

Most config values can be overridden per-run via CLI flags:

bash
# Override primary model (used for routing simulation)
homingo audit --model gpt-4o

# Override gen model (or force same model for both)
homingo audit --gen-model claude-haiku-3-20240307
homingo lint --gen-model same

# Override prompts per pair
homingo lint --prompts 25

# Override accuracy threshold
homingo lint --threshold 85

# Skip the pair result cache
homingo audit --no-cache

CLI flags always take precedence over config.json values.

Released under the MIT License.