Skip to main content
Contributing

User-Facing Tools

tscircuit is made of several packages and applications, but most users only need a small set of tools while designing, previewing, routing, importing, and sharing circuit boards.

Tool Map

ToolWhat users use it forWhere it fits
tscircuit.comWriting circuits in the online editor, previewing boards, sharing snippets, and ordering prototypesThe primary browser-based product
tsci CLICreating local projects, running a local preview server, exporting fabrication files, and publishing packagesLocal development and automation
RunFrameEmbedding runnable tscircuit examples inside documentation, apps, and playgroundsInteractive previews inside React apps
PCB ViewerDisplaying rendered PCB layers and inspecting board geometryBoard visualization
3D ViewerShowing a 3D preview of assembled boardsMechanical and assembly review
Autorouting.comRouting traces automatically and experimenting with autorouting algorithmsRouting assistance
JLCPCB SearchFinding JLCPCB parts and importing component data into a tscircuit projectComponent sourcing
FootprinterGenerating footprint definitions from compact footprint stringsFootprint authoring
ConvertersImporting or exporting formats such as KiCad, EasyEDA, DSN, and Circuit JSONMoving designs between ecosystems

Online Editor

The online editor at tscircuit.com is the fastest place to try tscircuit. Users can edit TypeScript circuit code, preview the schematic, PCB, and 3D assembly, then share the result as a snippet.

Use the online editor when you want to:

  • Start a board without installing local tooling
  • Share a minimal reproduction in an issue or discussion
  • Import a template board or component and adjust it visually
  • Download fabrication files for a prototype

Command Line

The tsci command line tool is the main local workflow for tscircuit projects. It is useful when a board needs to live in a repository, use multiple files, run in CI, or generate repeatable build artifacts.

Common commands include:

CommandPurpose
tsci initCreate a new tscircuit project
tsci devStart a local development server with live previews
tsci buildBuild a project and generate artifacts
tsci exportExport fabrication files or other output formats
tsci pushPublish a package or project
tsci add / tsci installAdd packages, GitHub libraries, or KiCad libraries

Embeddable Viewers

tscircuit exposes viewer packages so other apps and docs can render circuit outputs without rebuilding the whole editor.

PackageUse it when
runframeYou need an interactive code-and-preview frame, such as examples inside docs
pcb-viewerYou only need to render PCB layers from Circuit JSON
3d-viewerYou need a 3D board or assembly preview
circuit-to-svgYou need SVG output for schematics, PCBs, or documentation assets

These tools are usually fed by Circuit JSON, the intermediate format produced by tscircuit.

Routing and Layout

Autorouting.com and the tscircuit autorouting packages help users route traces automatically. This is useful for quick iterations, early board layout, and reproducing autorouter bugs.

When working on routing issues, include:

  • A link to the tscircuit snippet or project
  • The Circuit JSON or minimal circuit code
  • Screenshots of the problematic route
  • Any expected constraints, such as board size, layer count, or keep-out areas

Parts and Footprints

tscircuit has several tools for turning real-world parts into usable circuit components.

ToolPurpose
JLCPCB SearchSearch JLCPCB components and use part data while designing
footprinterGenerate footprints from concise footprint strings
propsDefines the supported React component props across tscircuit
schematic-symbolsProvides symbols used in schematic rendering

Converters

Converters help users move designs and component data between tscircuit and other electronics tools.

ConverterPurpose
kicad-component-converterConvert KiCad component data for use in tscircuit
easyeda-converterConvert EasyEDA and JLCPCB component data
dsn-converterConvert Specctra DSN files for routing and visualization workflows
circuit-jsonUse the shared intermediate representation for rendered circuits

Core Libraries

Most users do not import core libraries directly unless they are building tools around tscircuit. Contributors should still know where the main pieces live:

RepositoryRole
coreConverts React component trees into Circuit JSON
propsDefines component prop types and shared schemas
circuit-jsonDefines the output format used by viewers, exporters, and converters
math-utilsShared geometry and layout helpers

Choosing the Right Tool

GoalStart with
Try tscircuit for the first timetscircuit.com
Build a real project locallytsci init and tsci dev
Share a bug reproductionA tscircuit snippet or a small GitHub repo
Preview a board inside another appRunFrame, PCB Viewer, or 3D Viewer
Import a part from JLCPCBJLCPCB Search or the EasyEDA converter
Debug routingAutorouting.com plus a minimal Circuit JSON example
Contribute to the ecosystemStart with the related repository in the tool map