copperhead
NewImproving TTFB with Anycast

Cursor for circuit boards.

Copperhead is an open-source AI engineering platform that helps hardware teams design, verify and ship circuit boards.

npm i -g copperhead
 
$ add a USB-C power input to the key
 
read_file docs/POWER.md (48 lines)
list_nets 41 nets, no VBUS, no CC1/CC2
validate_change add-usb-c-power valid, edit tools unlocked
✓ propose: add-usb-c-power validated, edit tools unlocked
edit_file hardware/open-key.kicad_sch: USB-C receptacle, 2x 5.1k CC pulldowns
edit_file docs/POWER.md: VBUS budget, 5 V at 1.5 A
✓ edit: 2 files, 5 anchored regions
run_erc clean, 0 violations
check_drift docs match schematic
✓ verify: ERC clean, no drift
record_decision DECISIONS.md +1 · CHANGELOG.md +1
✓ remember: decision + changelog recorded
done · verified erc · committed 3f2c9a1 · 17s · 12.3k tokens

Backed by

Proven on copper
A copperhead-designed board: the Open Telegraph key, with ESP32-S3, USB-C, and the copper switch, rendered from its KiCad files.

Proven on real copper.

Open Telegraph: pocket-size ESP32-S3 Morse key, built end to end with this workflow. Every decision, every check, every file is public.

How it works

A loop, not a chatbot.

It looks a lot like pair programming, except the codebase is a circuit board.

  • Starts from the docs

    Every decision lives in the design docs, so the agent knows the whole design, not just the part in front of it.

  • Nothing starts without a spec

    The agent cannot touch a design file until a validated change proposal exists. The edit tools stay locked until it passes.

  • Nothing is done until the tools agree

    Every change is followed by ERC on the schematic and DRC on the board. Violations get read, fixed, and re-run.

  • Changes propagate

    Change one value and it carries across every file that references it. The boring, easy-to-get-wrong step is the one the agent is best at.

  • A product, not a chat log

    Schematic, board, gerbers and drill, DXF and STEP, renders, an orderable BOM, a firmware scaffold, and a bring-up plan. All on disk, in your repo.

  • Open because it has to be

    Apache-2.0, on an open stack. Everything it writes is plain markdown and JSON in your own repository. No proprietary formats, no lock-in.

    Built on KiCad and OpenSpec.

Pricing

Pay to not run it yourself.

copperhead is open core. The CLI is free and always will be, and it does the real work on its own. You pay to host it, to work as a team, or to give an auditor what they ask for.

  • CLI

    Free

    Apache-2.0, forever

    Design on your own, on your own machine.

    Get started

    Includes:

    • The full agent: do, create, init, check, watch
    • Bring your own Claude or GPT-5 key
    • Runs on your KiCad files, in your own git repo
    • Plain markdown, JSON, and KiCad output. No lock-in.
    • Runs locally, never metered
    • Community support
  • Team

    $49per user / month

    + $199 / mo platform

    Cloud, with governance and CI for a whole team.

    Let's talk

    Everything in Cloud, plus:

    • CI bot: run check as a required PR status check
    • Shared, versioned constraint libraries across the org
    • SSO / SAML, role management, central billing
    • Managed credits pooled across the team
    • Shared run history
  • Enterprise

    Customannual

    Self-hosted, built for procurement, one price a year.

    Talk to sales

    Everything in Team, plus:

    • Self-hosted or VPC, so design data never leaves your network
    • Altium support beyond KiCad
    • RBAC, security review, dedicated support and an SLA
    • An audit trail your compliance team can hand over
    • Flat annual license, no per-run metering
FAQ

Questions, before you ask them.

What is copperhead?

An open source AI agent that designs, documents, and verifies printed circuit boards. You describe a change or hand it a product brief, and it edits your real KiCad files, updates every document that references them, and runs KiCad's own checks until they pass. Longer introduction here.

What problem does it actually solve?

Drift. A hardware design spreads one decision across a schematic, a bill of materials, a power budget, and several documents, and nothing breaks when they fall out of sync. The inconsistency is found at bring-up, and a respin costs 5,000 to 50,000 dollars and six to eight weeks. The full argument is here.

What do I need installed?

Node 20 or newer, KiCad with kicad-cli on your path, and a model API key of your own. Then npm i -g copperhead.

Does it work on a design that already exists?

That is the main case. Point it at a KiCad repository, run copperhead init, and start asking for changes. It can also run the full pipeline from a written brief with copperhead create, but iterating on real designs is what it is best at.

What will it refuse to do?

It refuses to run on a dirty git tree, refuses to edit any design file before a validated change proposal exists, and refuses changes that break a budget or constraint you have documented, citing the line it would violate. It also never invents a part number it cannot justify from a datasheet.

Will it rewrite my whole schematic?

No. Edits are surgical changes to the KiCad s-expression source, so your diffs stay small and reviewable and untouched parts of the file stay byte-identical. A tool that regenerates the file to move one net has made its own work impossible to review.

9 more questions

Start building

Never ship a board your docs no longer describe.

copperhead is open source and free to use. Install once, describe the board you want in a short brief.md, and run create.

npm i -g copperhead
export ANTHROPIC_API_KEY=<api-key>
copperhead create --brief brief.md
brief.md
# Pocket Morse key

A pocket-size Morse key that types over Bluetooth as a standard keyboard.

- ESP32-S3, BLE HID
- Li-Po cell, USB-C charging
- Sleep current budget: 25 µA
- 3.5 mm jack for an external paddle

Requires Node 20+ and kicad-cli. The agent refuses to run on a dirty git tree, refuses edits without a validated proposal, and refuses changes that break your documented budgets. You will come to like being told no.