Embedr in the Browser
Use Embedr at studio.embedr.app: cloud projects, cloud builds, agent runs that continue after you close the tab, Web Serial flashing, and what differs from the desktop app.
The web app at studio.embedr.app is the same Embedr as the desktop app, running against cloud projects instead of folders on your disk. Sign in with the same account; your plan, models and ChatGPT or OpenCode connections apply in both.
Requirements
- A desktop or tablet browser. On a phone, Embedr shows "Use Embedr in a desktop browser".
- For flashing and the serial monitor: a Chromium-based browser with Web Serial (such as Chrome or Edge), on the HTTPS site. Other browsers can still edit, build and run the agent. Without Web Serial, flashing fails with "Web Serial requires a supported Chromium browser on HTTPS."
Projects in the cloud
Web projects live in your Embedr account, not on your computer. Every save is stored in the cloud project, and the agent works on the same files.
From the home screen you can:
| Button | What it does |
|---|---|
| Composer (Describe what you want to build) | Create a project from a brief and start the agent on it. |
| Create Blank Project | Create an empty project (Electronics only or Electronics + firmware). |
| Import KiCad | Choose the folder that contains your KiCad design. Include all referenced sheets and local libraries. |
| Import Folder | Upload a folder from your computer as a new cloud project. |
There is no Clone Repository button in the browser; clone on desktop and share or import from there.
Import limits
| Import | Limit |
|---|---|
| Import Folder | 500 files, 100 MB in total, 25 MB per file |
| Import KiCad | 256 files, 48 MB |
| Any single project file | 25 MB |
An imported folder is a copy. Later changes on your disk do not reach the cloud project.
Import Folder leaves out version-control data, build output and local state, among them .git, .pio, .pcb, node_modules, .versions, .history, .embedr-board, chat transcripts, KiCad lock and backup files (*.kicad_prl, *.lck, fp-info-cache, names containing backup or .bak) and OS files such as .DS_Store.
Errors you may see:
- "Web project imports are limited to 500 files" or "…limited to 100 MB": import a smaller folder, for example without generated output.
- "
<path>exceeds the 25 MB per-file limit": remove or shrink that file first. - "The selected folder contains no importable project files": everything in it was skipped.
- "A project named '
<name>' already exists": rename the folder or the existing project.
Building firmware
Nothing compiles inside your browser. Compile sends the project to an isolated cloud build that runs the same PlatformIO toolchain as desktop.
- Pick a Target in the bottom toolbar.
- Click Compile. The Output tab streams the build.
- When the build succeeds, the Output tab shows a download button for each firmware file (
.bin,.hex,.uf2).
Custom targets (Custom Target...) are a desktop feature. On the web, choose a target from the built-in list.
Flashing and the serial monitor with Web Serial
Browser flashing is available for these targets:
| Target | Chip |
|---|---|
ESP32 Dev Module (esp32dev, Arduino framework) |
ESP32 |
ESP32-S3 DevKitC-1 (esp32-s3-devkitc-1, Arduino framework) |
ESP32-S3 |
Other targets build in the cloud but cannot be flashed from the browser. Arduino Uno, Nano and Raspberry Pi Pico say their browser flashing "has not completed hardware qualification." Download the firmware from the Output tab and flash it with the desktop app or your own tools.
To flash a supported board:
- Plug the board in with a data-capable USB cable.
- Open the Device picker and click Pair Browser Serial.... Your browser lists serial ports; choose the board and click Connect. Paired ports appear as "USB Serial (VID xxxx · PID xxxx)".
- Click Compile if you have not built yet ("Build this project before flashing it.").
- Click Flash. Progress reads "Connecting to board…", "Flashing N%" and "Flash complete."
The flash checks that the connected chip matches the build. "Connected board is X; this artifact requires Y." means the wrong board or target is selected.
The Serial Monitor tab (from the + menu) uses the same paired port. Choose a Baud Rate and click Connect. If the browser forgets the port, you see "Select this serial device again."; pair it again from the Device picker.
If you cancel the browser's port prompt you get "No device selected."
Agent runs that keep going
Agent runs execute on Embedr's servers, so you can close the tab, lose your connection or switch devices while the agent works. When you reopen the project, the chat catches up with everything the run did.
Run states you may see in the chat include "Queued…", "Preparing project…", "Thinking…" and "Saving progress…". If no cloud worker has picked the run up after a short wait, it reads "Waiting for a worker…" and later "Still waiting for a worker…".
Notifications
The first time you send a brief or click Implement this spec, Embedr offers browser notifications (Know when it's done). Click Turn on and allow notifications in the browser prompt. Tick Also email <address> to get an email too. If the browser blocks notifications, the prompt offers Email me instead.
In Settings → Notifications:
- System Notifications shows notifications when Embedr is in the background, and the browser's current Permission.
- Email Notifications emails you when the agent finishes, fails or needs you. It needs a verified account email ("Available once your account email is verified.").
Emails have subjects such as "The agent finished in <project>: <thread>" and an Open in Embedr button.
Terminal in the browser
The Terminal tab opens a cloud terminal on a snapshot of the project. Read the banner: "Cloud snapshot · close to save terminal file changes; reopen to load editor changes."
- Click Close & save to write the terminal's file changes back to the project.
- Sessions expire after 30 minutes.
- Generated caches such as
node_modulesand.pioare not saved to the cloud project. - If saving fails, use Download recovery files.
What differs from the desktop app
| Feature | Desktop | Browser |
|---|---|---|
| Project storage | Folders on your disk | Cloud projects in your account |
| Firmware builds | Local toolchain | Cloud build |
| Flashing | Any target with a USB serial upload | ESP32 and ESP32-S3 targets listed above, through Web Serial |
| Custom targets | Yes | No |
| KiCad import | Pick a .kicad_sch or .kicad_pro; needs KiCad 10 installed |
Pick a folder; converted in the cloud |
| KiCad checks and exports | Local KiCad 10 or cloud (Settings → Local tools) | Always in the cloud |
| Open in KiCad | Opens the board in your KiCad | Not available: "Opening the native KiCad application requires Embedr Desktop." Download the board files instead. |
| Terminal | Local shell | 30-minute cloud snapshot sessions |
| Command approvals (Settings → Command Approval) | Yes | No |
| Steer on a queued message | The message joins the running run at its next step | The run stops and restarts with your message |
| Clone Repository | Yes | No |
| Git remotes | Any remote your Git setup can reach | HTTPS repositories on GitHub, GitLab and Bitbucket; tokens are not saved |
| Notifications | System notifications | Browser notifications and email |
Legacy .ino migration (Migrate Project) |
Yes | No |
Git in the browser covers the same everyday actions as desktop (commit, sync, branches, merge conflicts, stash, discard, undo). See Version control.
Opening shared projects
A share link looks like https://studio.embedr.app/projects/<owner>/<project> and always opens in the browser. See Sharing projects for publishing your own.
What a visitor sees depends on how the owner shared it:
| Situation | What appears |
|---|---|
| Anyone with the link | The project opens read-only, with the owner's pinned tabs (for example Schematics, Board or Mechanical) beside the README. No sign-in needed. |
| Only people invited, signed out | "Sign in to view <project>" and a Sign in button. Sign in with the email address the project was shared with. |
| Only people invited, wrong account | "You don't have access to this project" with Sign in with a different account and Back to projects. |
| Private, removed or mistyped link | Project not found. |
A read-only project has a bar at the top reading Read-only public revision with:
- Download files: the project as a zip.
- Download firmware: shown when the owner published firmware with the revision.
- Fork project (or Sign in to fork): copies the project into your account so you can edit it, build it and run the agent on it.
Agent actions, the terminal and Voice Mode are unavailable in a read-only project ("Fork this project to open a terminal and make changes."). If you are signed in, replying to the agent's welcome message forks the project and continues the conversation in your copy.
