Overview of Projects
tscircuit is split into focused repositories. Use this page to route an issue or pull request to the repo that owns the behavior you want to change.
Quick Chooser
| If you want to work on... | Start here |
|---|---|
React elements such as <board />, <chip />, traces, nets, or layout behavior | tscircuit/core |
| TypeScript props accepted by tscircuit elements | tscircuit/props |
| The shared circuit data format emitted by tscircuit | tscircuit/circuit-json |
| Schematic or PCB SVG rendering | tscircuit/circuit-to-svg |
| Footprint strings and footprint parsing | tscircuit/footprinter |
| Schematic symbols | tscircuit/schematic-symbols |
| The online editor, package pages, accounts, or dashboard UI | tscircuit/tscircuit.com |
Local commands such as tsci dev, tsci build, or tsci export | tscircuit/cli |
| Embedded previews used in docs and external sites | tscircuit/runframe |
| PCB viewer interaction or rendering | tscircuit/pcb-viewer |
| 3D board previews and model loading | tscircuit/3d-viewer |
| Autorouting algorithms or routing benchmark cases | tscircuit/autorouting |
| The autorouting web interface | tscircuit/autorouting.com |
| EasyEDA, JLCPCB, KiCad, Eagle, or DSN import/export | The converter repos listed below |
| Documentation, tutorials, and contribution guides | tscircuit/docs |
Core Libraries
| Repo | What it owns | Good contributions | Open issues |
|---|---|---|---|
| tscircuit/core | Converts React components into Circuit JSON, schematics, and PCB outputs. | Element behavior, layout logic, routing inputs, regression tests. | |
| tscircuit/props | TypeScript prop definitions for tscircuit elements. | Prop additions, prop docs, stricter element typing. | |
| tscircuit/circuit-json | The shared data format for circuits, boards, schematic elements, and manufacturing outputs. | Schema changes, validators, fixtures, compatibility notes. | |
| tscircuit/circuit-to-svg | Converts Circuit JSON into schematic and PCB SVGs. | Snapshot fixes, renderer bugs, visual output improvements. |
Authoring Tools
| Repo | What it owns | Good contributions | Open issues |
|---|---|---|---|
| tscircuit/cli | The tsci command line workflow for local development, package commands, exports, and builds. | Command bugs, clearer errors, package workflow fixes, export options. | |
| tscircuit/docs | Documentation, tutorials, guides, API references, and examples. | Missing docs, clearer examples, docs navigation, contribution guides. | |
| tscircuit/runframe | Embeddable React runtime for previewing and running tscircuit code. | Preview runtime bugs, iframe behavior, editor integration, loading states. |
Viewers and Web Apps
| Repo | What it owns | Good contributions | Open issues |
|---|---|---|---|
| tscircuit/tscircuit.com | Main website, online editor, account flows, package pages, and app UI. | Editor bugs, UI polish, dashboard flows, package discovery. | |
| tscircuit/pcb-viewer | React PCB viewer used by docs, previews, and apps. | Layer controls, interaction bugs, board rendering, viewer performance. | |
| tscircuit/3d-viewer | 3D board and component previews. | Model loading, camera behavior, 3D rendering, lighting, performance. | |
| tscircuit/autorouting.com | Web interface for autorouting experiments and debugging. | Route visualization, job status UX, debug views, integration fixes. |
Symbols, Footprints, and Converters
| Repo | What it owns | Good contributions | Open issues |
|---|---|---|---|
| tscircuit/schematic-symbols | Reusable schematic symbols. | Missing symbols, symbol metadata, test fixtures, examples. | |
| tscircuit/footprinter | Generates PCB footprints from footprint strings. | New footprints, parser fixes, footprint snapshots. | |
| tscircuit/easyeda-converter | Converts EasyEDA and JLCPCB data into tscircuit-compatible output. | Import bugs, part mapping, footprint conversion. | |
| tscircuit/kicad-converter | Converts KiCad data for tscircuit workflows. | KiCad import/export fixes, library conversion coverage. | |
| tscircuit/eagle-xml-converter | Converts Eagle XML files into tscircuit-compatible data. | Eagle import coverage, converter bugs, fixture tests. | |
| tscircuit/dsn-converter | Converts Specctra DSN files into Circuit JSON. | DSN parsing, autorouter import/export compatibility, fixtures. |
Autorouting and Community Infrastructure
| Repo | What it owns | Good contributions | Open issues |
|---|---|---|---|
| tscircuit/autorouting | Autorouting algorithms, datasets, benchmarks, and route problem definitions. | Algorithm improvements, reduced route failures, benchmark cases. | |
| tscircuit/contribution-tracker | Contribution summaries and sponsorship signals. | Scoring logic, contribution ingestion, dashboard data fixes. |
Before Opening a PR
- Search the target repo's open issues first, then link the issue in your PR.
- Include a small reproduction, fixture, or screenshot when changing visual output.
- Put type or schema changes in
propsorcircuit-jsonbefore wiring them intocore. - Keep docs examples aligned with current element names and props.
- If a bug crosses repos, open the PR in the repo that owns the failing behavior and mention any follow-up repos in the description.