Vibeleaderboard
Index / agent

Copperhead

copperhead.sh
Visit 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

pcb-designhardwareai-agentskicadelectronicsopen-sourceclicircuit-design

Tech Stack

Node.jsTypeScript

Media

Copperhead

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.