bomi:

A CLI to manage your project components

Search, inspect, and compare components. Capture the specs, assign designators, and track costs. Manage a version-controlled BOM with faster research, revisions, component swaps, and decisions. Human-friendly CLI and works well with AI agents.

JLCPCB LCSC Claude Code OpenCode Cursor CLI-first Openrouter PDF analysis JSON/MD/CSV output local cache git-friendly
$
git clone https://github.com/somebox/bomi.git cd bomi && uv tool install -e .

Requires Python 3.11+ and uv. No JLCPCB account needed. OpenRouter key only required for datasheet analysis.

logo by fern__theplant

Built for AI-assisted design

Agents use the CLI to search the catalog, compare parts, update the BOM, and pull datasheet analysis without touching a browser. Commands output markdown, JSON and CSV for downstream use.

The agent guide is a short reference designed to be dropped into a Claude Code or Copilot session. It covers command syntax, caching rules, output formats, and project context — everything needed to operate the tool correctly.

Claude Code GitHub Copilot Cursor Agent Aider

Getting started with AI-assisted design →

example prompts

Find a 3.3V buck converter, basic parts only, SOT-23 or smaller

Compare C8287 and C25900 for a 10k pull-up on 3.3V GPIO

Download the PT4115 datasheet and summarize the sense resistor formula

Update the BOM: U1 = C347356, R1 = C8287 × 2, add notes

Estimate BOM cost at 100 and 500 units, flag low-stock parts

Find an alternative for C347356 if it goes out of stock

One folder per project, tracked in git

bomi follows the version-controlled project practice: the folder where you keep schematics, notes, exports, and the rest of the design also holds your BOM as .bomi/project.yaml, committed with everything else.

Typical loop: research parts in the terminal, lock candidates into the YAML BOM, export markdown or CSV for reviews, refresh stock with list --check before you order. Commit, open a PR or push.

The tool was inspired by kicad-happy (Claude Code skills centered on KiCad), but the scope here is smaller — components only: one focused CLI for JLCPCB/LCSC search, selections, and datasheet helpers, independent of which EDA or layout workflow you use. That makes it a straightforward fit for agent automation: agents run bomi while your CAD tools stay unchanged.

bomi list --format markdown

usb-led-flashlight

USB-C LED flashlight · PT4115 driver

5 line items (5 unique parts), ~$1.85 estimated (qty 1)

BOM

Ref Qty LCSC Package Note Stock Price
J1 1 C456012 SMD USB-C 6p power 412k $0.12
U1 1 C347356 SOT89-5 PT4115 LED driver 128k $0.45
L1 1 C354577 4030 47µH buck inductor 56k $0.28
D1 1 C8598 SOD-123 Schottky catch 1.2k $0.06
LED1 1 C3015100 3535 White LED 902k $0.94

details & datasheet links below fold

From catalog search to committed BOM

Search the live catalog, inspect parts, track selections in git, manage costs and lifecycle — all from the terminal.

Part researchsearch, fetch, inspect, compare
Live JLCPCB catalog search with attribute filtering by resistance, voltage, current, and more. Results are cached locally for offline access and fast re-querying.
bomi search "buck 3.3V" --basic-only
bomi fetch C347356
bomi compare C347356 C145837
Version-controlled BOMinit, select, bom, status
Selections live in .bomi/project.yaml alongside your design files. Every part addition, swap, or relabel is a reviewable git diff.
bomi init --name "my-board"
bomi select C347356 --ref U1
git add .bomi && git commit
Cost managementstatus, list --check
Per-unit pricing at any quantity, BOM cost rollup, stock warnings, and live refresh from the catalog before ordering.
bomi status
bomi list --check
bomi list --format csv
Datasheet analysisanalyze, datasheet
Download PDFs and run AI analysis via OpenRouter. Get ratings, pin tables, and application notes as structured markdown. Requires an OpenRouter key.
bomi analyze C347356 \
  --prompt "Summarize pin functions"
bomi datasheet C347356 \
  --pdf --summary -o docs/

BOM review and cost estimate

bomi list shows the full BOM with stock and pricing. bomi status gives cost rollup, quantity summary, and warnings.

Run list --check before ordering to refresh from the live catalog. Export as CSV, JSON, or markdown for downstream tooling.

More examples →

bom + status

Install

git clone https://github.com/somebox/bomi
cd bomi
uv tool install -e .

For development (run tests etc.):

uv sync
uv run pytest -v

Configure

Most commands work without any configuration. Add an OpenRouter key for datasheet analysis:

# macOS: ~/Library/Application Support/bomi/config.yaml
# Linux: ~/.local/share/bomi/config.yaml

openrouter_api_key: sk-or-v1-...

Or set BOMI_OPENROUTER_API_KEY in your environment.