К основному содержанию
скилл CX Codex

tscircuit — скилл для Claude Code: схемы и платы на React

Помогает агенту проектировать электронику в tscircuit: подбирать компоненты, разводить дорожки и собирать герберы. Пригодится, если схема или плата живёт в TSX.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add tscircuit/skill --skill tscircuit -a claude-code
Открыть на GitHub

Что делает tscircuit

Скилл включается, когда вы пишете или отлаживаете схему на tscircuit — React/TypeScript-подходе к печатным платам. Агент работает через CLI tsci: ищет корпуса, ставит пакеты из реестра, собирает проект и проверяет его. Внутри прописан порядок шагов — сначала уточнить требования по питанию, разъёмам и ограничениям производителя, потом выбрать точку старта, потом писать код.

Компоненты ищутся командой tsci search, в том числе с флагами --digikey и --mouser, когда важны склад и артикул поставщика. Ставятся они через tsci add <author/pkg> или tsci import <query>. Для USB-C скилл советует встроенный синтаксис <connector standard="usb_c" /> вместо импорта с JLCPCB. Схему он разбивает на листы и секции через <schematicsheet> и <schematicsection>, а на крупных проектах группирует компоненты по функциям — питание, MCU, ввод-вывод.

Проверки идут по цепочке: tsci check netlist до проверок размещения, затем tsci check schematic-placement и tsci check placement, и только после них tsci build. Отдельно есть tsci check shorts — он ищет лишние перемычки между медными группами и на найденной короткой замыкании выходит с ненулевым кодом. Этот провал не стоит списывать на общее предупреждение DRC: смотрите checks/check-shorts/bitmap.png и правьте медь. Скилл требует использовать встроенный автотрассировщик и документированные API, а свой роутер писать только по прямой просьбе.

Какие задачи решает

  • собрать схему устройства из React-компонентов
  • подобрать корпус и артикул под склад поставщика
  • развести дорожки встроенным автотрассировщиком
  • поймать короткое замыкание между медными группами до отправки на фабрику
  • разложить крупную схему по листам и секциям

Примеры запросов агенту

  • Собери схему buck-преобразователя на 5 В в tscircuit
  • Найди USB-C разъём через tsci search и добавь его в проект
  • Прогони tsci check placement и почини нарушения размещения

Как установить tscircuit

1Через Skills CLI (Vercel)

npx skills add tscircuit/skill --skill tscircuit -a claude-code

2Вручную: положить файлы

~/.claude/skills/tscircuit/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/tscircuit/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Похожие

librarian diodeinc Создаёт и чинит переиспользуемые пакеты компонентов и модулей в реестре печатных плат: символы, посадочные места, схемы включения. CX Codex +1 539установок kicad aklofas Анализирует проекты KiCad версий 5–10 и схемы в PDF, сверяет трассировку и проверяет плату перед заказом на производстве. CX Codex +1 1 100установок datasheets aklofas Извлекает характеристики и цоколёвку микросхем из PDF-даташитов в структурированный JSON для анализа схем. CX Codex +1 600установок dse-loop wanshuiyin Гоняет программу по кругу: запуск, разбор результата, подбор новых параметров. Останавливается, когда цель достигнута или вышло время. CX Codex +1 491установок zener-language diodeinc Помогает читать и править Zener HDL для схем, компонентов, пакетов и зависимостей. Нужен при работе с файлами .zen и проектами PCB. CX Codex +1 1 700установок easyeda-api JLCEDA Управляет EasyEDA через API: работает с платами, схемами, библиотеками и проектами. Нужен для отладки и разработки расширений в запущенном клиенте. CX Codex +1 610установок

Рядом в теме «Языки программирования»

Все скиллы по теме «Языки программирования» →

Вопросы о tscircuit

Как установить tscircuit в Claude?

Выполните npx skills add tscircuit/skill --skill tscircuit -a claude-code. Скилл окажется в ~/.claude/skills/tscircuit/SKILL.md.

Что делает tscircuit?

Ведёт агента по проектированию электроники на tscircuit: подбор компонентов и корпусов, соединения, размещение на плате, трассировка, проверки и экспорт для производства.

Можно ли писать свой автотрассировщик?

Скилл просит использовать встроенный автотрассировщик и документированные API. Собственный роутер он предлагает писать только тогда, когда вы прямо об этом попросите.

Исходный текст

SKILL.md · MIT
---
name: tscircuit
description: Use this skill when creating, editing, or debugging electronic circuits, schematics, or PCB layouts with tscircuit, including React/TypeScript circuit code. Invoke for component and footprint selection, electrical connections, schematic organization, PCB placement, trace routing, routing failures, design checks, and fabrication exports—even when the user does not mention the CLI. Use tscircuit's built-in autorouting and documented APIs; do not implement a custom router unless the user explicitly requests one.
allowed-tools: Read, Write, Grep, Glob, Bash
---

# 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

1) 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)

2) 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.

