Skip to content
copperhead.sh
Get started

Getting started

Introduction

What copperhead is, how the agent works, and what it deliberately is not.

copperhead is an AI agent for circuit boards. It works the way a coding agent works on a codebase, except the repository holds a KiCad project: it reads your design docs, proposes a change as a validated spec, edits the real .kicad_sch and .kicad_pcb files, verifies its own work with kicad-cli ERC and DRC, and writes down why it did what it did.

It is a CLI, it runs against a plain git repository, and it has no hidden state. Everything it knows lives in markdown you can read and review.

copperhead has exactly two ways in, and they are the same loop underneath.

Flow A: from scratchFlow B: on an existing repo
Commandcopperhead create --brief brief.mdcopperhead do "<request>"
InputA product brief, in markdownA change request, in natural language
Starting pointAn empty git repoA repo that already has a schematic and docs/
OutputA full design package in outputs/One verified, committed change

Flow A is Flow B run repeatedly against a growing repo: same loop, same tools, same verification, same guardrails. See Design from a brief and Edit an existing board.

Everything else in the design follows from these. They are covered in depth in Guardrails.

  1. Spec-gated in. The agent cannot touch a KiCad file until a validated change proposal exists. The edit tools are structurally absent from its tool list until then, so an ungated edit is not something the model can attempt and fail at: it is not expressible.
  2. Verification-gated out. No mutation counts as done until ERC (and DRC, if the board changed) passes. The agent repairs from its own error reports, or rolls back to the git snapshot.
  • Not an autorouter. Routing stays human or delegated. copperhead produces the DRC-clean draft that layout tools optimize from.
  • Not a new editor. No walled garden. Your KiCad install remains the editor.
  • Not the engineer of record. A human signs off. The agent never claims a design is fab-ready beyond “ERC and DRC clean”.