Roadmap

Where RPCortex is headed. Updated as versions ship and plans solidify.

v0.8.1 — Nebula Shipped

The final stable release of the β8 "Nebula" line. Closed out the beta backlog: unlimited WiFi profiles, manual recovery mode, --help flags, pkg commands, tilde expansion everywhere, password masking, a functional Program_Execution toggle, echo file redirection, and POST .mpy fallback.

v0.9.1 — Pulsar Shipped · Stable

The definitive β9 "Pulsar" release — succeeds v0.8.1 directly. Turns RPCortex from an interactive shell into something you can script, automate, and leave running headlessly. Every previous v0.9.0 goal is included and the scope was expanded to cover shell-power, packages, and the /Pulsar/ storage layout in one shot.

  • Persistent aliases — survive reboots via aliases.cfg
  • Pipescat file | grep ERROR | wc, real output-capture / exit-code convention
  • && / || chainingwifi connect && pkg update
  • Scripting (.rps)set/$vars, if/else, while; run by filename
  • Streamed cp / mv — 1 KB chunks; mv uses instant same-FS rename for zero copy
  • Configurable prompt hostname, date set RTC, du, watch
  • /Pulsar/ storage — registry, logs, and pkg cache moved from /Nebula/; auto-migrated on update
  • Startup tasksstartup add <cmd> runs commands automatically at login
  • Scheduled taskstask add <secs> <cmd> + foreground task run scheduler
  • Unattended modestartup add task run boots straight into a headless scheduler
  • Over-the-air updatesupdate check / update online over WiFi
  • PicoFetch & RPCMark (benchmark, formerly NebulaMark/PulseMark) — real updatable packages
  • NTP built-inntp sync sets the clock; startup add ntp sync -s for silent boot sync
  • New packagescalc, gpio, i2cscan
  • Compiled .mpy packagesmake_pkg.py --compile; loader auto-falls-back to .mpy
  • pkg install multiple names; PicoFetch / NTP user-removable
  • Download progress bars[####----] 47% on wget
  • Extended curl flags-X, -d, -H, -o, -s, -I, --timeout
  • wifi autoconnect — connect to the strongest saved network, no prompts
  • Silent flagsntp sync -s, wifi connect -s (errors only)
  • Owner & timezoneSystem.Owner, System.TZ_Offset
  • Recovery toolsfscheck, diag, logdump, regreset, pkgdisable
  • Faster deploy — single chained mpremote session (~30× faster than per-file)
Shipped as the stable baseline — the current Install / Update default.
v0.9.5 — Pulsar Folded into v1.0

The multitasking exploration — getting uasyncio working alongside the shell safely. It did its job as a stepping stone, so rather than ship a throwaway incremental release it was folded directly into v1.0; v0.9.1 stays the stable v0.9.x. The foundation below is now the v1.0 base.

  • uasyncio integration — background services run while the shell stays interactive
  • Concurrency safety — cooperative model, screen-ownership, crash-isolated services
  • Background tasks — scheduled tasks fire while idle, no foreground blocker
  • Supervised background serviceshttpd --bg, the service manager, services.cfg
v1.0 — Vela Shipped · Stable

The 1.0 milestone — true multitasking. The shell is async by default: a foreground app (e.g. sysmon) runs cooperatively alongside background services (e.g. httpd --bg) on one event loop and one terminal. The classic synchronous shell stays as the crash / recovery fallback so older setups never break. This is the current stable release — the Install and Update default.

  • Cooperative app framework (appkit) — screen ownership + non-blocking read_key; apps yield so services keep ticking
  • Async by default — background services run while you keep using the prompt (asyncmode off returns the classic shell)
  • Full async line editor — history, Tab completion, cursor + word navigation, shared with the classic shell
  • Async networking (Tier 2)ping/wget/curl (incl. HTTPS) yield to the loop, and httpd --bg streams responses without freezing services
  • Cooperative TUIssysmon, settings, and the file managers (files/desktop/ide) plus the editor all run on the loop
  • Opt-in beta updatesupdate channel beta + a separate OTA manifest; stable devices are never auto-moved
v1.0 is the stable release — grab it from the installer, or run update online on any device to move up to it. Hardware-verified on the Pico 2W and ESP32-S3. It is also the last MicroPython release: what comes next is a native rewrite. See the switch to C++.
🔵
v2.0 — Vela II Pre-release · Beta

RPCortex rewritten in C++, native on the hardware, with no interpreter underneath. Same shell, same commands, same accounts, same package system — and RPCMark scores around 200× what a v1 device does on the same workload. There is no v1.1: the effort that would have gone into it went here. The full reasoning is here.

  • Runtime package loader — compiled apps are loaded, relocated and run at runtime, then unloaded cleanly. This was the go/no-go for keeping a package system without an interpreter, and it went
  • The shell — more commands than v1 had, plus its aliases, pipes, && / ||, redirection, quoting
  • Line editing — cursor and word navigation, history, Tab completion over commands and paths
  • Accounts — salted SHA-256, roles, the guided first-run setup, login backoff
  • Filesystem — littlefs, in the same on-disk format a v1 device already uses
  • WiFi — scan, connect, saved networks, autoconnect
  • The console — v1’s tagged output, colours and boot banner, reproduced rather than reinterpreted
  • Package repositorypkg against a real index, installing over the air
  • The whole command setping, ntp, wget/curl, watch, the editor, and more than v1 had
  • Over-the-air updates — staged in a second flash slot and verified before a byte of firmware is written
  • Packages cannot take the device down — unprivileged on RP2350, every pointer range-checked, and all three ways one can misbehave contained
  • Bluetooth — an LE scan, confirmed on a Pico 2 W. Classic and audio are written and host-tested, still to be met by a real device
  • A USB drive — drag files on and off, in both directions
  • The Pico 1 and 1 W, on a real board — without an interpreter, 264 KB stopped being the wall it was, and the images build and pass their checks. Nobody has booted one yet
  • The rest of v1’s packages — the v2 index is still the shorter of the two, and the gap is what a user notices
  • SD cards, on a real card — the driver, the read-only FAT reader and the sd command are written and host-tested; what is left is running them against a card in a slot
  • ESP32-S3 and the other ESP32 parts — the portable core moves unchanged; the context switch, storage and network layers are the work
  • USB HID — BadUSB, U2F, and the composite-device work that needs native USB
v1.0 keeps working and stays installable, and remains the answer on an ESP32 until the port lands — nothing is being taken away. Direction, not a contract; priorities shift with what people actually want.
Package ideas Anytime

Packages install and update independently of the OS, so these don’t gate any release — they can land whenever someone builds them.

v2: httpd · websearch · speedtest · dht · gpio · i2cscan · ws2812 · calc · tuidemo · greet · novad1, plus bench, probe, stress and havoc for measuring and breaking things. Browse and one-click install them on the Packages page, which detects which OS your device runs.

  • mqtt — publish / subscribe so RPCortex can talk to Home Assistant, Node-RED, and friends.
  • git — clone / fetch repositories (read-mostly); the heaviest of the set.
Got an idea for a package? Open an issue or drop it in Discord — see the Package Dev guide to build your own.