3) Find and install components
- Use `tsci search "<query>"` to discover footprints and tscircuit registry packages.
- Use `tsci search --digikey "<query>"` or `tsci search --mouser "<query>"` when distributor stock and supplier part numbers matter. Both flags can be combined, and `--json` provides machine-readable results.
- 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.
- DigiKey and Mouser search results are for part discovery; `tsci import` does not directly import from those distributors.

4) Write/modify TSX circuit code
- Keep circuits as a default-exported function that returns JSX.
- Nearly every schematic should be broken up using `<schematicsheet>` and `<schematicsection>` to organize related circuitry into clear, readable sheets and sections.
- Read `FOOTPRINTS.md` before writing custom footprint TSX; prefer a footprinter string when one matches the package.
- 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`.
- When one large chip needs to appear on multiple schematic sheets, declare the `<chip />` once before the sheets, then use one `<schematicbox chipRef=".U1" />` per sheet. Either nest each box inside its `<schematicsheet />`, or keep the elements as siblings and assign the box with `schSheetName`. Pass only that sheet's labels to the box and keep connections addressed to the original chip, such as `U1.VCC`. See the [`<schematicbox />` reference](./elements/schematicbox.md#split-one-chip-across-multiple-schematic-sheets).
- Use `<antenna />` for a placed, open-ended PCB antenna. Give it a one-pad footprint, define its local copper geometry with `pcbPath`, and connect the circuit to its `.feed` port with a separate `<trace />`. See the [`<antenna />` reference](./elements/antenna.md).
- For fixed-layer bus interconnects, use `<autoroutingphase autorouter="bus_lanes" connections={[...]} />`. Read [Bus-lanes routing](./BUS_LANES.md) for endpoint selectors, fanout handoffs, length matching, and unsupported cases. Keep width and skew settings on `<bus />`; preserve the phase output for later global routing.
- Use `<fanout autorouter="dogbone" fanoutRoutingLayers={["inner2"]}>` for local BGA pad-to-via escapes, including connected VCC/GND pads. [Details](https://docs.tscircuit.com/elements/fanout#local-dogbones).
- For pre-generated fanout routes, use `<fanout pcbTracePaths={savedPaths}>` (or `<breakout>`). Read [Saved fanout trace paths](./SAVED_FANOUT_PATHS.md) for JSON imports, local coordinates, complete coverage, and via endpoints with `allowViaInPad`.
- Use `<board routeRemaining={false}>` to skip implicit routing of remaining connections while keeping explicit routing phases and breakouts. Unrouted connections still produce DRC errors; `true` or omission keeps normal remaining routing. Nested subcircuits inherit the setting.
- Use `<trace />` for connectivity; prefer net connections (`net.GND`, `net.VCC`, etc.) for power/ground.

5) Build and iterate
- Use `tsci check source [file]` for source diagnostics and `tsci check pin_specification [file]` for pin requirements before layout.
- 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 <pinOrNetRef> [file]` to inspect lengths for a pin or net, such as `R1.pin1` or `net.GND`. Source inputs are routed before analysis; prebuilt Circuit JSON is also accepted.
- 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.
- When routing looks suspicious, run
  `tsci build [file] --autorouter-debug --autorouter-debug-dir dist/autorouter-debug`
  and inspect `placement-unrouted.png` plus each cumulative
  `phase-N-routed.png`. Add `--autorouter-dump-srj all` when the
  SimpleRouteJson input and output for every stage is also needed.
- After routing, run `tsci check shorts [file]` to detect unintended shorts between separate PCB copper groups. Omit `[file]` to use the project entrypoint; a prebuilt `*.circuit.json` file is also accepted.
- A detected short makes `tsci check shorts` exit nonzero. Inspect `checks/check-shorts/bitmap.png` and `checks/check-shorts/pcb.svg`, fix the implicated copper, then rerun the check. Do not dismiss this failure as a generic DRC warning.
- After routing, run `tsci check pcb-style [file]` for long odd-angle runs and unnecessary stair stepping. Use the default rules, inspect the counted overview in `checks/check-pcb-style/pcb.svg`, and fix the routing; subdividing trace points does not resolve a style issue.
- The default shorts check analyzes Gerber-derived copper on all available copper layers. Use `--mode pcb` for PCB geometry, `--layer top` or `--layer bottom` to narrow the scope, and `--pixels-per-mm <number>` only when a different bitmap resolution is needed.
- 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).

