CircuitHub

CLI Command Reference

Complete reference for all circuithub CLI commands.

Commands that accept <project> support both numeric project IDs and project names. When using a project name, pass --workspace to disambiguate it. Commands that accept <order-id>, <quote-id>, or <invoice-id> require numeric IDs.

auth login

Open a browser to authenticate with CircuitHub. Captures a JWT and stores it locally.

circuithub auth login

The CLI starts a local HTTP server, opens your browser to the login page, and captures the token via a localhost callback. The token is valid for 24 hours and stored in ~/.config/circuithub/credentials.json.

auth logout

Remove stored credentials.

circuithub auth logout

auth status

Show current authentication status.

circuithub auth status

Output includes: username, user ID, API URL, token expiration, and whether the token is still valid.

workspace list

List workspaces you belong to.

circuithub workspace list [--json]
FlagDescription
--jsonOutput full API response as JSON
ColumnDescription
SlugURL-safe workspace identifier
NameDisplay name

project list

List projects you have access to.

circuithub project list --workspace <slug> [--json]
FlagShortDescription
--workspace-wRequired. Workspace slug
--jsonOutput full API response as JSON
ColumnDescription
IDProject ID
REVLatest revision number
NAMEProject name

project bom list

Show the Bill of Materials for a project.

circuithub project bom list <project> --workspace <slug> [--json]
ArgumentDescription
<project>Project ID (numeric) or project name
FlagShortDescription
--workspace-wRequired. Workspace slug
--jsonOutput full BOM detail as JSON

Default output is a formatted table with columns: Part, Footprint, Qty, Match. Includes a summary line with total/resolved/unresolved/errored counts.

project bom set-part

Set the part for a BOM line. Positional argument order is: BOM line ID, then part ID. Use project bom list to find the BOM line ID and part search to find the part ID.

circuithub project bom set-part <bom-line-id> <part-id> [--json]

# Example
circuithub project bom set-part 1003 5001
circuithub project bom set-part 1003 5001 --json
ArgumentDescription
<bom-line-id>Required. BOM line ID from project bom list
<part-id>Required. Part ID from part search
FlagDescription
--jsonOutput full API response as JSON
ColumnDescription
BOMBOM line ID
MATCHMatch result — MPN and manufacturer, or "not found"

project bom set-dnp

Mark a placement as Do Not Place (DNP). Positional argument order is: BOM line ID, then reference designator. A DNP placement will not be assembled or purchased.

circuithub project bom set-dnp <bom-line-id> <ref> [--json]

# Example
circuithub project bom set-dnp 1001 C3
circuithub project bom set-dnp 1001 C3 --json
ArgumentDescription
<bom-line-id>Required. BOM line ID from project bom list
<ref>Required. Reference designator to mark
FlagDescription
--jsonOutput full API response as JSON

project bom clear-dnp

Clear Do Not Place (DNP) for a placement. Positional argument order is: BOM line ID, then reference designator.

circuithub project bom clear-dnp <bom-line-id> <ref> [--json]

# Example
circuithub project bom clear-dnp 1001 C3
circuithub project bom clear-dnp 1001 C3 --json
ArgumentDescription
<bom-line-id>Required. BOM line ID from project bom list
<ref>Required. Reference designator to restore to fit
FlagDescription
--jsonOutput full API response as JSON

project show

Show details for a single project.

circuithub project show 12345
circuithub project show "Power Supply Board"
circuithub project show 12345 --json
ArgumentDescription
<project>Project ID (numeric) or project name
FlagDescription
--jsonOutput full API response as JSON

Output shows project fields in key-value format including project name, ID, description, timestamps, latest revision number, and import status.

project create

Create a new project by uploading EDA files. The path can be a file or a directory — when a directory is given, the CLI auto-collects all supported files including BOM CSVs.

