A browser-based MicroPython + FPGA IDE for the Vicharak Shrike-Lite — v0.1.0
Geto Web IDE (repository name: Shrike Web IDE) is a browser-based development environment for the Vicharak Shrike-Lite, a board that pairs an RP2040 microcontroller with a small FPGA. You plug the board in over USB, press Connect, and can write MicroPython, run it on the board, watch live output, manage the board's files, and load FPGA designs, all inside one browser tab.
The project was created because getting started with a microcontroller + FPGA board normally means installing several tools, picking the right board packages, and learning how each part talks to the others. Geto removes that setup entirely: there is no account, no installer, and no server, and projects stay in your browser. It talks to the hardware directly through the Web Serial API.
Editor, Run/Stop controls and live MicroPython terminal
FPGA panel and on-board file manager
Geto is a fully client-side single-page app. A serial transport layer opens the board through Web Serial, and a raw-REPL layer on top of it runs Python on the device, the same mechanism tools like Thonny and mpremote use. There is no host-side filesystem API: the device file manager lists, reads and writes files by executing plain Python (os, open, binascii) on the board and moving data in hex-encoded chunks, with checks so a saved file matches what was sent.
On top of that sit the editor, terminal, file explorer, FPGA tools and firmware updater, all talking to a single device session. Projects live in browser storage, and the finished build is a static site hosted on Cloudflare Pages.
You'll need a Shrike-Lite (or compatible Shrike board) running Vicharak's MicroPython firmware, a USB-C data cable, and Chrome or Edge on a desktop. Then open ide.adeepag.com, press Connect, and try this in the terminal:
To run the IDE locally (Node 18+):
Challenge: Managing files on a board from a browser, where there is no filesystem access to the device.
Solution: Implemented all file operations as plain Python executed over the raw REPL, transferring data hex-encoded in chunks and verifying saves so the file on the board matches the file sent.
Challenge: Runaway programs and leftover state making experiments unreliable.
Solution: Added a configurable run timeout, an instant Stop that interrupts the running program, and an optional soft reset before every run.
Challenge: Browsers cannot write into the board's bootloader drive, so firmware updates can't be fully automatic.
Solution: Built a firmware updater that detects the chip, downloads the right build, and says clearly when a manual BOOTSEL step is still needed instead of claiming something was flashed when it wasn't.
Geto Web IDE is live at ide.adeepag.com and works on any desktop with Chrome or Edge, with nothing to install. It covers the full beginner workflow on the Shrike-Lite (write, run, stop, manage files, flash the FPGA) in one window, which makes it suited to learning, classrooms and workshops where installing tools on every machine isn't practical. Beyond its practical use, it has been a hands-on project in Web Serial, device protocols, a typed multi-module TypeScript codebase, automated testing and CI, and static deployment.
Geto Web IDE is released as an open-source project under the MIT License. See the LICENSE file in the GitHub repository for details.
Built and maintained by Adeep AG for the Vicharak Shrike boards, using CodeMirror and xterm.js. Shrike and Shrike-Lite are products of Vicharak. Bug reports, feature requests and focused contributions are welcome through the GitHub repository.
Found a bug or have a question? Open an issue on GitHub, or reach out through the contact page.