Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
7f2688d19This file is pinned to the selected release. Download the original to open it in your design tool.
# API keys are read from the environment only; never commit a real .env
# Copy this file to .env and fill in your keys (.env is gitignored)
#
# copperhead loads .env from the directory you run it in. A variable already set
# in your shell always wins over this file.
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
# Optional: saved-login for the Claude Code provider (--model claude-code).
# Drives Claude Code via the Claude Agent SDK and reuses your saved login, so a
# Claude subscription runs copperhead with NO ANTHROPIC_API_KEY. Mint it with
# `claude setup-token` while logged into Claude Code. The Claude Agent SDK
# (`@anthropic-ai/claude-agent-sdk`) ships as an optional dependency, so a normal
# install includes it. copperhead never reads or logs this credential; the CLI
# owns authentication.
CLAUDE_CODE_OAUTH_TOKEN=
# Optional: default model. Overridden by --model, and it overrides the `model`
# field in .copperhead/config.json.
#
# claude-code Claude Code, saved login (no API key; uses the token above)
# claude-code:<id> the same, on a specific model id
# claude the Anthropic API provider on its default model
# claude-<id> any Anthropic API model id, passed through as-is
# codex local Codex CLI using its saved ChatGPT login (no API key)
# codex:<id> local Codex CLI with an explicit model id
# gpt-5 the OpenAI provider on its default model
# <anything> sent to OpenAI as a model id, e.g. gpt-5-mini
#
# Routing is by prefix, matched top to bottom: "claude-code" is checked before
# the "claude" prefix (Anthropic API, needs ANTHROPIC_API_KEY); "codex" uses the
# local Codex CLI; everything else goes to OpenAI and needs OPENAI_API_KEY. A
# typo like "claud-sonnet-5" routes to OpenAI and fails there.
#
# Left blank, copperhead picks a provider from whichever key is present,
# preferring OPENAI_API_KEY if both are set.
COPPERHEAD_MODEL=
# Optional: path to the authenticated local Codex CLI. The default is `codex`
# on PATH. Only needed for non-standard installations.
COPPERHEAD_CODEX_PATH=
# Optional: cross-run memory via Synap (https://docs.maximem.ai). Left blank,
# copperhead runs exactly as before with no network calls to Synap.
#
# Set it and each run recalls relevant context from your earlier runs (on this
# board and others) into the system prompt, then records its outcome, decisions,
# and refusals back. In-repo docs and the KiCad files stay the source of truth;
# recalled memory is advisory context layered on top.
#
# Requires the optional @maximem/synap-js-sdk package AND a Python 3.11+ runtime
# on the host: the JS SDK drives a Python bridge as a subprocess. If either is
# missing, copperhead logs a line and continues without memory.
SYNAP_API_KEY=
# Optional memory scoping. SYNAP_USER_ID defaults to your `git config
# user.email`; SYNAP_CUSTOMER_ID defaults to "copperhead" and only matters on
# B2B Synap instances.
SYNAP_USER_ID=
SYNAP_CUSTOMER_ID=