Embedist is a Windows desktop application that combines AI assistance with embedded firmware development. Built with Tauri 2, React, and TypeScript, it brings board-aware AI debugging, real-time serial monitoring, and PlatformIO build integration into a single cohesive environment.
Open any project folder — ESP32, Arduino, or any embedded codebase — and get context-aware AI assistance that understands your hardware. Build, upload, monitor serial output, and iterate faster with AI that knows your board.
- 🤖 Multi-Provider AI — Chat, Plan, Agent, and Debug modes with support for OpenAI, Anthropic, Google, DeepSeek, Ollama, NVIDIA NIM, and custom vLLM endpoints
- 🔍 Board-Aware Context — AI debugging uses detected board info (ESP32 Dev Module, Arduino Uno, etc.) for accurate, hardware-specific fixes
- 📡 Serial Monitor — Real-time device communication with configurable baud rates and auto-connect
- 🔨 Build & Upload — PlatformIO CLI integration with live output streaming, parsed errors/warnings in a Problems panel, and a Stop Build button
- 📁 File Explorer — Context menus (rename, delete, copy path, reveal in explorer), breadcrumbs navigation, Command Palette (Ctrl+Shift+P), Recent Files, inline rename, multi-select
- 📝 Tab Management — Multi-tab editing with Monaco Editor, dirty indicators, save/close/pin operations, and keyboard shortcuts
- ⌨️ Keyboard Shortcuts — VS Code-style keybindings for all major operations
- 🎨 Dark Theme — Professional monochrome design with CSS variables
- ⚡ Fast & Lightweight — Tauri 2 Rust backend, ~5.7 MB executable, native performance
- 🧠 NVIDIA NIM Support — Thinking mode for advanced reasoning models (e.g., Kimi-K2.5)
- 🔧 Edit Custom Endpoints — Modify existing custom AI endpoints
- 🔐 Persistent API Keys — Custom endpoint API keys survive app restarts
- 🚀 Setup Wizard — First-run guided setup for PlatformIO installation
- 🖥️ Startup Loading State — Branded spinner on launch, deferred heavy operations to prevent "not responding"
Download the executable and run it directly — no installation required.
Windows SmartScreen warning? When you first run the app, Windows may show a blue SmartScreen warning. This is not a virus warning — it's a standard Windows security screen for unsigned applications. Simply click "More info" then "Run anyway" to launch Embedist.
- Download
embedist.exefrom Releases - Run the application
- Press
Ctrl+Oor useFile > Open Folderto open a project directory - Configure your AI provider in
Settings(Ctrl+,) - Start coding and debugging with AI assistance
| Requirement | Description |
|---|---|
| Windows | Windows 10/11 (64-bit) |
| PlatformIO | Optional — required for build & upload functionality |
| AI API Key | Optional — required for AI debugging features |
# Clone the repository
git clone https://github.com/mandarwagh9/embedist.git
cd embedist/embedist
# Install frontend dependencies
npm install
# Run in development mode
npm run tauri dev
# Build production executable
npm run tauri buildThe executable will be generated at src-tauri/target/release/embedist.exe.
# Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Run linter
cd src-tauri && cargo clippy| Shortcut | Action |
|---|---|
Ctrl+O |
Open Folder |
Ctrl+S |
Save File |
Ctrl+Alt+S / Ctrl+K+S |
Save All |
Ctrl+W |
Close Tab |
Ctrl+B |
Toggle Sidebar |
Ctrl+J |
Toggle Bottom Panel |
Ctrl+, |
Open Settings |
Ctrl+Shift+E |
Focus File Explorer |
Ctrl+Shift+X |
Focus AI Assistant |
Ctrl+Shift+L |
Focus Serial Monitor |
Ctrl+Shift+B |
Focus Build Panel |
Ctrl+Shift+P |
Command Palette |
Ctrl+1 |
AI Chat Mode |
Ctrl+2 |
AI Plan Mode |
Ctrl+3 |
AI Agent Mode |
Ctrl+4 |
AI Debug Mode |
Ctrl+Tab |
Cycle Tabs |
- ESP32 Dev Module
- ESP32 WROOM / WROVER
- ESP32 S3
- ESP32 C3 / C6
- ESP32 CAM
- NodeMCU-32S
- Arduino Uno / Nano / Mega
- Arduino Pro Mini
- Arduino Leonardo
- Arduino Due
- Arduino Zero
- ESP8266 (via Arduino framework)
- Any board supported by PlatformIO
Embedist is built on a modern, lightweight stack optimized for performance and developer experience.
| Layer | Technology |
|---|---|
| Desktop Framework | Tauri 2 — native WebView |
| Frontend | React 18 + TypeScript (strict mode) |
| Code Editor | Monaco Editor (VS Code's editor) |
| State Management | Zustand with localStorage persistence |
| AI Integration | OpenAI, Anthropic, Google, DeepSeek, Ollama, NVIDIA NIM, vLLM |
| Build System | PlatformIO CLI (pio, pio run, pio device monitor) |
| Serial Communication | Web Serial API (Chrome/Edge) |
| Styling | CSS Variables — no framework |
embedist/
├── src/
│ ├── components/
│ │ ├── AI/ # AIChatPanel, MessageBubble, CodeBlock, MarkdownRenderer,
│ │ │ # StreamingIndicator, FeedbackPanel, AgentActivityPanel,
│ │ │ # PromptSuggestions, PlanToolbar
│ │ ├── Build/ # BuildPanel, ProblemsPanel
│ │ ├── Editor/ # Monaco editor wrapper
│ │ ├── FileExplorer/ # FileExplorer, ContextMenu, Breadcrumbs,
│ │ │ # CommandPalette, RecentFiles
│ │ ├── Layout/ # Sidebar, MenuBar, StatusBar, TitleBar
│ │ ├── Serial/ # SerialMonitor
│ │ └── Settings/ # Settings panels
│ ├── stores/ # aiStore, fileStore, settingsStore, uiStore
│ ├── hooks/ # useAI, useAgent, useBuild, useFileSystem,
│ │ # useSerial, usePlanContext
│ ├── lib/ # ai-prompts.ts, rag.ts, agent-tools.ts
│ └── types/ # Shared TypeScript types
├── src-tauri/
│ └── src/
│ ├── commands/ # ai.rs, filesystem.rs, platformio.rs, serial.rs
│ ├── lib.rs # App entry, plugin init, command registration
│ └── main.rs # Binary entry
├── AGENTS.md # Developer guide
└── package.json
- Settings toggle for "default implementation mode" is not exposed in the Settings UI
- Windows PTY terminal resize is a no-op due to ConPTY limitations
- Drag-drop files in FileExplorer is a stub
For a detailed list of all changes, see CHANGELOG.md.
See AGENTS.md for developer setup, code conventions, build commands, and release process.
Thanks to Jiya Mehta for brainstorming the concept and helping shape Embedist's vision.
MIT License — see LICENSE for details.
Made with ❤️ for embedded developers