circuithub project create power-supply-board ./my-board.kicad_pcb --workspace acme-electronics
circuithub project create power-supply-board ./my-board/ --workspace acme-electronics --wait
circuithub project create power-supply-board ./my-board.kicad_pcb --workspace acme-electronics --json
ArgumentDescription
<name>Project name
<path>Path to an EDA file or directory of EDA and BOM files
FlagDescription
--workspaceRequired. Workspace slug
--waitBlock until import completes
--jsonOutput full API response as JSON

project revision create

Upload EDA and BOM files as a new revision on an existing project.

circuithub project revision create 12345 ./my-board-v2.kicad_pcb
circuithub project revision create "Power Supply Board" ./my-board-v2/ --workspace acme-electronics
circuithub project revision create 12345 ./my-board-v2/ --wait
circuithub project revision create 12345 ./my-board-v2.kicad_pcb --json
ArgumentDescription
<project>Project ID (numeric) or project name
<path>Path to an EDA file or directory of EDA and BOM files
FlagDescription
--workspaceWorkspace slug (required when using project name)
--waitBlock until import completes
--jsonOutput full API response as JSON

project status

Check the import status of a project. Exit codes: 0 = complete, 1 = failed, 2 = importing.

circuithub project status 12345
ArgumentDescription
<project>Project ID (numeric) or project name
FlagDescription
--jsonOutput full API response as JSON

Output: Project 12345: complete

project watch

Poll import status until the project finishes importing.

circuithub project watch 12345
circuithub project watch "Power Supply Board" --workspace acme-electronics
circuithub project watch 12345 --timeout 5m
ArgumentDescription
<project>Project ID (numeric) or project name
FlagDescription
--workspaceWorkspace slug (required when using project name)
--timeoutMaximum time to wait (default: 5m). Accepts Go duration strings like 5m, 1h

project revision list

List revisions of a project.

circuithub project revision list 12345 [--json]
ArgumentDescription
<project>Project ID (numeric) or project name
FlagDescription
--workspaceWorkspace slug (required when using project name)
--jsonOutput full API response as JSON
ColumnDescription
REVRevision number
IDRevision ID
CREATEDCreation timestamp

quote request

Quoting is coming soon. The commands below describe the planned interface — they are not yet available.

Request pricing for a project or revision. Generates a new quote or returns a cached one.

circuithub quote request --project <project-id> [--json]
circuithub quote request --revision <revision-id> [--json]

Provide exactly one of --project or --revision. Returns a cached quote if one is still valid for the same revision, otherwise generates a new one.

FlagDescription
--projectProject ID — uses the latest revision
--revisionSpecific revision ID to quote
--jsonOutput full API response as JSON

Default output shows a header with project info and quote expiry, followed by a pricing table:

ColumnDescription
QTYNumber of assembled boards
DAYSLead time in business days
BOARDSPCB fabrication cost
PARTSElectronic components cost
ASSEMBLYAssembly labor cost
TOTALTotal cost
$/UNITPer-board cost

quote breakdown

Quoting is coming soon. The commands below describe the planned interface — they are not yet available.

Show a detailed cost breakdown for a specific quantity and lead time from a quote.

circuithub quote breakdown <quote-id> --quantity <n> --lead-time <days> [--json]
ArgumentDescription
<quote-id>Quote ID (numeric)
FlagDescription
--quantityRequired. Board quantity matching an offer
--lead-timeRequired. Lead time in business days matching an offer
--jsonOutput full API response as JSON
ColumnDescription
TYPELine type (e.g. part)
DESCRIPTIONLine item description
QTYOrder quantity (includes attrition)
UNIT PRICECost per unit
TOTALLine total
SUPPLIERDistributor name

Search for parts by MPN or description.

circuithub part search <query> [--json]
ArgumentDescription
<query>MPN or description to search for
FlagDescription
--jsonOutput full API response as JSON

Default output is a formatted table with columns: MPN, Manufacturer, Description, Available. Exact matches are listed first, separated from inexact matches by a horizontal line.

order list

List orders for a workspace.

circuithub order list --workspace acme-electronics
FlagDescription
--workspaceRequired. Workspace slug
ColumnDescription
IDOrder ID
StatusOrder status
DateCreation date
QtyNumber of boards ordered
PaymentPayment status
ProjectProject name

order show

Show details for a single order.

circuithub order show 8001
ArgumentDescription
<order-id>Order ID (numeric)
FlagDescription
--jsonOutput full API response as JSON

Output shows order fields in key-value format: Order, URN, Name, Status, Quantity, Value, Payment, PO, Project, Created, Quoted, and (when present) Est ship, Shipped, Tracking.

issue list

Issues are coming soon. The commands below describe the planned interface — they are not yet available.

List issues across your orders.

circuithub issue list --workspace <slug> [--order <order-id>] [--status <status>] [--json]
FlagDescription
--workspaceRequired. Workspace slug
--orderFilter by order ID
--statusFilter by status: open, closed
--jsonOutput full API response as JSON
ColumnDescription
IDIssue ID
PROJECTProject name
ORDEROrder ID
TITLEShort summary
STATUSopen or closed
CREATED BYEmail of the user who created the issue
CREATEDCreation timestamp

issue create

Issues are coming soon. The commands below describe the planned interface — they are not yet available.

Create a new issue on an order.

circuithub issue create <order-id> --title "Issue title" [--comment "Initial comment"] [--json]
ArgumentDescription
<order-id>Order ID to file the issue against
FlagDescription
--titleRequired. Short summary of the issue
--commentOptional initial comment
--jsonOutput full API response as JSON

billing invoice list

Billing is coming soon. The billing commands below describe the planned interface — they are not yet available.

List invoices for a workspace.

circuithub billing invoice list --workspace <slug> [--status <status>] [--from <date>] [--to <date>]
FlagDescription
--workspaceRequired. Workspace slug
--statusFilter: open, paid_in_full, approved_for_posting, fully_applied
--fromStart date (ISO 8601)
--toEnd date (ISO 8601)
ColumnDescription
IDInvoice transaction ID
NAMEInvoice number
TYPEorder_shipment, charge, credit_memo, or custom
TOTALTotal amount
STATUSPayment status
DUE DATEPayment due date

billing invoice show

Show details for a single invoice, or download it as PDF.

circuithub billing invoice show <invoice-id> --workspace <slug>
# download PDF
circuithub billing invoice show <invoice-id> --workspace <slug> --download [--output <dir>]
ArgumentDescription
<invoice-id>Invoice transaction ID (numeric)
FlagDescription
--workspaceRequired. Workspace slug
--downloadDownload as PDF instead of showing details
--outputDirectory to save the PDF (default: current directory)

billing statement

Download a PDF statement for a date range.

circuithub billing statement --workspace <slug> --from <date> --to <date> [--output <dir>]
FlagDescription
--workspaceRequired. Workspace slug
--fromRequired. Start date (ISO 8601)
--toRequired. End date (ISO 8601)
--outputDirectory to save the PDF (default: current directory)

billing payment list

List payments for a workspace.

circuithub billing payment list --workspace <slug>
FlagDescription
--workspaceRequired. Workspace slug
ColumnDescription
IDPayment transaction ID
NAMEPayment reference number
DATEPayment date
AMOUNTPayment amount
METHODcard, net_terms, or wire
INVOICESLinked invoice names
STATUSapplied or pending

billing payment-method list

List payment methods configured for a workspace.

circuithub billing payment-method list --workspace <slug>
FlagDescription
--workspaceRequired. Workspace slug
ColumnDescription
TYPEcard, net_terms, or wire
DETAILSCard brand and last 4 digits, or terms type
DEFAULTWhether this is the default method

billing balance

Show credit balance and limit for a workspace.

circuithub billing balance --workspace <slug>
FlagDescription
--workspaceRequired. Workspace slug

Shows current balance, credit limit, and available credit. If no credit is enabled for the workspace, shows a message indicating so.

On this page