tscircuit

Build, modify, and debug tscircuit (React/TypeScript) PCB designs. Use when working with tsci CLI (init/dev/search/add/import/build/export/snapshot/push),…

INSTALLATION
npx skills add https://github.com/tscircuit/skill --skill tscircuit
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

tscircuit

You are helping the user design electronics using tscircuit (React/TypeScript) and the tsci CLI.

When this Skill is active:

  • Prefer tscircuit’s documented primitives and CLI behavior. If something is unclear, confirm by:
  • Reading local files in the repo (e.g., tscircuit.config.json, index.circuit.tsx, package.json)
  • Running tsci --help or the specific subcommand’s --help
  • Avoid “inventing” JSX props or CLI flags.

Default workflow

  • Clarify requirements (if not already given)
  • Board form factor / size constraints
  • Power sources and voltage rails
  • I/O: connectors, headers, mounting holes, mechanical constraints
  • Target manufacturer constraints (trace/space, assembly, supplier)
  • Choose a starting point
  • If the repo is not a tscircuit project, recommend:
  • Install CLI, then tsci init to bootstrap a project.
  • If a form-factor template is appropriate (Arduino Shield, Raspberry Pi HAT, etc.), prefer @tscircuit/common templates.
  • Find and install components
  • Use tsci search "<query>" to discover footprints and tscircuit registry packages.
  • For USB-C receptacles/connectors, prefer builtin syntax with <connector standard="usb_c" /> instead of importing from JLCPCB.
  • Use one of:
  • tsci add <author/pkg> for registry packages (installs @tsci/* packages)
  • tsci import <query> when you need to import a component from JLCPCB or the registry.
  • Write/modify TSX circuit code
  • Keep circuits as a default-exported function that returns JSX.
  • Use layout props intentionally:
  • PCB: pcbX, pcbY, pcbRotation, layer
  • Schematic: schX, schY, schRotation, schOrientation
  • On large projects (5+ components), use <schematicsection /> to group components by function (e.g. "Power", "MCU", "IO"). This is one of the most important things for schematic readability. Assign each component a schSectionName and manually position all members of a section in close proximity using schX/schY.
  • Use <trace /> for connectivity; prefer net connections (net.GND, net.VCC, etc.) for power/ground.
  • Build and iterate
  • Run tsci check netlist before tsci check schematic-placement, tsci check placement, and tsci build to catch connectivity issues early.
  • Use tsci check schematic-placement to validate schematic-side placement before checking PCB placement.
  • Do not finalize unless both tsci check schematic-placement and tsci check placement pass with no actionable placement violations; if violations exist, fix layout and rerun until clean.
  • Use tsci check trace-length to check for long straight line distances (before routing) or long routes (after routing)
  • Run tsci build --pcb-png [file] to inspect placement before checking routing.
  • Run tsci check routing-difficulty after placement to identify potential areas of congestion.
  • Run tsci build to compile and validate the circuit.
  • DRC (Design Rule Check) errors can often be ignored during development—focus on getting the circuit correct first.
  • If routing struggles, reduce density, use <group /> for sub-layouts, or change autorouter settings.
  • Use tsci dev only when you need interactive visual feedback (not typical for AI-driven iteration).
  • Validate and export
  • Run tsci check netlist before tsci check schematic-placement, tsci check placement, and tsci build when preparing to share/publish.
  • Run tsci build (and optionally tsci snapshot) before sharing/publishing.
  • Use tsci export for SVG/netlist/DSN/3D/library outputs.
  • For manufacturing, obtain fabrication outputs (Gerbers/BOM/PnP) from the export UI after tsci dev.

Safety and non-goals

  • Treat electrical safety, regulatory compliance, and manufacturability as user-owned responsibilities.
  • Do not publish (tsci push) or place orders unless the user explicitly requests it.

Local references bundled with this Skill

  • CLI primer: CLI.md
  • Syntax primer: SYNTAX.md
  • Workflow patterns: WORKFLOW.md
  • Pre-export checklist: CHECKLIST.md
  • Ready-to-copy templates: templates/
  • Helper scripts: scripts/

Builtin Elements

  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/analogsimulation.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/battery.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/board.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/cadassembly.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/cadmodel.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/capacitor.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/chip.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/connector.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/constraint.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/copperpour.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/coppertext.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/courtyardcircle.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/courtyardoutline.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/courtyardpill.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/courtyardrect.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/crystal.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/currentsource.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/cutout.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/diode.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/fabricationnotedimension.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/fabricationnotepath.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/fabricationnoterect.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/fabricationnotetext.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/fiducial.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/footprint.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/fuse.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/group.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/hole.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/inductor.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/jumper.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/led.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/mosfet.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/mountedboard.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/net.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/netalias.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/netlabel.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/opamp.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/panel.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/pcbkeepout.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/pcbnotedimension.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/pcbnoteline.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/pcbnotepath.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/pcbnoterect.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/pcbnotetext.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/pcbtrace.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/pinheader.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/pinout.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/platedhole.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/port.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/potentiometer.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/pushbutton.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/resistor.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/resonator.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/schematicarc.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/schematicbox.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/schematiccell.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/schematiccircle.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/schematicline.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/schematicpath.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/schematicrect.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/schematicrow.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/schematicsection.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/schematictable.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/schematictext.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/silkscreencircle.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/silkscreenline.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/silkscreenpath.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/silkscreenrect.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/silkscreentext.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/smtpad.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/solderjumper.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/subcircuit.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/subpanel.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/switch.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/symbol.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/testpoint.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/trace.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/tracehint.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/transistor.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/via.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/voltageprobe.md)
  • [](https://github.com/tscircuit/skill/blob/HEAD/./elements/voltagesource.md)
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card