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.
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"
circuithub project show 12345 --json
Argument Description <project>Project ID (numeric) or project name
Flag Description --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
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
Argument Description <name>Project name <path>Path to an EDA file or directory of EDA and BOM files
Flag Description --workspaceRequired. Workspace slug--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
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
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 (required when using project name) --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
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-i d > [--json]
circuithub quote request --revision < revision-i d > [--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.
Flag Description --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:
Column Description QTYNumber of assembled boards DAYSLead time in business days BOARDSPCB fabrication cost PARTSElectronic components cost ASSEMBLYAssembly labor cost TOTALTotal cost $/UNITPer-board cost
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-i d > --quantity < n > --lead-time < day s > [--json]
Argument Description <quote-id>Quote ID (numeric)
Flag Description --quantityRequired. Board quantity matching an offer--lead-timeRequired. Lead time in business days matching an offer--jsonOutput full API response as JSON
Column Description 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 < 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
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 < 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 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.