The agent

The agent

The agent is a sidebar wired straight into the same schematic and board editors you would use by hand. It has 35 tools — 14 that only read the design, and 21 that change it — and every one of the 21 lands on the same undo stack as your own mouse.

The agent panel's first screen: a heading reading There's an engineer in your sidebar now, a Watch it build a board button, Sign in and Use my own key buttons, and three example prompts for an empty document.
The panel's first screen — Watch it build a board, Sign in, or Use my own key.

The panel lives behind a tab on the left rail, next to the project tree, and closing it leaves you with two complete editors. A turn is shown as what it did, not as what it called: the session header carries the title and the history, and the work itself folds into a single line — Worked for 34s — that you open when you want the detail. No engine identifier is ever printed at a person.

The left rail: four vertical tabs labelled Project, Agent, Library and Rules, the Agent tab selected.
The rail. The agent is one tab of four, beside the project tree — not a mode the window is in.

What it can read

get_design_overview, read_schematic, read_board, get_netlist, run_drc, run_erc, review_design, search_symbols, list_symbol_libraries, search_footprints, find_datasheet, read_datasheet, list_footprint_libraries, and plan — none of these can change a design, only inspect it or check it.

What it can change

Eight schematic tools: place_symbol, add_wire, add_label, set_symbol_props, move_symbol, delete_item, add_junction, add_no_connect.

Nine board tools: place_footprint, add_track, add_via, move_footprint, rotate_footprint, set_pad_net, set_board_outline, add_zone, fill_zones.

Four that act on the project rather than draw on it: update_pcb_from_schematic, focus_view, zoom_fit, switch_view.

One undo for the whole turn

Each tool call is one step on the same undo stack your own edits use — not a separate agent history to review file by file. Press CtrlZZ on macOS — and the most recent step unwinds, whether a person or the agent made it, in the order it actually happened.

If you edit the design yourself while a turn is running, the app has to know whose change is whose to offer a correct undo — and when it cannot tell, it refuses rather than guessing. A wrong undo is worse than no undo.

Grounding on parts

The library only gives the agent a symbol's pin names. Pin numbers per package, absolute maximums, recommended operating conditions and layout rules are not in the library — for any of that it has to call read_datasheet, which returns pinout, limits and layout notes each tagged with the page they came from, so a number like an absolute maximum can be checked against the actual PDF rather than taken on faith.

Reviewing its own work

run_drc and run_erc are the same checks reachable from the Tools menu. review_design runs one level above DRC — fab producibility, net classes, current, decoupling, return paths, impedance — against a named fab profile, and takes a list of findings you are deliberately leaving, each with a reason, so a repeat review does not re-flag something you already decided about.

A few rules every tool follows

  • Every coordinate, width and size is millimetres. X runs right, Y runs down.
  • Wires run horizontally or vertically only — a corner is two add_wire calls.
  • add_track takes its width from the net class unless told otherwise, and refuses a width under the board minimum rather than widening it quietly.
  • A zone is an outline until fill_zones computes the copper in it. A board routed since its last fill is showing a picture of a board that no longer exists.
  • update_pcb_from_schematic places a footprint for every schematic part that has none and assigns every pad its net; parts already on the board keep their positions and nothing is deleted.

Where it runs

No account is required to use the agent. Point it at DeepSeek (hosted), or at Ollama, LM Studio or llama.cpp/vLLM running on your own machine, or at any other OpenAI-compatible endpoint by hand. The app makes exactly two kinds of outbound request: the turn itself, and a connection test when you press Test connection. Setup steps are on Getting started.

Each preset in that dropdown fills in an address and a model name, and both stay editable afterwards. The three local ones need no key at all.

DeepSeek (hosted)                 https://api.deepseek.com
Ollama (this machine)             http://localhost:11434/v1
LM Studio (this machine)          http://localhost:1234/v1
llama.cpp or vLLM (this machine)  http://localhost:8000/v1

The models they suggest are deepseek-v4-flash, qwen2.5-coder:32b, qwen2.5-coder-32b-instruct and local-model in that order. Something else is the fifth row and fills in nothing — it is what the dropdown says when the address below it is somebody else's, and picking it changes no setting on its own.

The agent's settings panel, showing a 'Where the model runs' dropdown set to DeepSeek (hosted), plus Model, Address, Rounds at most and Key fields, and Test connection and Save buttons.
Where the model runs — DeepSeek (hosted), or a local endpoint by hand.