A browser-based MicroPython IDE. Plug in a microcontroller, open the page, write code — no installs, no drivers, no extensions.
Features
- Python editor with syntax highlighting (CodeMirror 6).
- Live REPL over the Web Serial API at 115200 baud, with raw-paste mode for fast uploads of larger programs.
- Run on device — execute the editor's contents on the connected board and watch output stream into the integrated terminal.
- Local file access — open
.pyfiles from your computer via the File System Access API; the last folder you opened is restored on reload. - Device filesystem browser — list, read, write, and delete files on the microcontroller; create directories.
- AI coding assistant (optional) — a built-in chat panel that can read and write the editor, run snippets, and inspect the device filesystem. Powered by Google Gemini; bring your own API key.
- Progressive Web App — installable on desktop and mobile.
- Light / dark themes, toggled from the toolbar.
Requirements
- A Chromium-based browser (Chrome, Edge, Brave, Opera, Arc). The Web Serial and File System Access APIs aren't available in Firefox or Safari.
- A microcontroller running MicroPython. Raspberry Pi Pico is the primary target, but any MicroPython device that exposes a USB serial REPL should work.
Running locally
git clone https://github.com/andreban/cobweb cd cobweb npm install npm run dev # http://localhost:5173
Production build:
npm run build # output in dist/ npm run preview # preview the production build
Using the AI assistant
The AI panel is opt-in. To enable it:
- Open Settings in the toolbar.
- Paste a Google AI Studio API key and pick a Gemini model.
- Save. The key is stored locally in your browser only — no server is involved.
Development
npm run lint # ESLint npm run format # Prettier (auto-fix in src/) npm run test # Vitest (single run) npm run test:watch # Vitest (watch mode)
Built with React 19, Vite 8, TailwindCSS 4, CodeMirror 6, and xterm.js. Tests run on happy-dom via Vitest.
Architecture details and contribution conventions live in CLAUDE.md, docs/PRD.md, and docs/SPEC.md. Per-feature design docs live in docs/<feature>/ and are moved to docs/archive/<feature>/ once shipped.