Editor and Files

Open projects, switch between the Agent and IDE views, work with the file explorer and tabs, and open Embedr's built-in views.

The editor opens when you open a project. It combines the agent chat, a file explorer, a tabbed editor area and a toolbar along the bottom of the window.

Open a project

Projects start on the home page.

Button What it does
Create Blank Project Creates a new project in Embedr's project folder.
Import KiCad Brings an existing KiCad project into Embedr. See Board and KiCad.
Open Folder (desktop) / Import Folder (browser) Opens an existing folder as a project. On desktop the folder stays where it is on disk.
Clone Repository (desktop) Clones a Git repository and opens it. See Version control.

You can also describe a project in the prompt box at the top of the home page and send it; Embedr creates the project and hands your brief to the agent.

Recent projects

Recent Projects lists every project Embedr knows about, with a count and a relative time.

  • Filter projects... narrows the list by name.
  • The sort menu switches between Last opened and Recently created.
  • Hover a row for its actions: Rename project, and the trash icon.

The trash icon behaves differently depending on where the project lives:

Project Trash icon What happens
Created inside Embedr Delete project The project folder is deleted. This cannot be undone.
Opened with Open Folder or cloned Remove from Embedr Only the list entry goes. The folder stays where it is on disk.

Folders you opened with Open Folder cannot be renamed from the list; rename them on disk instead.

Legacy Arduino sketches

If you open a folder with a root .ino sketch and no embedr.yaml, the toolbar shows Migrate Project instead of Compile and Flash. Migrating creates src/main.ino and embedr.yaml, then removes the old root .ino. Compile and Flash appear once the project is migrated. See Project anatomy.

Agent and IDE views

The Agent / IDE switch sits in the middle of the title bar. Your choice is remembered.

Area Agent view IDE view
Left panel Chat history (threads) File explorer
Centre Agent chat Editor tabs
Right panel Editor tabs Agent chat

Two title-bar buttons show and hide the side panels:

  • The left button (Toggle Chat History in Agent view, Toggle File Explorer in IDE view).
  • The right button (Toggle Editor Panel in Agent view, Toggle Chat with Agent in IDE view).

The same title bar has Keyboard shortcuts and Settings. Drag the dividers between panels to resize them.

Use the Agent view when the agent is doing most of the work and you mainly review. Use the IDE view when you are editing code yourself and want the agent alongside.

The bottom toolbar

The toolbar along the bottom of the editor holds, from left to right:

Control Purpose
Back arrow Back to Home. If files have unsaved changes, Embedr asks whether to save them first.
Target, device and environment pickers What to build for and where to flash. See Targets and environments.
Share Publishes a link to the project. See Sharing projects.
Branch button Opens the Git menu. See Version control.
Compile and Flash Build and upload firmware. See Build, upload and serial.
Search icon Opens project search (Cmd/Ctrl+Shift+F).

Electronics-only projects hide the target, device, environment, Compile and Flash controls.

File explorer

The file explorer shows the project folder as it is on disk. Its header has five buttons: Toggle Search, New File, New Folder, Refresh and Collapse All. Toggle Search shows a Search files... box that filters the tree by name.

Right-click a file or folder for its menu:

Item Notes
New File, New Folder Creates the item inside the folder you clicked.
Copy, Cut, Paste Works on one item or a multi-item selection.
Rename One item at a time.
Delete Asks for confirmation. Deletion cannot be undone from Embedr.
Reveal in Finder Shows the item in your system file manager (desktop).

Selection and keyboard:

  • Cmd/Ctrl+click adds an item to the selection; Shift+click selects a range.
  • Arrow keys move through the tree; Right expands a folder, Left collapses it, Enter opens the item.
  • F2 renames, Cmd/Ctrl+C, Cmd/Ctrl+X and Cmd/Ctrl+V copy, cut and paste.
  • Cmd+Backspace (macOS) or Ctrl+Delete (Windows and Linux) deletes.

Drag files from your desktop onto the explorer to copy them into the project root.

