Start Here
What Embedr is, how the Agent and IDE views fit together, the core nouns, and a first session from prompt to running hardware.
Embedr is an agentic workspace for hardware projects. One project holds the circuit, the board, the firmware, the enclosure and the manufacturing files, and Embedr Agent can read and change all of them. You describe what you want in the chat and the agent plans the work, edits files, builds firmware, checks the board and reports back. You review its work in the same window and step in whenever you want.
Embedr runs as a desktop app for macOS, Windows and Linux, and as a web app at studio.embedr.app. Both use the same account and the same project format. See Embedr in the browser for how they differ.
The home screen
After you sign in, the home screen has:
| Area | What it does |
|---|---|
| Composer (Describe what you want to build) | Describe a project in plain language and send it. Embedr creates the project and starts the agent on your brief. |
| Scaffold switch (Electronics / + Firmware) | Electronics only: a circuit board project. Electronics + firmware: a board plus the code that runs on it. |
| Model picker | The model the agent uses for the new project. See Models. |
| Target picker | Shown with + Firmware. The board you will compile firmware for. |
| Project idea cards | Example briefs. Click one to fill the composer. |
| Create Blank Project | Create an empty project without a brief. |
| Import KiCad | Convert an existing KiCad schematic or project into an Embedr project. |
| Open Folder (desktop) / Import Folder (web) | Bring an existing folder into Embedr. |
| Clone Repository (desktop) | Clone a Git repository and open it. |
| Recent Projects | Your projects, with a filter box and a Last opened / Recently created sort. Hover a row to rename or delete it. |
The Agent and IDE views
Inside a project, the switch in the title bar picks the layout:
| View | Center | Side panels |
|---|---|---|
| Agent (default) | The chat with Embedr Agent | Chat history on the left, editor and workspaces on the right |
| IDE | The code editor and workspace tabs | File explorer on the left, the agent chat on the right |
Both views show the same project and the same chat. The title bar buttons toggle the side panels (Toggle Chat History or Toggle File Explorer on the left, Toggle Editor Panel or Toggle Chat with Agent on the right) and open Keyboard shortcuts and Settings.
The toolbar at the bottom of the window is the same in both views:
- Target, Device and Environment pickers for firmware (hidden in electronics-only projects).
- Share, the branch button for version control, Compile, Flash, and Search Codebase.
Workspaces and tools
Open workspaces from the + (Add tab) button in the tab bar:
| Group | Tabs |
|---|---|
| Workspaces | Schematics, Board, Mechanical |
| Tools | Terminal, Serial Monitor, Output, BOM, Manufacturing |
| (below a divider) | Review Changes, Settings |
- Schematics draws the circuit from the project's
.zensources. See Schematics and PCB. - Board shows the KiCad layout in 2D and 3D, with design rule checks. See Board and KiCad and Placement and routing.
- Manufacturing checks the board and prepares files for ordering. See Manufacturing and ordering.
- Mechanical builds and reviews enclosures and other parts. See Mechanical design.
- Output, Serial Monitor and Terminal cover firmware builds and running hardware. See Build, upload and serial and Terminal and setup.
Core nouns
| Term | Meaning | Example |
|---|---|---|
| Project | A folder with an embedr.yaml manifest. It holds firmware, hardware sources, specs and docs. |
~/EmbedrProjects/plant-monitor/ |
| Target | The board profile firmware is compiled for: a PlatformIO platform, board ID and framework. | esp32 (ESP32 DevKit, Arduino) |
| Environment | A named build profile, one [env:...] section of platformio.ini. |
env:esp32 |
| Device | The serial port of the board plugged into your computer, used to flash and monitor. | /dev/cu.usbserial-0001, COM5 |
| Schematic | The circuit, written as .zen source under pcb/ and drawn in the Schematics tab. |
pcb/main.zen |
| Board | The physical layout, a KiCad .kicad_pcb file generated from the schematic. |
pcb/layout/layout.kicad_pcb |
| Mechanical design | A parametric or imported 3D model under mechanical/. |
mechanical/enclosure.cad.json |
| Thread | One conversation with the agent. A project can have many. | "Add a soil moisture sensor" |
| Spec | A Markdown plan under specs/ written in Plan Mode. |
specs/plant-monitor.md |
A target answers "what am I compiling for?" A device answers "where is the board plugged in right now?" You can compile with no board connected. You need a device only to flash or open the serial monitor. See Targets and environments.
The files behind each noun are described in Project anatomy and Project manifest.
How you work with the agent
- Send a brief. Say what the device should do, what parts you already have, and what you care about (size, cost, battery life, fabricator).
- Plan first when the job is large. Press Shift+Tab in the composer to switch to Plan Mode. The agent asks questions and writes a spec under
specs/. Click Implement this spec to start the build. See Plan Mode. - Answer its questions. When the agent needs a decision, it asks in the chat with choices. "You decide" lets it pick and record the assumption.
- Approve risky steps. A command or action that needs your approval waits in the chat with Allow once, Decline and, where it applies, Always allow.
- Steer while it works. A message you send during a run waits in a queue. Click Steer on it and, on desktop, it joins the run at its next step ("Joins next step") without stopping it.
- Let it delegate. For larger jobs the agent can start helpers, such as a reviewer, that work in their own threads and report back. See Helpers.
- Attach context. Drop files, images, datasheet PDFs or pasted logs into the composer, or mention a file with
@. See Datasheets.
More on all of this in Embedr Agent.
A first session
This walkthrough builds a small ESP32 project and gets it running on a board.
On the home screen, choose + Firmware and set Target to an ESP32 board such as ESP32 DevKit.
Type a brief and send it:
A desk plant monitor: an ESP32 reads a capacitive soil moisture sensor and a BME280 over I2C, and prints readings over serial every 5 seconds. Powered from USB. I want a 2-layer board I can order from PCBWay.In Create New Project, keep the suggested name or type your own, and click Create Project. Embedr creates the project in
~/EmbedrProjects/and opens it in the Agent view, with the first chat in Plan Mode.Answer the agent's questions in the chat; it writes a spec under
specs/. When notifications are offered (Know when it’s done), choose Turn on to be told when the agent finishes. When the spec is right, click Implement this spec. The agent builds the project; its tool calls appear as collapsed groups with a summary such as "Read 3 files, ran 2 commands"; expand one to see the details.When the run ends, read the agent's summary. Open Schematics and Board from the + menu to look at the circuit and layout, and open
src/main.cppto read the firmware.Click Compile in the bottom toolbar. Output streams into the Output tab and ends with Build Succeeded or Build Failed. On failure, click Fix with Agent.
Plug in the board with a data-capable USB cable. Open the Device picker and select its port (click the rescan button if it is missing).
Click Flash.
Open Serial Monitor from the + menu, set Baud Rate to the rate the firmware uses (115200 by default), and click Connect.
To change something, ask in the same thread:
The moisture reading jumps around. Average 10 samples and print the percentage with one decimal place.
The first compile for a new target downloads the board's toolchain and can take several minutes. Later builds reuse it.
Projects without firmware or without hardware
- Electronics only projects have no target, device or environment pickers. They hold the
pcb/workspace and anything you add later. - Imported KiCad projects start as electronics projects. Ask the agent to add firmware when you are ready.
- Opened folders that have no
embedr.yamlshow Agent needs to explore in the chat. Pick a model and click Initialise Agent; the agent inspects the repository and writes anembedr.yamlwithout replacing your source.
Where to go next
- Install and account: installers, sign-in, plans and updates.
- Project anatomy: what each file and folder in a project is for.
- Embedr Agent: working with the agent in depth.
- Keyboard shortcuts and Troubleshooting.
