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

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.

  1. On the home screen, choose + Firmware and set Target to an ESP32 board such as ESP32 DevKit.

  2. 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.
    
  3. 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.

  4. 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.

  5. 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.cpp to read the firmware.

  6. 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.

  7. 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).

  8. Click Flash.

  9. Open Serial Monitor from the + menu, set Baud Rate to the rate the firmware uses (115200 by default), and click Connect.

  10. 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.yaml show Agent needs to explore in the chat. Pick a model and click Initialise Agent; the agent inspects the repository and writes an embedr.yaml without replacing your source.

Where to go next