Agent-assisted circuit design
Set up a project, point your AI agent at the tool guide, then work through component research conversationally — search by spec, compare candidates, pull datasheets, build and revise the BOM.
Agent BOM review
The agent runs bomi tool calls to check stock levels, finds
a part that is out of stock, searches for a replacement with the same
footprint, and proposes the swap — all from a single prompt.
See the examples page for individual command recordings.
Before you start
- Python 3.11+ and uv installed
- A Claude Code, Cursor, Copilot, or other terminal-capable AI agent
- Optional: an OpenRouter API key for datasheet analysis
Install bomi
Clone the repo and install the bomi command globally with uv:
git clone https://github.com/somebox/bomi
cd bomi
uv tool install -e .
Verify it works: bomi --help
Enabling a Project
Choose a project folder
Start with a normal directory (or existing project folder) and make sure it’s tracked in git. The BOM will be committed here alongside your design files.
mkdir my-board && cd my-board
git init
Initialize project metadata
Creates .bomi/project.yaml and appends datasheet PDF rules to .gitignore.
This file is the BOM source of truth — commit it with every change.
bomi init --name "my-board" --description "What this board does"
Launch your AI agent
Open Claude Code, Cursor, Copilot, or any agent that can run terminal commands from your project directory.
Tell the agent to read the tool guide
The guide covers all commands, output formats, caching rules, and project context. Paste this to get started:
https://somebox.github.io/bomi/guide.html
Then use
bomi to help me find parts for my PCB project. We need [describe what you're building].
Alternatively, paste the raw markdown from docs/bomi-guide.md directly into the agent's context.
What to ask
Once the agent has read the guide, it runs bomi commands on your behalf. Click any example to see the command it maps to.
Search
bomi search "3.3V buck converter" --basic-only --attr "Output Voltage:3.3V"
bomi search "100nF capacitor 0402" --attr "Voltage Rated:10V" --attr "Temperature Coefficient:X7R"
Evaluate
bomi compare C8287 C25900
bomi analyze C347356
Build the BOM
bomi select C347356 --ref U1 --notes "PT4115 LED driver"
bomi deselect L1
bomi select C167888 --ref L1 --notes "FNR4030S470MT, same 4030 footprint, 147k stock"
Review and ship
bomi list --check
bomi list --format csv
Getting the most out of it
Give context, not just part names
Include your supply voltage, target quantities, package constraints, and whether basic parts are required. The agent uses all of it to set search filters — vague prompts give vague results.
Always note why a part was chosen
Ask the agent to always include --notes with a brief reason. Footprint constraint, cost ceiling, thermal rating — that context is invaluable when revisiting the design or explaining a swap months later.
Save datasheets as markdown
For any non-trivial IC, run datasheet --summary and save to docs/datasheets/. Point the agent at it for application questions — it's faster than re-fetching and stays in the repo alongside the BOM.
Check stock before every order
Prices and availability change daily on JLCPCB. Run list --check before finalising any production run to catch anything that's gone out of stock or changed in price since you last looked.
Commit the BOM after each session
.bomi/project.yaml is plain YAML — commit it after every meaningful change. You get a full history of part decisions: what you tried, what you replaced, and the reasoning behind each choice.
Verify pins and parameters before routing
Use analyze to check pin assignments, logic levels, and application circuit values before committing a footprint. Ask the agent specific questions: enable pin threshold, sense resistor formula, max switching frequency.