6) 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 check shorts` after routing and before sharing, publishing, or producing fabrication outputs. Resolve every reported short before proceeding.
- Run `tsci check pcb-style` and review the highlighted routing issues before sharing or exporting. See `CLI.md` for the check commands and output options.
- 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

- [`<analogsimulation />`](./elements/analogsimulation.md)
- [`<antenna />`](./elements/antenna.md)
- [`<assembly.device />`](./elements/assemblydevice.md)
- [`<battery />`](./elements/battery.md)
- [`<board />`](./elements/board.md)
- [`<breakout />`](./elements/breakout.md)
- [`<breakoutpoint />`](./elements/breakoutpoint.md)
- [`<cadassembly />`](./elements/cadassembly.md)
- [`<cadmodel />`](./elements/cadmodel.md)
- [`<capacitor />`](./elements/capacitor.md)
- [`<chip />`](./elements/chip.md)
- [`<connector />`](./elements/connector.md)
- [`<constraint />`](./elements/constraint.md)
- [`<copperpour />`](./elements/copperpour.md)
- [`<coppertext />`](./elements/coppertext.md)
- [`<courtyardcircle />`](./elements/courtyardcircle.md)
- [`<courtyardoutline />`](./elements/courtyardoutline.md)
- [`<courtyardpill />`](./elements/courtyardpill.md)
- [`<courtyardrect />`](./elements/courtyardrect.md)
- [`<crystal />`](./elements/crystal.md)
- [`<currentsource />`](./elements/currentsource.md)
- [`<cutout />`](./elements/cutout.md)
- [`<diode />`](./elements/diode.md)
- [`<enclosure.cutoutaperture />`](./elements/enclosurecutoutaperture.md)
- [`<enclosure.fdm.box />`](./elements/enclosurefdmbox.md)
- [`<fabricationnotedimension />`](./elements/fabricationnotedimension.md)
- [`<fabricationnotepath />`](./elements/fabricationnotepath.md)
- [`<fabricationnoterect />`](./elements/fabricationnoterect.md)
- [`<fabricationnotetext />`](./elements/fabricationnotetext.md)
- [`<fiducial />`](./elements/fiducial.md)
- [`<footprint />`](./elements/footprint.md)
- [`<fuse />`](./elements/fuse.md)
- [`<group />`](./elements/group.md)
- [`<hole />`](./elements/hole.md)
- [`<inductor />`](./elements/inductor.md)
- [`<jumper />`](./elements/jumper.md)
- [`<keepout />`](./elements/keepout.md)
- [`<led />`](./elements/led.md)
- [`<mosfet />`](./elements/mosfet.md)
- [`<mountedboard />`](./elements/mountedboard.md)
- [`<net />`](./elements/net.md)
- [`<netalias />`](./elements/netalias.md)
- [`<netlabel />`](./elements/netlabel.md)
- [`<opamp />`](./elements/opamp.md)
- [`<panel />`](./elements/panel.md)
- [`<pcbnotedimension />`](./elements/pcbnotedimension.md)
- [`<pcbnoteline />`](./elements/pcbnoteline.md)
- [`<pcbnotepath />`](./elements/pcbnotepath.md)
- [`<pcbnoterect />`](./elements/pcbnoterect.md)
- [`<pcbnotetext />`](./elements/pcbnotetext.md)
- [`<pcbtrace />`](./elements/pcbtrace.md)
- [`<pinheader />`](./elements/pinheader.md)
- [`<pinout />`](./elements/pinout.md)
- [`<platedhole />`](./elements/platedhole.md)
- [`<port />`](./elements/port.md)
- [`<potentiometer />`](./elements/potentiometer.md)
- [`<pushbutton />`](./elements/pushbutton.md)
- [`<resistor />`](./elements/resistor.md)
- [`<resonator />`](./elements/resonator.md)
- [`<schematicarc />`](./elements/schematicarc.md)
- [`<schematicbox />`](./elements/schematicbox.md)
- [`<schematiccell />`](./elements/schematiccell.md)
- [`<schematiccircle />`](./elements/schematiccircle.md)
- [`<schematicline />`](./elements/schematicline.md)
- [`<schematicpath />`](./elements/schematicpath.md)
- [`<schematicrect />`](./elements/schematicrect.md)
- [`<schematicrow />`](./elements/schematicrow.md)
- [`<schematicsection />`](./elements/schematicsection.md)
- [`<schematictable />`](./elements/schematictable.md)
- [`<schematictext />`](./elements/schematictext.md)
- [`<silkscreencircle />`](./elements/silkscreencircle.md)
- [`<silkscreenline />`](./elements/silkscreenline.md)
- [`<silkscreenpath />`](./elements/silkscreenpath.md)
- [`<silkscreenrect />`](./elements/silkscreenrect.md)
- [`<silkscreentext />`](./elements/silkscreentext.md)
- [`<smtpad />`](./elements/smtpad.md)
- [`<solderjumper />`](./elements/solderjumper.md)
- [`<subcircuit />`](./elements/subcircuit.md)
- [`<subpanel />`](./elements/subpanel.md)
- [`<switch />`](./elements/switch.md)
- [`<symbol />`](./elements/symbol.md)
- [`<testpoint />`](./elements/testpoint.md)
- [`<trace />`](./elements/trace.md)
- [`<tracehint />`](./elements/tracehint.md)
- [`<transistor />`](./elements/transistor.md)
- [`<via />`](./elements/via.md)
- [`<voltageprobe />`](./elements/voltageprobe.md)
- [`<voltagesource />`](./elements/voltagesource.md)

© tscircuit · MIT · tscircuit/skill

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой