Complete reference for all circuithub CLI commands.
Commands that accept <project> support both numeric project IDs and project names. A project name must be given with --workspace, the workspace that owns it. Commands that accept <order-id>, <quote-id>, or <invoice-id> require numeric IDs.
Open a browser to authenticate with CircuitHub. Captures a JWT and stores it locally.
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.
Remove stored credentials.
Show current authentication status.
Output includes: username, user ID, API URL, token expiration, and whether the token is still valid.
List workspaces you belong to.
circuithub workspace list [--json]
Flag Description --jsonOutput full API response as JSON
Column Description SlugURL-safe workspace identifier NameDisplay name
List projects you have access to.
circuithub project list --workspace < slu g > [--json]
Flag Short Description --workspace-wRequired. Workspace slug--jsonOutput full API response as JSON
Column Description IDProject ID REVLatest revision number NAMEProject name
Show the Bill of Materials for a project.
circuithub project bom list < projec t > --workspace < slu g > [--json]
Argument Description <project>Project ID (numeric) or project name
Flag Short Description --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.
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-i d > < part-i d > [--json]
# Example
circuithub project bom set-part 1003 5001
circuithub project bom set-part 1003 5001 --json
Argument Description <bom-line-id>Required. BOM line ID from project bom list<part-id>Required. Part ID from part search
Flag Description --jsonOutput full API response as JSON
Column Description BOMBOM line ID MATCHMatch result — MPN and manufacturer, or "not found"
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-i d > < re f > [--json]
# Example
circuithub project bom set-dnp 1001 C3
circuithub project bom set-dnp 1001 C3 --json
Argument Description <bom-line-id>Required. BOM line ID from project bom list<ref>Required. Reference designator to mark
Flag Description --jsonOutput full API response as JSON
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-i d > < re f > [--json]
# Example
circuithub project bom clear-dnp 1001 C3
circuithub project bom clear-dnp 1001 C3 --json
Argument Description <bom-line-id>Required. BOM line ID from project bom list<ref>Required. Reference designator to restore to fit
Flag Description --jsonOutput full API response as JSON
Show details for a single project.
circuithub project show 12345
circuithub project show "Power Supply Board" --workspace acme-electronics
circuithub project show 12345 --json
Argument Description <project>Project ID (numeric) or project name
Flag Description --workspaceWorkspace slug that owns the project. Required when <project> is a name --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.
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 --export-classification EAR99
circuithub project create power-supply-board ./my-board/ --workspace acme-electronics --export-classification NotExportControlled --wait
circuithub project create power-supply-board ./my-board.kicad_pcb --workspace acme-electronics --export-classification ECCN --eccn 3A001 --json
Argument Description <name>Project name <path>Path to an EDA file or directory of EDA and BOM files
Flag Description --workspaceRequired. Workspace slug--export-classificationRequired. NotExportControlled, EAR99 or ECCN; choose the declaration that applies to your design--eccnECCN code, such as 3A001. Required with --export-classification ECCN and refused otherwise --waitBlock until import completes --jsonOutput full API response as JSON
Upload EDA and BOM files as a new revision on an existing project.
circuithub project revision create 12345 ./my-board-v2.kicad_pcb --workspace acme-electronics
circuithub project revision create "Power Supply Board" ./my-board-v2/ --workspace acme-electronics
circuithub project revision create 12345 ./my-board-v2/ --workspace acme-electronics --wait
circuithub project revision create 12345 ./my-board-v2.kicad_pcb --workspace acme-electronics --json
Argument Description <project>Project ID (numeric) or project name <path>Path to an EDA file or directory of EDA and BOM files
Flag Description --workspaceWorkspace slug that owns the project (required). The files are uploaded to it, and a project ID from another workspace is refused --waitBlock until import completes --jsonOutput full API response as JSON
Check the import status of a project. Exit codes: 0 = complete, 1 = failed, 2 = importing.
circuithub project status 12345
Argument Description <project>Project ID (numeric) or project name
Flag Description --jsonOutput full API response as JSON
Output: Project 12345: complete
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
Argument Description <project>Project ID (numeric) or project name
Flag Description --workspaceWorkspace slug (required when using project name) --timeoutMaximum time to wait (default: 5m). Accepts Go duration strings like 5m, 1h
List revisions of a project.
circuithub project revision list 12345 [--json]
Argument Description <project>Project ID (numeric) or project name
Flag Description --workspaceWorkspace slug (required when using project name) --jsonOutput full API response as JSON
Column Description REVRevision number IDRevision ID CREATEDCreation timestamp
Request manufacturing offers for one revision and quantity, or reuse a valid cached quote for that selection.
circuithub quote request --revision 99001 --quantity 10 --workspace acme-electronics
Flag Description --revisionRequired. Revision ID --quantityRequired. Positive board quantity --workspaceRequired. Owning workspace; the CLI checks it against the revision --jsonOutput the full quote representation
The API request contains revisionId and quantity; the workspace is identified by the revision rather than sent as an API query parameter.
Output:
Quote: 50001
Revision: 99001 (3)
Quantity: 10
Currency: USD
Orderable: yes
Expires: 2026-11-03T11:00:00Z
OFFER SERVICE SHIP DATE MANUFACTURING TOTAL PER BOARD
880002 priority 2026-11-06 $774.45 $77.45
Manufacturing total excludes shipping and tax.
Retrieve a quote by ID without recalculating it or extending its expiry.
circuithub quote show 50001 --workspace acme-electronics
Output:
Quote: 50001
Revision: 99001 (3)
Quantity: 10
Currency: USD
Orderable: yes
Expires: 2026-11-03T11:00:00Z
OFFER SERVICE SHIP DATE MANUFACTURING TOTAL PER BOARD
880002 priority 2026-11-06 $774.45 $77.45
Manufacturing total excludes shipping and tax.
When the quote has design feedback , both commands print each entry's summary, reasons and docs link after the offers.
Use --json for the full response. See the Quoting guide for offer fields, decimal-string prices, discounts, blockers and expiry. There is no per-part breakdown command.
Search for parts by MPN or description.
circuithub part search < quer y > [--json]
Argument Description <query>MPN or description to search for
Flag Description --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.
List orders for a workspace.
circuithub order list --workspace acme-electronics
Flag Description --workspaceRequired. Workspace slug
Column Description IDOrder ID StatusOrder status DateCreation date QtyNumber of boards ordered PaymentPayment status ProjectProject name
Show details for a single order.
circuithub order show 8001
Argument Description <order-id>Order ID (numeric)
Flag Description --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.
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 < slu g > [--order < order-i d > ] [--status < statu s > ] [--json]
Flag Description --workspaceRequired. Workspace slug--orderFilter by order ID --statusFilter by status: open, closed --jsonOutput full API response as JSON
Column Description IDIssue ID PROJECTProject name ORDEROrder ID TITLEShort summary STATUSopen or closedCREATED BYEmail of the user who created the issue CREATEDCreation timestamp
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-i d > --title "Issue title" [--comment "Initial comment"] [--json]
Argument Description <order-id>Order ID to file the issue against
Flag Description --titleRequired. Short summary of the issue--commentOptional initial comment --jsonOutput full API response as JSON
List invoices for a workspace.
circuithub billing invoice list --workspace < slu g > [--status < statu s > ] [--from < dat e > ] [--to < dat e > ]
Flag Description --workspaceRequired. Workspace slug--statusFilter: open, paid_in_full, approved_for_posting, fully_applied --fromStart date (ISO 8601) --toEnd date (ISO 8601)
Column Description IDInvoice transaction ID NAMEInvoice number TYPEorder_shipment, charge, credit_memo, or customTOTALTotal amount STATUSPayment status DUE DATEPayment due date
Show details for a single invoice, or download it as PDF.
circuithub billing invoice show < invoice-i d > --workspace < slu g >
# download PDF
circuithub billing invoice show < invoice-i d > --workspace < slu g > --download [--output < di r > ]
Argument Description <invoice-id>Invoice transaction ID (numeric)
Flag Description --workspaceRequired. Workspace slug--downloadDownload as PDF instead of showing details --outputDirectory to save the PDF (default: current directory)
Download a PDF statement for a date range.
circuithub billing statement --workspace < slu g > --from < dat e > --to < dat e > [--output < di r > ]
Flag Description --workspaceRequired. Workspace slug--fromRequired. Start date (ISO 8601)--toRequired. End date (ISO 8601)--outputDirectory to save the PDF (default: current directory)
List payments for a workspace.
circuithub billing payment list --workspace < slu g >
Flag Description --workspaceRequired. Workspace slug
Column Description IDPayment transaction ID NAMEPayment reference number DATEPayment date AMOUNTPayment amount METHODcard, net_terms, or wireINVOICESLinked invoice names STATUSapplied or pending
List payment methods configured for a workspace.
circuithub billing payment-method list --workspace < slu g >
Flag Description --workspaceRequired. Workspace slug
Column Description IDPayment method ID, for order preview and submission TYPEcard, net_terms, or wireDETAILSCard brand and last 4 digits, or terms type DEFAULTWhether this is the default method
Show credit balance and limit for a workspace.
circuithub billing balance --workspace < slu g >
Flag Description --workspaceRequired. Workspace slug
Shows current balance, credit limit, and available credit. If no credit is enabled for the workspace, shows a message indicating so.
Commands using --file read a JSON request body from that file. The board , shipping address , billing and order guides give the file contents and complete responses.
circuithub project board show --revision 99001 --workspace acme-electronics
Board: 7001
Version: 12
Layers: 4
Thickness: 1.6 mm
Material: FR4
Finish: ENIG
circuithub project board update --revision 99001 --workspace acme-electronics --file board-change.json
Updated board: 7001
Version: 13
circuithub project board impedances set --revision 99001 --workspace acme-electronics --file impedances.json
Board: 7001
Version: 14
Requirements: 1
circuithub shipping-address list --workspace acme-electronics
ID RECIPIENT CITY COUNTRY
6101 Alex Smith Boston US
circuithub shipping-address show 6101 --workspace acme-electronics
ID: 6101
Recipient: Alex Smith
Address: 100 Main Street, Boston, MA 02110, US
circuithub shipping-address create --workspace acme-electronics --file address.json
Created shipping address: 6101
circuithub shipping-address replace 6101 --workspace acme-electronics --file address.json
Replaced shipping address: 6101
New address ID: 6102
circuithub shipping-address remove 6101 --workspace acme-electronics
Removed shipping address: 6101
circuithub billing details show --workspace acme-electronics
Billed to: Acme Electronics
Email: accounts@example.com
Address: 100 Main Street, Boston, MA 02110, US
circuithub billing details set --workspace acme-electronics --file billing.json
Updated billing details for acme-electronics.
circuithub billing payment-method add --workspace acme-electronics --file payment-token.json
Added payment method: card_abc123
circuithub billing payment-method show card_abc123 --workspace acme-electronics
ID: card_abc123
Type: card
Details: Visa ending in 4242
Default: yes
circuithub billing payment-method default card_abc123 --workspace acme-electronics
Default payment method: card_abc123
circuithub billing payment-method remove card_abc123 --workspace acme-electronics
Removed payment method: card_abc123
circuithub order shipping-options --quote 50001 --offer 880002 --shipping-address 6101 --workspace acme-electronics
ID SERVICE SHIPPING
ups_ground UPS Ground $25.00
circuithub order preview --workspace acme-electronics --file order-selection.json
Manufacturing: $774.45
Shipping: $25.00
Tax: $49.97
Order total: $849.42
Due now: $849.42
Due later: $0.00
Orderable: yes
circuithub order create --workspace acme-electronics --file order.json
Order: 8001
Status: in-progress
Payment: Paid