The explorer also has a Datasheets section for the PDFs you have added to the project. See Datasheets.

Changes made outside the editor, by the agent, a terminal command, Git or another editor, appear in the tree automatically. Use Refresh if something looks out of date.

Tabs

Each open file or view is a tab above the editor area.

  • An amber dot on a tab means unsaved changes.
  • Drag tabs to reorder them.
  • Cmd/Ctrl+W closes the active tab.
  • Right-click a tab for Save (when it has unsaved changes), Close, Close Others, Close Tabs to the Left, Close Tabs to the Right and Close All.

The Add tab menu

The + button at the end of the tab strip (Open Tab when no tabs are open) opens the views that are not files:

Group Views
Workspaces Schematics, Board, Mechanical
Tools Terminal, Serial Monitor, Output, BOM, Manufacturing
(below a divider) Review Changes, Settings

Where each one is covered:

When no tabs are open, the editor area offers shortcuts to Search files, Terminal, Schematics, Board, Mechanical and Settings.

Pinned tabs in shared projects

When you open someone else's shared project in the browser, the README and any views the owner chose under Opens with are pinned at the start of the tab strip. They have no close button and other tabs cannot be dragged in front of them. See Sharing projects.

How files open

Embedr picks an editor or preview from the file name.

Files Opens as
Source and config: .c, .h, .cpp, .hpp, .ino, .py, .ini, .json, .yaml, .toml, .s, .ld, CMake, Makefiles and more Code editor with syntax highlighting
embedr.yaml, platformio.ini Code editor, with their own file icons
.zen (Zener hardware source) Code editor with Zener highlighting, completions, hover help, go to definition and inline problem markers
KiCad text files: .kicad_sch, .kicad_pcb, .kicad_sym, .kicad_mod, .kicad_pro, .kicad_dru, fp-lib-table, sym-lib-table Code editor with KiCad highlighting
.md Markdown preview (editable), with a source view
.png, .jpg, .gif, .svg, .webp, .bmp Image preview
.pdf PDF viewer
.step, .stp, .stl, .glb, .3mf and other 3D models, firmware binaries (.bin, .hex, .elf), archives View only

The KiCad source files open as text. To see a board or schematic drawn, open the Board or Schematics tab. To see a 3D model, use the Mechanical tab.

The bar under the code editor shows the cursor line and column; click it (or press Cmd/Ctrl+G) to go to a line.

Saving

  • Cmd/Ctrl+S saves the active file; Cmd/Ctrl+Shift+S saves all files.
  • Compile and Flash save every open file first.
  • Settings → Editor → Auto Save on Focus Loss saves when you click away from the editor.
  • If a save fails, a Retry save link appears under the editor.

Markdown preview

Markdown files open in preview. The preview is editable: type into it directly, and images referenced with relative paths load from the project. Press Cmd/Ctrl+Shift+V to switch between preview and the source editor.

In a read-only shared project, Markdown always shows as preview.

  • Cmd/Ctrl+P or Cmd/Ctrl+Shift+F opens Search codebase..., which searches the text of every file in the project. Use the arrow keys and Enter to open a result, Esc to close.
  • Cmd/Ctrl+F finds in the current file; Cmd+Option+F (macOS) or Ctrl+H replaces.
  • Cmd/Ctrl+= and Cmd/Ctrl+- change the editor text size.

The full list is under the keyboard icon in the title bar and in Keyboard shortcuts.

Add a selection to chat

Select text and an Add to Chat button appears next to the selection. It adds the exact text to your next message for the agent. It works in:

  • the code editor,
  • the Output tab,
  • the Serial Monitor,
  • the Terminal (also in its right-click menu).

Keep selections tight: the failing compiler error rather than the whole build log, the ten serial lines around a fault rather than an hour of output.

Add to Chat (Output tab):
src/main.cpp:42:5: error: 'dht' was not declared in this scope

Prompt:
Fix this build error. The sensor is a DHT22 on GPIO 4.