Copperhead
copperhead.sh- Category
- AI Agents
- Rank
- No. 1077Tools index
Previous survey · No. 1069 ·
- Pricing
- Freemium
- Type
- AGENT
- Use case
- Design & Media
- Interfaces
- CLI
- GitHub
- 625 stars
- Latest release
- v0.12.0
- Date
About
Copperhead is an open-source AI agent that turns a written brief into a verified printed circuit board, running through eight gated stages (spec, architecture, parts, schematic, layout, outputs, firmware, dev plan) and committing each artifact only after ERC/DRC checks pass in KiCad. It ships as a free Apache-2.0 CLI, with paid hosted/cloud and team tiers adding a web viewer, CI checks, and enterprise self-hosting.
What it does
A command-line agent for designers who keep their KiCad projects in git. You describe a change in plain English, such as adding reverse-polarity protection on an input, and it writes a change proposal, edits the schematic and board files as text, updates the markdown design notes that act as its memory, then runs KiCad's own electrical and layout rule checks until they pass. If they never pass, the run rolls back to a git snapshot. It can also start from a written product description and produce a full design package, and it borrows its reasoning from a model you choose: OpenAI, Anthropic, Claude Code, Cursor, Codex, or any OpenAI-compatible endpoint.
Why it's ranked here
The safety story is enforced in code, not in the prompt. Editing tools are withheld from the model until a change proposal validates, every mutation is followed by a rules check, and the separate check command is contractually free of model calls and network requests, so it can run in CI and a pre-commit hook. The experimental agent-tool server exposes only five whole-pipeline actions, so a host agent cannot reach around the gates. Against that: the project calls itself early, and its own roadmap says the live end-to-end acceptance suite has not been observed passing. Apache 2.0, published on npm.
What's good
The deterministic surface is real and useful without any model: checking, a schematic drafter that produces the same bytes from the same intent file, a 0 to 100 legibility score that never changes the exit code, and a bill-of-materials export for JLCPCB, DigiKey and Mouser that refuses to run while the parts list disagrees with the schematic. Model selection refuses to guess when two API keys are set rather than silently picking one. Error messages are specific: a bad KiCad path override fails loudly instead of falling back to a different binary. Saved logins for Claude Code, Cursor and Codex mean no API key is needed.
Tradeoffs
It is a 0.x release whose README warns the interface will move before 1.0, and the agent-tool server is labelled unstable. The roadmap file still describes an older version, so its status claims may lag the code. Requirements disagree in one spot: the install docs ask for KiCad 8 or newer while the agent-tool server's error tells users to install KiCad 9. With the Codex backend, the README admits Codex can still read local files such as secrets in a dotenv file, and its session logs sit outside the tool's redaction. Long turns are allowed up to an hour each by default. The project states it is not an autorouter.
How to use it well
Best fit: a hardware team already running KiCad projects in git that wants doc-to-schematic drift caught in CI. Start with the init and check commands, which need no model, and wire check into the pre-commit hook it offers to install. Run the doctor command first on a new machine. Use the one-shot change command with its dry-run flag before trusting it with commits, and keep a human sign-off, which the docs themselves require. If you only want an autorouter or a GUI, look elsewhere: both are listed non-goals.
Technical notes+
Entry point is src/cli.ts (commander): repl is the default command, with init, check (alias verify), draft schematic, score schematic, doctor, do, sync, create, export bom and mcp. src/config.ts resolveModel follows flag > COPPERHEAD_MODEL > the repo config file > single API key, and throws on an ambiguous two-key environment; defaults are maxTurns 40, maxRepairCycles 5, turnTimeoutMs 600000, turnMaxMs 3600000, heartbeatMs 30000, llmCache on. src/mcp/server.ts registers five tools (copperhead_check, copperhead_do, copperhead_sync, copperhead_init, copperhead_doctor) at MCP_PROTOCOL_VERSION 0.1.0, writes human output to stderr, and serializes mutating calls with an in-memory per-repo lock that does not span processes; its requireKicad message says KiCad 9+ while src/kicad/cli.ts sets MIN_KICAD_MAJOR = 8. src/kicad/cli.ts resolves COPPERHEAD_KICAD_CLI, then PATH, then macOS and Windows install paths, and runs ERC/DRC with --format json --exit-code-violations into a temp dir. src/capabilities/index.ts gates handlers with requiresUnlock on ctx.editsUnlocked. ROADMAP.md is dated to v0.3.0 while package.json is 0.11.0.
Observed
- License
- Apache-2.0 (LICENSE, package.json)
- Language
- TypeScript, ES modules, Node.js 20 or newer (package.json)
- Install
- npm global package with a copperhead binary; optional macOS/Linux bootstrap script
- Interfaces
- CLI with interactive shell and --json output; experimental MCP server over stdio (src/mcp/server.ts)
- External requirement
- KiCad 8 or newer with kicad-cli available (src/kicad/cli.ts)
- Model backends
- OpenAI, Anthropic API, Claude Code, Cursor Agent CLI, Codex CLI, any OpenAI-compatible endpoint (src/config.ts)
- Maturity
- 0.x, README status says early; MCP surface declared unstable
- Tests
- Vitest test suite declared in package.json
Read from README.md, package.json, src/cli.ts, src/mcp/server.ts, src/capabilities/index.ts, src/kicad/cli.ts, src/config.ts, ROADMAP.md, LICENSE, NOTICE, docs/src/content/docs/index.mdx, docs/src/content/docs/reference/cli.md.
What it can do
Generate a verified PCB design from a written text brief
Text prompt/brief → PCB design artifacts
Run pipeline through gated stages (spec, architecture, parts, schematic, layout, outputs, firmware, dev plan)
Design brief → Stage artifacts
Validate schematic and layout with ERC/DRC checks in KiCad before committing each stage
Schematic/layout files → Pass/fail validation result
Generate circuit schematic
Parts and architecture data → Schematic file
Generate PCB layout
Schematic → Layout file
Generate firmware
Design specification → Firmware code
Produce a development plan document
Design specification → Dev plan document
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.