Exort is an OpenCode-powered desktop app for embedded development. It provides a local workspace for writing microcontroller code, compiling and uploading projects, and monitoring live serial output on supported boards.

Start with the included free OpenCode models, or connect your own provider setup for models such as ChatGPT, and other OpenCode-compatible providers.
Exort is for you if you are:
- Building Arduino, ESP32, ESP8266, RP2040, STM32, Teensy, or similar microcontroller projects.
- Learning embedded development and want AI help.
- Prototyping firmware that needs fast edit, compile, upload, observe cycles.
- Debugging hardware behavior through serial logs, boot output, sensor streams, or calibration data.
- Using AI coding agents but want the workflow to be all in one.
| Feature | What it does |
|---|---|
| AI coding agent | Uses OpenCode to inspect the workspace, explain code, edit files, and help with embedded iteration. |
| Project manager | Opens and switches between local embedded workspaces with persisted state. |
| Board manager | Installs and manages Arduino CLI board platforms and cores. |
| Compile and upload | Automatic and manual compile and upload |
| Serial Monitor | Reads live device output for logs, debug prints, and quick checks. |
| Serial Plotter | Plots numeric serial streams for calibration, sensors, and runtime behavior. |
| Provider connection | Lets you use included free models or bring your own OpenCode-compatible provider setup. |
| Local history | Restores chat history and workspace sessions locally per workspace. |
Exort is a desktop-only Electron app. The renderer UI does not talk to OpenCode, files, serial ports, or Arduino tools directly. It goes through the preload IPC boundary, and the Electron main process owns native capabilities.
flowchart LR
user["Developer"] --> ui["Exort Desktop UI<br/>Svelte + Monaco"]
ui --> ipc["Preload IPC<br/>window.electronAPI"]
ipc --> main["Electron main process"]
main --> runtime["OpenCode runtime<br/>agent sessions + streaming"]
main --> tools["Exort custom tools<br/>arduinoCompile, workspace tools"]
main --> arduino["Arduino CLI<br/>cores, compile, upload"]
main --> serial["Serial handler<br/>ports, monitor, plotter"]
main --> store["Local app state<br/>workspace sessions "]
runtime --> files["Local workspace files"]
tools --> arduino
arduino --> board["Target board"]
board --> serial
serial --> ui
store --> ui
classDef dark fill:#2f3239,stroke:#555,color:#ffffff,stroke-width:1px;
class user,ui,ipc,main,runtime,tools,arduino,serial,store,files,board dark;
For the desktop app (can install both in the app settings)
- Arduino CLI for board package, compile, and upload flows. Exort can check and help install requirements from the desktop package scripts.
- OpenCode runtime/provider configuration. Exort includes a managed OpenCode path and supports bring-your-own provider setup.
For running from source:
- Node.js 20 or newer.
- npm 10 or newer.
- Git.
- Platform build tools required by Electron/native Node dependencies on your OS.
Check local desktop requirements:
npm --workspace @exort/desktop run requirements:statusDownload the latest build from exort.dev or Github releases.
or
git clone https://github.com/Razz19/Exort.git
cd Exort
npm install
npm run devPackage-level commands:
npm run dev --workspace @exort/desktop
npm run build --workspace @exort/desktop
npm run typecheck --workspace @exort/desktop- Open a local workspace (folder).
- Use the included free models or connect your provider.
- Ask Exort Agent to create or inspect the project, explain code, or make a change.
- Review edits in the editor.
- Select the target board and serial port.
- Compile and upload.
- Watch logs in Serial Monitor or graph values in Serial Plotter.
- Iterate!
Exort works with Arduino CLI board platforms, including:
- Arduino
- ESP32
- ESP8266
- RP2040
- STM32
- Teensy
- Other Arduino CLI-compatible cores
Actual compile/upload support depends on the board core, toolchain, USB driver, and upload protocol installed on your machine.
- Website: exort.dev
- GitHub: Razz19/Exort
- Discord: Join the community
- Support: GitHub Sponsors
Exort is licensed under AGPL-3.0-only. See LICENSE.
