A CLI for developing, managing and publishing tscircuit code (the "npm for tscircuit")
The.tscircuit.Command.Line.Tool.mp4
# Start a local server that watches for changes in
# this file or it's dependencies and updates the
# browser preview
tsci dev ./path/to/file.tsx
# Clone a package from the registry
tsci clone author/packageName
# Add a component from tscircuit.com
tsci add author/component-name
Note: The packages CLI uses the same configuration files as the @tscircuit/cli, so you may need to also install
npm install -g @tscircuit/cli
and runtsci login
to authenticate!
npm install -g @tscircuit/cli
Usage: tsci [options] [command]
CLI for developing tscircuit packages
Options:
-h, --help display help for command
Commands:
init [directory] Initialize a new TSCircuit project in the
specified directory (or current directory if none
is provided)
dev [options] [file] Start development server for a package
clone [options] <package> Clone a package from the registry
push [options] [file] Save snippet code to Registry API
auth Login/logout
login Login to tscircuit registry
logout Logout from tscircuit registry
config Manage tscircuit CLI configuration
export [options] <file> Export tscircuit code to various formats
build [options] [file] Run tscircuit eval and output circuit json
add <component> Add a tscircuit component package to your project
remove <component> Remove a tscircuit component package from your
project
snapshot [options] Generate schematic and PCB snapshots
setup Setup utilities like GitHub Actions
upgrade Upgrade CLI to the latest version
search <query> Search for packages in the tscircuit registry
version Print CLI version
help [command] display help for command
The build
command also accepts the following options:
--ignore-errors
- continue build even if circuit JSON contains errors--ignore-warnings
- suppress warning output
This command will open the index.tsx
file for editing.
bun run dev
When you run tsci dev
, we start a local
server that uses the @tscircuit/file-server and @tscircuit/runframe (on the browser)
We use commanderjs to define the CLI commands inside
of cli/main.ts
Utility functions are defined in lib/*
Use the RUNFRAME_STANDALONE_FILE_PATH
environment variable to point to the runframe standalone file. You will still need to run bun run build
inside
runframe each time you'd like to load a new version of runframe.
export RUNFRAME_STANDALONE_FILE_PATH=../runframe/dist/standalone.min.js
cd ../runframe && bun run build
cd ../cli && bun run dev