Skip to content

Configuration

Running synthesize init creates synth.yaml in your project root. Every section is optional — defaults are sensible.

Full Reference

project_name: my-project
version: 1.0.0
timeout: 30s

# Which models handle which tasks
models:
  interpret: claude-sonnet-4-6            # Parsing .synth intent
  generate: claude-sonnet-4-6             # Test code generation
  quick_fix: claude-haiku-4-5-20251001    # Fast, cheap healing fixes
  chat: claude-sonnet-4-6                 # Interactive chat sessions

# Target environment for generated tests
environment:
  type: web            # web | api | database | cli
  base_url: https://example.com
  browser: chromium    # chromium | firefox | webkit
  headless: true
  variables:
    USERNAME: testuser
    PASSWORD: testpass

# Output settings
output:
  directory: output
  generate_meta: true      # Metadata alongside generated tests
  generate_review: true    # Auto-review reports

# Authentication
auth:
  offline_mode: false      # true = skip all account checks (BYO API key)

# Local analytics database
database:
  enabled: true            # SQLite store for trends/flaky/analytics commands

# Docker execution
docker:
  enabled: false
  timeout: 300

# Quality review defaults
review:
  strictness: standard     # relaxed | standard | strict | paranoid
  auto_fix: false

Key Sections Explained

models

Synthesize routes different tasks to different models. The defaults balance quality and cost: a stronger model for interpretation and generation, a fast model for quick healing fixes. Override any of them if you have preferences or cost constraints.

environment

Tells the generator what it's targeting. type: web produces browser tests; api produces HTTP tests; database produces data-validation tests. variables are injected into generated tests — pair with ${VAR} placeholders in your .synth files.

Per-environment overrides (dev/staging/prod) work through data profiles with the -e flag.

auth.offline_mode

Set true to run entirely against your own ANTHROPIC_API_KEY with no Synthesize account. All local features work; account-backed features (collaboration, Studio sync) are unavailable.

database

The local SQLite store powers trends, flaky, analytics, and coverage history. Disable it if you want zero local state.

review.strictness

How picky the quality gate is when reviewing generated tests:

  • relaxed — structural validity only
  • standard — structure + common anti-patterns (default)
  • strict — adds assertion quality and locator robustness checks
  • paranoid — everything, fail on any warning

Environment Variables

Variable Purpose
ANTHROPIC_API_KEY LLM access for generation (required unless logged in to an account with usage)

Credentials from synthesize auth login are stored in ~/.synth/credentials.json. Plugins and other per-user state live under ~/.synth/.