A CLI tool for interacting with the freerouting API, maintained by tscircuit.
npm install -g freerouting
Before using the CLI, you need to configure your profile ID. The easiest way is to generate a new one:
freerouting config create-profile
Alternatively, you can set a specific UUID as your profile ID:
freerouting config set-profile <uuid>
You can also optionally set a custom API base URL (defaults to https://api.freerouting.app):
freerouting config set-api-url <api-url>
The CLI follows a typical workflow for PCB autorouting:
# Create a new session
freerouting session create
# Create a new job in the session
freerouting job create --name "my-board"
# Upload your DSN file
freerouting job upload --file my-board.dsn
# Start the routing process
freerouting job start
# Get the routed output (saves to the same filename by default)
freerouting job output
Want to run freerouting locally?
freerouting server start
This will pull the latest docker image, start a local server on port 37864,
then configure your api url to http://localhost:37864
. To reset your api url
just do freerouting config reset
session create
- Create a new routing sessionsession list
- List all your sessionssession get [sessionId]
- Get details of a specific sessionjob create
- Create a new routing job
-s, --session-id <sessionId>
- Session ID (uses last session by default)-n, --name <name>
- Job name (default: "untitled")-p, --priority <priority>
- Job priority (default: "NORMAL")job list <sessionId>
- List all jobs in a sessionjob get <jobId>
- Get details of a specific jobjob upload
- Upload a design file
-f, --file <file>
- Path to your DSN file-j, --job-id <jobId>
- Job ID (uses last job by default)job start [jobId]
- Start the routing processjob output [jobId]
- Get the routed output
-o, --output <file>
- Custom output file pathsystem status
- Check the API system statusconfig set-profile <profileId>
- Set your profile IDconfig set-api-url <apiBaseUrl>
- Set custom API base URLWe are not affiliated with the freerouting project beyond sponsoring it! If the freerouting project wants us to give the npm handle for a more official cli just reach out to @seveibar!