← Discover MCPs and Agents
E
MCPAI & MLGitHub

Exort

Exort is a coding agent for embedded devices

Links

README

From the repo.

Exort application screenshot

GitHub stars Discord Support

Exort

Free, open-source AI coding workspace for microcontrollers.

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.


Exort application screenshot

Start with the included free OpenCode models, or connect your own provider setup for models such as ChatGPT, and other OpenCode-compatible providers.

Who It Is For

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.

Core Features

Exort feature highlights

FeatureWhat it does
AI coding agentUses OpenCode to inspect the workspace, explain code, edit files, and help with embedded iteration.
Project managerOpens and switches between local embedded workspaces with persisted state.
Board managerInstalls and manages Arduino CLI board platforms and cores.
Compile and uploadAutomatic and manual compile and upload
Serial MonitorReads live device output for logs, debug prints, and quick checks.
Serial PlotterPlots numeric serial streams for calibration, sensors, and runtime behavior.
Provider connectionLets you use included free models or bring your own OpenCode-compatible provider setup.
Local historyRestores chat history and workspace sessions locally per workspace.

How It Works

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;

Requirements

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:status

Getting Started

Download the latest build from exort.dev or Github releases.

or

Run from source

git clone https://github.com/Razz19/Exort.git
cd Exort
npm install
npm run dev

Package-level commands:

npm run dev --workspace @exort/desktop
npm run build --workspace @exort/desktop
npm run typecheck --workspace @exort/desktop

Linux GPU Startup Issues

Exort disables Chromium's GPU sandbox on Linux to work around Electron GPU process launch failures on some driver and sandbox combinations. If Exort still exits at startup with an error like GPU process isn't usable. Goodbye, launch it with software rendering:

EXORT_DISABLE_HARDWARE_ACCELERATION=1 ./Exort-*.AppImage

Recommended Workflow

  1. Open a local workspace (folder).
  2. Use the included free models or connect your provider.
  3. Ask Exort Agent to create or inspect the project, explain code, or make a change.
  4. Review edits in the editor.
  5. Select the target board and serial port.
  6. Compile and upload.
  7. Watch logs in Serial Monitor or graph values in Serial Plotter.
  8. Iterate!

Supported Boards

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.

Community

License

Exort is licensed under AGPL-3.0-only. See LICENSE.

Collected info

  • ★ 228 stars
  • ⎇ 23 forks
  • Language: Svelte
  • Source updated: 8/31/2026

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.