From c2d4ea2ea589fe99eb9c1c36dc40b39c3dbdd6d2 Mon Sep 17 00:00:00 2001 From: Jerry Yuan Date: Thu, 6 Aug 2026 14:39:52 +0800 Subject: [PATCH 1/5] =?UTF-8?q?docs(blog):=2046=20MB=20of=20agent,=2032=20?= =?UTF-8?q?MB=20of=20PSRAM=20=E2=80=94=20Pocket=20Pi=20on=20the=20ESP32-P4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New blog post covering the Pocket Pi embedded port: the 46.6 MB desktop- profile measurement that forced a second pi-agent-core profile, QuickJS hosting the agent and PocketJS draw lists on the 720x1280 panel with zero engine changes, the bring-up failure catalog, the on-device acceptance run, and the apps-are-files direction. Hero image is four simulator screens of the shared pocket-pi-device-ui crate; diagrams are inline SVGs in the blog's house style. Co-Authored-By: Claude Fable 5 --- site/assets/blog/pocket-pi-esp32-hero.png | Bin 0 -> 225295 bytes site/content/blog/pocket-pi-on-esp32-p4.md | 210 +++++++++++++++++++++ site/nav.ts | 8 + 3 files changed, 218 insertions(+) create mode 100644 site/assets/blog/pocket-pi-esp32-hero.png create mode 100644 site/content/blog/pocket-pi-on-esp32-p4.md diff --git a/site/assets/blog/pocket-pi-esp32-hero.png b/site/assets/blog/pocket-pi-esp32-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9209ffe2cca77ce130e7a8cc363d12f02a9369 GIT binary patch literal 225295 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

3TLhU1*pX&jhjGu`(bLip&0Ym9_yObA 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

+0Va@;IUb@V6CDAIjh?_hvwjXQn-Cp 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 + +

Four screens of the same pocket-pi-device-ui crate the ESP32-P4 firmware compiles — identity, a self-created schedule, the LittleFS workspace, the file viewer — captured in the macOS simulator host, which shares the draw list, font atlases and touch hit map with the board.

+ +[Pocket Pi](https://github.com/pocket-stack/pocket-pi) runs the [Pi coding agent](https://github.com/badlogic/pi-mono) in QuickJS. On the desktop it boots the full, unmodified `pi-coding-agent` bundle — and just constructing that runtime, before any model call, takes 46.6 MB of JS heap. The ESP32-P4 has 32 MB of PSRAM, total, for everything: framebuffers, Wi-Fi, TLS, filesystem, and the agent. + +This post is how the same agent — loop, tools, workspace, scheduler, persistence — now runs on that board anyway ([PR #9](https://github.com/pocket-stack/pocket-pi/pull/9), 85 files), with a PocketJS touch UI on a 720×1280 panel, reading and writing its own filesystem, waking itself up on its own schedule, and surviving a pulled power cable. If you are new here: [PocketJS](/blog/introducing-pocketjs/) runs real web-framework components on 2004 handhelds inside an 8 MB budget. This time its runtime got a different kind of tenant. + +## The loop was never the heavy part + +The obvious ports were dead on arrival. Claude Code is a closed binary with no RISC-V build — no porting entry point at all. Codex is open-source Rust, but it leans on processes, PTYs, Git, and a sandbox; you would rewrite the operating-system-shaped half before touching agent logic. + +Pi is different by design: an agent loop, a tool registry with explicit schemas, and a provider transport — and nothing in that trio inherently needs Node. Strip away the desktop platform and the plan fits in one sentence: QuickJS hosts the loop, and everything Pi expects from an operating system becomes a native Rust capability with a schema. + +## The measurement that split the runtime + +The first idea was to compile the desktop profile for the board unchanged. So we measured it: + + + + QuickJS heap, measured + full pi-coding-agent, boot + + + 46.6 MB + 27.4 MB compiled JS functions + ESP32-P4 PSRAM, total — incl. framebuffers & Wi-Fi + + 32 MB + pi-agent-core, one turn held + + ~1.3 MB + + +That chart closed the debate in an afternoon. What shipped is one runtime family, two profiles, three hosts: + + + + + crates/pocket-pi + full pi-coding-agent · 9 MB bundle + + crates/pocket-pi-embedded + pi-agent-core · 304 KB bundle + + + + hosts/macos + + crates/pocket-pi-device-ui + one draw list · one hit map · one font set + + + + firmware/esp32-p4 + the board + + esp32-p4-sim + same product, Mac + two profiles of one agent — not three forks + + +The desktop profile keeps the full `pi-coding-agent` behind a Node/Web compatibility layer — Pi itself is never patched. The embedded profile runs upstream `pi-agent-core` with only the shims it genuinely needs: `TextEncoder`, microtasks, `URL`. We learned about `URL` the honest way: the first on-device tool call died with `URL is not defined`. + +The whole firmware image is 3.4 MB — 21% of the app partition. Both profiles keep the Pi Harness contract intact, which is the point: this is a smaller composition of the same agent, not a lookalike. + +## PocketJS on both sides of the glass + +PocketJS contributed two halves of this device. + +The invisible half: **QuickJS, PocketJS's engine, hosts the agent itself.** The same runtime that runs pre-bundled UI code on a PSP turns out to be exactly the right size for `pi-agent-core` — bounded, embeddable, no JIT, and a heap you can steer into PSRAM. The agent's brain runs where PocketJS apps run. + +The visible half is the glass. Chat with streamed replies, a workspace file browser, Wi-Fi settings, an on-screen keyboard, and a telemetry bar are a Rust crate emitting PocketJS draw lists straight to the panel: + + + + + PocketJS + draw list + + + damage + regions + + + PPA + hardware blit + + + 3× RGB565 + 5.5 MB PSRAM + + + MIPI-DSI + 720×1280 panel + quiet frames are nearly free; a full redraw is 921,600 pixels + + +Linking the renderer into the firmware cost about **24 KB of code**. And the number we care most about: **zero PocketJS engine changes** — the port pins an unmodified upstream revision. Fonts, hit maps, and framebuffer plumbing live in the product crate, where they belong. + +The same UI crate compiles into the firmware and into a macOS simulator: one draw list, one set of font atlases, one touch hit map — that is what the hero image above is showing. The simulator maps mouse clicks into panel coordinates and dispatches them through the same `handle_tap` as the hardware touch controller; it swaps Mac directories for LittleFS and a wgpu window for MIPI-DSI, nothing else. Screens and tool flows iterate in seconds on the Mac; the physical board stays the acceptance target. + +## What the board actually runs + +The target is a Waveshare ESP32-P4 dev kit: dual-core RISC-V at 400 MHz, 32 MB PSRAM, 32 MB flash, a 5-inch touch panel. The P4 has no radio of its own; Wi-Fi lives on an onboard ESP32-C6 across SDIO. + + + + + ESP32-P4 + + QuickJS — pi-agent-core + 304 KB bundle · ~1.3 MB heap per turn + + PocketJS UI · 720×1280 RGB565 + chat · files · settings · keyboard · telemetry + + native Rust tools + read · write · edit · find · grep · ls · bash* + device.status · time.now · workspace.context + schedule.set / list / cancel / clear + + LittleFS workspace — 8 MB + agent files · schedule.json · chat JSONL + survives reboot and power cuts + *bash is an allowlisted dispatcher — no processes, no pipes, no /bin + + streaming model boundary + + + + UartBackend + Mac bridge → Codex / Claude Code CLI + + WirelessBackend + HTTPS → OpenAI / OpenRouter / Anthropic + + +Schedules persist to `/workspace/.pi-agent/schedule.json`; missed wakes collapse into one catch-up run. Chat history is append-only JSONL with rotation, restored into both the UI and the model context on boot. The Pi runtime reads tool definitions from the executable registry itself, so advertised and executable tools cannot drift. + +One confession about `bash`: it is an allowlisted command dispatcher, not a shell. An ESP32 has no processes, no pipes, no `/bin` — pretending otherwise would just teach the model to fail. It advertises what exists (`ls`, `cat`, `grep`, `wifi status`, `reboot`) and rejects backticks. + +The model is the one thing not on the board, by design. `WirelessBackend` speaks Chat Completions and Anthropic Messages over the C6's Wi-Fi; `UartBackend` streams through a Mac's logged-in Codex or Claude Code CLI during development. Either way, the loop, the tools, the workspace, the scheduler, and every byte of state live on the board. Inference is a remote dependency — same as your laptop. + +## Things that break at this size + +**esbuild fought QuickJS.** Full minification produces deeply nested expressions; QuickJS parses them recursively and blew an 8 KB task stack before the agent ever ran. A later regression made QuickJS parse a 198 KB bundle for four minutes, tripping the 5-second watchdog. Fix: `minifyWhitespace` only, plus a 64 KB stack for the agent task. + +**The screen kept flashing blue.** Once per second: chat → black → blue → chat. We fixed it three times. Triple buffering helped but didn't cure it; the real cause was the MIPI-DSI controller underrunning while fetching frames from PSRAM — the ESP-IDF driver source literally documents that the panel "may turn blue." Damage-region rendering cut the write traffic; dropping the pixel clock from 58 MHz to 34 MHz and enabling the PPA finished it. + +**Logs and the model shared a wire.** Model transport and ESP-IDF logging both use UART0, so a five-second heartbeat log spliced itself into JSON frames — and one provisioning frame exceeded the console's ~1 KB RX buffer, truncating at byte 1026. The firmware now silences all logging after the agent's ready handshake. + +**Out of memory with 30 MB free.** The first Wi-Fi transmit asserted deep in the SDIO transport — not because PSRAM was full, but because internal DMA-capable SRAM was. On this chip, allocation order is architecture: Wi-Fi before QuickJS, the JS heap steered into PSRAM, 128 KB of internal RAM reserved for DMA. + +**The apostrophe incident.** With everything working, the model streamed `I'm Pocket Pi` — and the panel rendered `I?m`. The font atlases were ASCII-only, and the model uses U+2019 like any well-raised language model. The last fix of the bring-up baked curly quotes, dashes, and the ellipsis into all four atlases with the PocketJS font baker. If you want proof that a real model is talking to your firmware, typography is it. + +## Proof beats vibes + +The acceptance run is a 45-second recording of the board doing, in order: + +1. answering `Who are you?` as a Pi agent on an ESP32-P4; +2. calling `device.status` and reporting live heap numbers — values that change between runs, so they can't be canned; +3. reading three workspace files and writing a summary it composed itself, then showing the new file in the Files browser; +4. setting a one-minute schedule and waking up on its own, untouched, to reply; +5. coming back from a hard power cut with files and schedules intact — they live in LittleFS, not RAM. + +Each step closes a specific skeptic's loophole: real tool calls instead of scripted text, a filesystem that visibly changed, a wake with no hands on the device, and persistence proven by cutting power rather than by claiming it. + +## The gaps, named, because that is house policy + +- The board runs the embedded `pi-agent-core` profile, not the desktop `pi-coding-agent` unchanged. That distinction is load-bearing and 46.6 MB wide. +- File tools and the on-device viewer handle UTF-8 text — Markdown, JSON, CSV, code. No PDFs, no images. +- `bash` is an allowlisted dispatcher, not POSIX. +- Inference is remote; the model is a provisioned network service. +- Model transport errors still render as chat text rather than a proper faulted state. + +## Apps are files + +Here is where this goes. On this device, an app is **tools plus a view**: tools produce structured data, a view projects it onto the panel. A search app is a pair of research tools plus a history screen; a portfolio app is a set of read-only brokerage tools plus a positions screen. Both halves are declarative enough to live as files — in the agent's own workspace: + +```text +apps/research/ +├── app.toml id · version · entry · permissions +├── src/tools.ts agent-editable +├── src/view.ts agent-editable +└── releases// immutable, validated, rollback target +``` + +That changes what "installing software" means. The agent already reads, writes, edits, and greps its filesystem; add a manifest and a draft → validate → release lifecycle, and the agent can iterate its own apps — merge two tools into one, add a field to a result, redesign a view, promote the draft, roll it back. The plan is an `APPS` tab next to Chat and Files, where every app has a product view *and* a files view: the UI it presents, and the source the agent maintains. + +The vision in one sentence: everything essential about an agent — its memory, its schedules, its tools, and eventually its apps — as files on an 8 MB flash partition, with a loop that can revise them and a screen that can show them. Self-evolution as a filesystem property, on a microcontroller, powered by PocketJS. + +## Try it + +The repo is [pocket-stack/pocket-pi](https://github.com/pocket-stack/pocket-pi). The simulator runs the same embedded agent, tool registry, and UI crate as the firmware: + +```sh +cargo xtask run esp32-p4-sim --backend codex --workspace target/esp32-workspace +``` + +And if you have the board: + +```sh +cargo xtask build esp32-p4 +espflash flash --baud 921600 --port "$DEVICE_PORT" \ + firmware/esp32-p4/target/riscv32imafc-esp-espidf/release/pocket-pi-p4 +python3 tools/uart-model-bridge.py "$DEVICE_PORT" --backend uart --provider codex +``` + +An agent turned out to be the cheap part of an agent: the loop, the tools, the schedules, and the memory fit in 304 KB of JavaScript and an 8 MB flash partition, with room to spare on a microcontroller. Ask it who it is. It knows. diff --git a/site/nav.ts b/site/nav.ts index 083017e4..d19f2712 100644 --- a/site/nav.ts +++ b/site/nav.ts @@ -55,6 +55,14 @@ export interface BlogPost { } export const BLOG_POSTS: BlogPost[] = [ + { + slug: "pocket-pi-on-esp32-p4", + title: "46 MB of Agent, 32 MB of PSRAM: Pocket Pi on the ESP32-P4", + date: "2026-08-06", + description: + "Booting the full pi-coding-agent bundle takes 46.6 MB of QuickJS heap; the ESP32-P4 has 32 MB of PSRAM for everything. So Pocket Pi grew a second profile: upstream pi-agent-core as a 304 KB bundle in QuickJS — PocketJS's engine — with the Pi tools as native Rust capabilities and a PocketJS draw-list UI on the 720×1280 panel. The agent reads and writes its own LittleFS workspace, wakes itself on its own schedules, and survives a pulled power cable. Zero PocketJS engine changes. Also: the screen that kept turning blue, the bundle QuickJS parsed for four minutes, and the apostrophe the font atlas couldn't draw.", + author: { name: 'Siwei "Jerry" Yuan', url: "https://github.com/siwei-yuan" }, + }, { slug: "octane-on-psp", title: "useState at 333 MHz: Octane Is PocketJS's Third Framework", From f0a93b7cd7d9aabfe7c9be177030c87e7bb7bcfd Mon Sep 17 00:00:00 2001 From: Jerry Yuan Date: Thu, 6 Aug 2026 15:48:48 +0800 Subject: [PATCH 2/5] docs(blog): recenter the post on the missing runtime and the resident agent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rework the narrative per review: lead with why the whole agent runs on the device (no companion server for the loop) and why the harness stays TypeScript (behavior as files vs. firmware releases), then frame the core contribution — a Node-class runtime for the ESP32-P4 built in Rust around QuickJS, which embedded JS engines never provided. Apps-are-files shrinks to a closing outlook line. Title and nav description updated. Co-Authored-By: Claude Fable 5 --- site/content/blog/pocket-pi-on-esp32-p4.md | 121 +++++++++------------ site/nav.ts | 4 +- 2 files changed, 55 insertions(+), 70 deletions(-) diff --git a/site/content/blog/pocket-pi-on-esp32-p4.md b/site/content/blog/pocket-pi-on-esp32-p4.md index 4d20ecac..2a621213 100644 --- a/site/content/blog/pocket-pi-on-esp32-p4.md +++ b/site/content/blog/pocket-pi-on-esp32-p4.md @@ -2,19 +2,25 @@

Four screens of the same pocket-pi-device-ui crate the ESP32-P4 firmware compiles — identity, a self-created schedule, the LittleFS workspace, the file viewer — captured in the macOS simulator host, which shares the draw list, font atlases and touch hit map with the board.

-[Pocket Pi](https://github.com/pocket-stack/pocket-pi) runs the [Pi coding agent](https://github.com/badlogic/pi-mono) in QuickJS. On the desktop it boots the full, unmodified `pi-coding-agent` bundle — and just constructing that runtime, before any model call, takes 46.6 MB of JS heap. The ESP32-P4 has 32 MB of PSRAM, total, for everything: framebuffers, Wi-Fi, TLS, filesystem, and the agent. +The [Pi coding agent](https://github.com/badlogic/pi-mono) now runs on an ESP32-P4 — not as a screen for an agent living on a server, but complete: the loop, the tools, the workspace, the schedules, and every byte of state on the board ([PR #9](https://github.com/pocket-stack/pocket-pi/pull/9)). The interesting part is not that a microcontroller can chat. It is that Pi is a TypeScript harness that assumes Node ≥ 22, and nothing like Node existed on this chip. Embedded JavaScript has always meant an *engine* — an interpreter and a language — never a *runtime* a real server-side program can boot on. [Pocket Pi](https://github.com/pocket-stack/pocket-pi) is that runtime, built in Rust around QuickJS and measured out by exactly what Pi touches. -This post is how the same agent — loop, tools, workspace, scheduler, persistence — now runs on that board anyway ([PR #9](https://github.com/pocket-stack/pocket-pi/pull/9), 85 files), with a PocketJS touch UI on a 720×1280 panel, reading and writing its own filesystem, waking itself up on its own schedule, and surviving a pulled power cable. If you are new here: [PocketJS](/blog/introducing-pocketjs/) runs real web-framework components on 2004 handhelds inside an 8 MB budget. This time its runtime got a different kind of tenant. +If you are new here: [PocketJS](/blog/introducing-pocketjs/) runs real web-framework components on 2004 handhelds inside an 8 MB budget. This post is about what its engine carries when the tenant is not a UI but an agent. -## The loop was never the heavy part +## Why Pi, and why all of it -The obvious ports were dead on arrival. Claude Code is a closed binary with no RISC-V build — no porting entry point at all. Codex is open-source Rust, but it leans on processes, PTYs, Git, and a sandbox; you would rewrite the operating-system-shaped half before touching agent logic. +Two decisions shaped this project, and both are worth defending because the obvious alternatives are genuinely tempting. -Pi is different by design: an agent loop, a tool registry with explicit schemas, and a provider transport — and nothing in that trio inherently needs Node. Strip away the desktop platform and the plan fits in one sentence: QuickJS hosts the loop, and everything Pi expects from an operating system becomes a native Rust capability with a schema. +**The whole agent runs on the device.** The default architecture for "AI hardware" is a thin client: the device renders, a server thinks. That is the easy build, and it quietly makes the device an accessory — its brain has a hosting bill, its schedules fire only while a backend exists, its files live in someone else's region. We wanted the opposite: the agent loop, the tool executor, the workspace, and the scheduler resident on the board, so that "wake up in a minute and check the file you wrote" involves no machine other than the one on the desk. Inference still comes from a model API over the network — the same dependency a laptop has — but every decision *about* the model reply, every tool call, and every persisted byte happens locally. -## The measurement that split the runtime +**The harness stays TypeScript.** The natural instinct on a microcontroller is to write the agent harness in Rust — it is already the firmware language, and an agent loop is just a loop. We had that option and declined it, for a reason that compounds over time: in a Rust harness, the agent's behavior is compiled, so a new tool composition or a revised policy is a firmware release. In Pi, behavior is data. Tools are schema'd values, extensions are factory functions, memory is a directory of Markdown. Pocket Pi's desktop profile already exploits this — extensions are TypeScript transpiled at runtime with oxc and injected through Pi's `extensionFactories` seam, so the agent can extend itself without anyone recompiling anything. QuickJS does not care whether the bundle it loads was baked at build time or written five minutes ago by the loop it hosts. An agent that can edit files can, in principle, edit itself — and that property is why porting Pi's runtime was worth more than reimplementing Pi's loop. -The first idea was to compile the desktop profile for the board unchanged. So we measured it: +Pi itself earns the port: it is a deliberately minimal harness with a real extension ecosystem, and its three parts — loop, tool registry, provider transport — are cleanly separated. Nothing in that trio inherently needs Node. It just assumes Node, everywhere, casually, the way server-side JavaScript does. + +## The runtime nobody had built + +Microcontrollers have JavaScript engines: QuickJS, JerryScript, Espruino, Moddable XS. Each gives you ECMAScript; some give you a module system of their own. None gives you the floor a real TypeScript program stands on — Node-compatible builtins, `fetch` and streams, buffers, an event loop wired into the host's I/O, an ESM graph with dynamic loading. That gap between *an interpreter on a chip* and *a runtime that boots server-side software* is exactly the part nobody had shipped for this class of hardware. + +So Pocket Pi is a runtime family, in Rust, around QuickJS — with two compositions, because we measured before choosing: @@ -32,7 +38,11 @@ The first idea was to compile the desktop profile for the board unchanged. So we ~1.3 MB -That chart closed the debate in an afternoon. What shipped is one runtime family, two profiles, three hosts: +The **desktop composition** runs the full, unmodified `pi-coding-agent` — sessions, extensions, the works — with no Node or Bun on the machine. Its Rust host implements the Node surface Pi's 9 MB bundle actually exercises: filesystem, `path`, `Buffer`, events, streams, `process`, synchronous subprocesses, and a global streaming `fetch`. It even rewrites indirect ESM re-exports at build time, because Pi's dependency graph contains re-export cycles that QuickJS's module loader refuses. That composition is a real Node-shaped runtime; it is also, as the chart says, a 46.6 MB tenant. The board has 32 MB. + +The **embedded composition** is the same idea taken to its floor. Upstream `pi-agent-core` — the loop, the turn state, the tool-call protocol — bundles to **304 KB** and holds a conversation turn in about **1.3 MB** of heap. The Rust host under it provides only what that core touches: `TextEncoder`, a microtask pump, `URL`, a streaming model transport, and native tool dispatch. Nothing speculative. We know the list is honest because every missing item announced itself: the first on-device tool call died with `URL is not defined`. + +One runtime family, two profiles, three hosts: @@ -60,49 +70,11 @@ That chart closed the debate in an afternoon. What shipped is one runtime family two profiles of one agent — not three forks -The desktop profile keeps the full `pi-coding-agent` behind a Node/Web compatibility layer — Pi itself is never patched. The embedded profile runs upstream `pi-agent-core` with only the shims it genuinely needs: `TextEncoder`, microtasks, `URL`. We learned about `URL` the honest way: the first on-device tool call died with `URL is not defined`. - -The whole firmware image is 3.4 MB — 21% of the app partition. Both profiles keep the Pi Harness contract intact, which is the point: this is a smaller composition of the same agent, not a lookalike. - -## PocketJS on both sides of the glass - -PocketJS contributed two halves of this device. - -The invisible half: **QuickJS, PocketJS's engine, hosts the agent itself.** The same runtime that runs pre-bundled UI code on a PSP turns out to be exactly the right size for `pi-agent-core` — bounded, embeddable, no JIT, and a heap you can steer into PSRAM. The agent's brain runs where PocketJS apps run. - -The visible half is the glass. Chat with streamed replies, a workspace file browser, Wi-Fi settings, an on-screen keyboard, and a telemetry bar are a Rust crate emitting PocketJS draw lists straight to the panel: - - - - - PocketJS - draw list - - - damage - regions - - - PPA - hardware blit - - - 3× RGB565 - 5.5 MB PSRAM - - - MIPI-DSI - 720×1280 panel - quiet frames are nearly free; a full redraw is 921,600 pixels - - -Linking the renderer into the firmware cost about **24 KB of code**. And the number we care most about: **zero PocketJS engine changes** — the port pins an unmodified upstream revision. Fonts, hit maps, and framebuffer plumbing live in the product crate, where they belong. - -The same UI crate compiles into the firmware and into a macOS simulator: one draw list, one set of font atlases, one touch hit map — that is what the hero image above is showing. The simulator maps mouse clicks into panel coordinates and dispatches them through the same `handle_tap` as the hardware touch controller; it swaps Mac directories for LittleFS and a wgpu window for MIPI-DSI, nothing else. Screens and tool flows iterate in seconds on the Mac; the physical board stays the acceptance target. +Pi itself is never patched in either profile, and the Pi Harness contract — the model decides when to call a tool, tools return structured results, the loop knows nothing about transports — survives intact. This is a smaller composition of the same agent, not a lookalike. The whole firmware image is 3.4 MB, 21% of the app partition. ## What the board actually runs -The target is a Waveshare ESP32-P4 dev kit: dual-core RISC-V at 400 MHz, 32 MB PSRAM, 32 MB flash, a 5-inch touch panel. The P4 has no radio of its own; Wi-Fi lives on an onboard ESP32-C6 across SDIO. +The target is a Waveshare ESP32-P4 dev kit: dual-core RISC-V at 400 MHz, 32 MB PSRAM, 32 MB flash, a 5-inch 720×1280 touch panel. The P4 has no radio of its own; Wi-Fi lives on an onboard ESP32-C6 across SDIO. @@ -136,11 +108,37 @@ The target is a Waveshare ESP32-P4 dev kit: dual-core RISC-V at 400 MHz, 32 MB P HTTPS → OpenAI / OpenRouter / Anthropic -Schedules persist to `/workspace/.pi-agent/schedule.json`; missed wakes collapse into one catch-up run. Chat history is append-only JSONL with rotation, restored into both the UI and the model context on boot. The Pi runtime reads tool definitions from the executable registry itself, so advertised and executable tools cannot drift. +The tools are the agent's operating system, and they are all native Rust behind Pi's schemas: six file tools on an 8 MB LittleFS partition, `device.status`, `time.now`, a `workspace.context` memory aggregator, and four `schedule.*` operations for one-off and recurring wake prompts. Schedules persist to `/workspace/.pi-agent/schedule.json`; missed wakes collapse into one catch-up run. Chat history is append-only JSONL, restored into both the UI and the model context on boot. The Pi runtime reads tool definitions from the executable registry itself, so advertised and executable tools cannot drift. And one confession: `bash` is an allowlisted dispatcher, not a shell — an ESP32 has no processes, no pipes, no `/bin`, and pretending otherwise would just teach the model to fail. + +The glass is PocketJS's other contribution. The same engine that hosts the agent has a sibling crate emitting draw lists straight to the panel: + + + + + PocketJS + draw list + + + damage + regions + + + PPA + hardware blit + + + 3× RGB565 + 5.5 MB PSRAM + + + MIPI-DSI + 720×1280 panel + quiet frames are nearly free; a full redraw is 921,600 pixels + -One confession about `bash`: it is an allowlisted command dispatcher, not a shell. An ESP32 has no processes, no pipes, no `/bin` — pretending otherwise would just teach the model to fail. It advertises what exists (`ls`, `cat`, `grep`, `wifi status`, `reboot`) and rejects backticks. +Linking the renderer cost about **24 KB of code**, and — the number we care most about — **zero PocketJS engine changes**: the port pins an unmodified upstream revision. The same UI crate also compiles into a macOS simulator (that is what the hero image shows): one draw list, one set of font atlases, one touch hit map, with mouse clicks dispatched through the same `handle_tap` as the hardware touch controller. Product flows iterate in seconds on the Mac; the board stays the acceptance target. -The model is the one thing not on the board, by design. `WirelessBackend` speaks Chat Completions and Anthropic Messages over the C6's Wi-Fi; `UartBackend` streams through a Mac's logged-in Codex or Claude Code CLI during development. Either way, the loop, the tools, the workspace, the scheduler, and every byte of state live on the board. Inference is a remote dependency — same as your laptop. +The model is the one thing not on the board, by design: `WirelessBackend` speaks Chat Completions and Anthropic Messages over the C6's Wi-Fi, and `UartBackend` streams through a Mac's logged-in Codex or Claude Code CLI during development. Inference is a remote dependency — same as your laptop. Everything that decides, executes, and remembers is local. ## Things that break at this size @@ -169,27 +167,12 @@ Each step closes a specific skeptic's loophole: real tool calls instead of scrip ## The gaps, named, because that is house policy - The board runs the embedded `pi-agent-core` profile, not the desktop `pi-coding-agent` unchanged. That distinction is load-bearing and 46.6 MB wide. +- The embedded runtime is not general Node: it implements what `pi-agent-core` exercises, and a dependency that wants more will say so at parse or boot. - File tools and the on-device viewer handle UTF-8 text — Markdown, JSON, CSV, code. No PDFs, no images. - `bash` is an allowlisted dispatcher, not POSIX. - Inference is remote; the model is a provisioned network service. - Model transport errors still render as chat text rather than a proper faulted state. -## Apps are files - -Here is where this goes. On this device, an app is **tools plus a view**: tools produce structured data, a view projects it onto the panel. A search app is a pair of research tools plus a history screen; a portfolio app is a set of read-only brokerage tools plus a positions screen. Both halves are declarative enough to live as files — in the agent's own workspace: - -```text -apps/research/ -├── app.toml id · version · entry · permissions -├── src/tools.ts agent-editable -├── src/view.ts agent-editable -└── releases// immutable, validated, rollback target -``` - -That changes what "installing software" means. The agent already reads, writes, edits, and greps its filesystem; add a manifest and a draft → validate → release lifecycle, and the agent can iterate its own apps — merge two tools into one, add a field to a result, redesign a view, promote the draft, roll it back. The plan is an `APPS` tab next to Chat and Files, where every app has a product view *and* a files view: the UI it presents, and the source the agent maintains. - -The vision in one sentence: everything essential about an agent — its memory, its schedules, its tools, and eventually its apps — as files on an 8 MB flash partition, with a loop that can revise them and a screen that can show them. Self-evolution as a filesystem property, on a microcontroller, powered by PocketJS. - ## Try it The repo is [pocket-stack/pocket-pi](https://github.com/pocket-stack/pocket-pi). The simulator runs the same embedded agent, tool registry, and UI crate as the firmware: @@ -207,4 +190,6 @@ espflash flash --baud 921600 --port "$DEVICE_PORT" \ python3 tools/uart-model-bridge.py "$DEVICE_PORT" --backend uart --provider codex ``` -An agent turned out to be the cheap part of an agent: the loop, the tools, the schedules, and the memory fit in 304 KB of JavaScript and an 8 MB flash partition, with room to spare on a microcontroller. Ask it who it is. It knows. +Where this goes next follows from the same property that justified the port: behavior as files. Apps as tools-plus-a-view in the agent's own workspace, revisable by the agent itself, are the obvious continuation — a post for when it is real. + +The missing piece was never the agent, and it was never the chip. It was the runtime between them — and it turned out to be 304 KB of JavaScript standing on a Rust floor measured to fit. Ask the board who it is. It knows. diff --git a/site/nav.ts b/site/nav.ts index d19f2712..0da86abc 100644 --- a/site/nav.ts +++ b/site/nav.ts @@ -57,10 +57,10 @@ export interface BlogPost { export const BLOG_POSTS: BlogPost[] = [ { slug: "pocket-pi-on-esp32-p4", - title: "46 MB of Agent, 32 MB of PSRAM: Pocket Pi on the ESP32-P4", + title: "Just Enough Node: The Whole Pi Coding Agent on an ESP32-P4", date: "2026-08-06", description: - "Booting the full pi-coding-agent bundle takes 46.6 MB of QuickJS heap; the ESP32-P4 has 32 MB of PSRAM for everything. So Pocket Pi grew a second profile: upstream pi-agent-core as a 304 KB bundle in QuickJS — PocketJS's engine — with the Pi tools as native Rust capabilities and a PocketJS draw-list UI on the 720×1280 panel. The agent reads and writes its own LittleFS workspace, wakes itself on its own schedules, and survives a pulled power cable. Zero PocketJS engine changes. Also: the screen that kept turning blue, the bundle QuickJS parsed for four minutes, and the apostrophe the font atlas couldn't draw.", + "Microcontrollers have JavaScript engines, not JavaScript runtimes: no Node compatibility, no ESM loading, no fetch. The Pi coding agent assumes Node ≥ 22 — so we built just enough of one in Rust around QuickJS, measured by what Pi actually touches, and put the whole agent on an ESP32-P4: loop, tools, LittleFS workspace, self-set schedules, persistence across power cuts. No companion server runs the loop, and because behavior stays TypeScript and files rather than compiled Rust, the agent can revise itself without a firmware release. Zero PocketJS engine changes. Also: the screen that kept turning blue, the bundle QuickJS parsed for four minutes, and the apostrophe the font atlas couldn't draw.", author: { name: 'Siwei "Jerry" Yuan', url: "https://github.com/siwei-yuan" }, }, { From 6b97bc6f643bbd63a0038a4f506dcc292dc7ceca Mon Sep 17 00:00:00 2001 From: Jerry Yuan Date: Thu, 6 Aug 2026 15:55:19 +0800 Subject: [PATCH 3/5] docs(blog): tighten the abstract to the thesis Drop the war-story teasers and engine-changes aside from the lede; keep the runtime gap, the measured numbers, the resident agent, and behavior-as-files. Co-Authored-By: Claude Fable 5 --- site/nav.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/nav.ts b/site/nav.ts index 0da86abc..844cccab 100644 --- a/site/nav.ts +++ b/site/nav.ts @@ -60,7 +60,7 @@ export const BLOG_POSTS: BlogPost[] = [ title: "Just Enough Node: The Whole Pi Coding Agent on an ESP32-P4", date: "2026-08-06", description: - "Microcontrollers have JavaScript engines, not JavaScript runtimes: no Node compatibility, no ESM loading, no fetch. The Pi coding agent assumes Node ≥ 22 — so we built just enough of one in Rust around QuickJS, measured by what Pi actually touches, and put the whole agent on an ESP32-P4: loop, tools, LittleFS workspace, self-set schedules, persistence across power cuts. No companion server runs the loop, and because behavior stays TypeScript and files rather than compiled Rust, the agent can revise itself without a firmware release. Zero PocketJS engine changes. Also: the screen that kept turning blue, the bundle QuickJS parsed for four minutes, and the apostrophe the font atlas couldn't draw.", + "The Pi coding agent assumes Node ≥ 22, and microcontrollers have JavaScript engines, not runtimes — no Node compatibility, no ESM loading, no fetch. So we built just enough of one in Rust around QuickJS: the full desktop profile boots a 9 MB bundle that wants 46.6 MB of heap; the board has 32 MB; upstream pi-agent-core fits in 304 KB. The result is the whole agent resident on an ESP32-P4 — loop, tools, LittleFS workspace, self-set schedules, persistence across power cuts — with no companion server running the loop. And because its behavior stays TypeScript and files rather than compiled firmware, the agent can revise itself without a reflash.", author: { name: 'Siwei "Jerry" Yuan', url: "https://github.com/siwei-yuan" }, }, { From 9645f017db246ec691cd3c62bbb79bdede971578 Mon Sep 17 00:00:00 2001 From: Jerry Yuan Date: Thu, 6 Aug 2026 16:09:28 +0800 Subject: [PATCH 4/5] docs(blog): retell the post as the porting story, layer by layer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per review: drop the hero caption; open with why — Pi is a widely used harness that only runs where Node runs, and we wanted the complete agent usable on embedded hardware. Replace the announcement-style sections with the port's actual arc: Pi's layered anatomy, the desktop Node-compat runtime (ESM cycle rewriting, oxc-transpiled runtime extensions), the 46.6 MB measurement and the pi-agent-core split, native tools standing in for POSIX, the model transports, and the end-to-end UI wiring — with each bring-up failure told inside the layer it belongs to. Apps-are-files stays a closing line. Title and nav description follow the new frame. Co-Authored-By: Claude Fable 5 --- site/content/blog/pocket-pi-on-esp32-p4.md | 82 +++++++++++----------- site/nav.ts | 4 +- 2 files changed, 42 insertions(+), 44 deletions(-) diff --git a/site/content/blog/pocket-pi-on-esp32-p4.md b/site/content/blog/pocket-pi-on-esp32-p4.md index 2a621213..e18829c0 100644 --- a/site/content/blog/pocket-pi-on-esp32-p4.md +++ b/site/content/blog/pocket-pi-on-esp32-p4.md @@ -1,26 +1,31 @@ Four screens of Pocket Pi's embedded device UI: a chat where the agent introduces itself as Pocket Pi, a chat where a five-minute schedule wake is created and shown in a NEXT WAKE panel, the workspace file browser listing memory.md and notes.txt on LittleFS, and the file viewer showing the contents of memory.md. The status bar of every screen shows live PSRAM, UI FPS, and LCD refresh telemetry. -

Four screens of the same pocket-pi-device-ui crate the ESP32-P4 firmware compiles — identity, a self-created schedule, the LittleFS workspace, the file viewer — captured in the macOS simulator host, which shares the draw list, font atlases and touch hit map with the board.

+[Pi](https://github.com/badlogic/pi-mono) is a coding agent harness people actually build on: a deliberately minimal TypeScript loop with schema'd tools, streaming providers, and a clean extension seam. It runs wherever Node ≥ 22 runs — which is to say, nowhere near a microcontroller. We wanted the complete Pi to be usable on embedded devices: an agent that lives on the hardware, with its loop, files, schedules, and behavior on board, rather than a screen paired to a server that runs the real agent somewhere else. And we wanted it in TypeScript specifically, because an agent whose behavior is code-as-data can eventually revise itself — something an agent harness compiled into firmware can never offer. -The [Pi coding agent](https://github.com/badlogic/pi-mono) now runs on an ESP32-P4 — not as a screen for an agent living on a server, but complete: the loop, the tools, the workspace, the schedules, and every byte of state on the board ([PR #9](https://github.com/pocket-stack/pocket-pi/pull/9)). The interesting part is not that a microcontroller can chat. It is that Pi is a TypeScript harness that assumes Node ≥ 22, and nothing like Node existed on this chip. Embedded JavaScript has always meant an *engine* — an interpreter and a language — never a *runtime* a real server-side program can boot on. [Pocket Pi](https://github.com/pocket-stack/pocket-pi) is that runtime, built in Rust around QuickJS and measured out by exactly what Pi touches. +So we ported it to an ESP32-P4 ([PR #9](https://github.com/pocket-stack/pocket-pi/pull/9)). This is the story of how, layer by layer — starting with the part that didn't exist: embedded JavaScript has always meant an *engine*, never a *runtime*. [Pocket Pi](https://github.com/pocket-stack/pocket-pi) is the runtime we built so that Pi would have something to stand on. (If you are new here: [PocketJS](/blog/introducing-pocketjs/) runs real web-framework components on 2004 handhelds; QuickJS, its engine, is about to get a very different tenant.) -If you are new here: [PocketJS](/blog/introducing-pocketjs/) runs real web-framework components on 2004 handhelds inside an 8 MB budget. This post is about what its engine carries when the tenant is not a UI but an agent. +## What Pi stands on -## Why Pi, and why all of it +Pi's architecture is what made the port thinkable. Upstream, it splits into layers with real boundaries: -Two decisions shaped this project, and both are worth defending because the obvious alternatives are genuinely tempting. +- **`pi-agent-core`** — the agent loop, turn state, and tool-call protocol. The model decides when to call a tool; tools return structured results; the loop knows nothing about transports or platforms. +- **The tool registry** — every capability is a schema'd value, not a hardcoded behavior. +- **Provider transports** — streaming adapters, separate from the loop. +- **`pi-coding-agent`** — the full product on top: sessions, extensions via a `(pi) => void` factory seam, the works. -**The whole agent runs on the device.** The default architecture for "AI hardware" is a thin client: the device renders, a server thinks. That is the easy build, and it quietly makes the device an accessory — its brain has a hosting bill, its schedules fire only while a backend exists, its files live in someone else's region. We wanted the opposite: the agent loop, the tool executor, the workspace, and the scheduler resident on the board, so that "wake up in a minute and check the file you wrote" involves no machine other than the one on the desk. Inference still comes from a model API over the network — the same dependency a laptop has — but every decision *about* the model reply, every tool call, and every persisted byte happens locally. +Nothing in that stack *inherently* needs Node. It just assumes Node — casually, everywhere, the way all server-side JavaScript does: `fs`, `path`, `Buffer`, streams, `fetch`, an event loop, an ESM module graph. Engines like QuickJS, JerryScript, and Moddable XS give you ECMAScript and sometimes a module system of their own; none gives you that floor. Porting Pi therefore meant one thing at every layer: find what Pi assumes, and supply it. -**The harness stays TypeScript.** The natural instinct on a microcontroller is to write the agent harness in Rust — it is already the firmware language, and an agent loop is just a loop. We had that option and declined it, for a reason that compounds over time: in a Rust harness, the agent's behavior is compiled, so a new tool composition or a revised policy is a firmware release. In Pi, behavior is data. Tools are schema'd values, extensions are factory functions, memory is a directory of Markdown. Pocket Pi's desktop profile already exploits this — extensions are TypeScript transpiled at runtime with oxc and injected through Pi's `extensionFactories` seam, so the agent can extend itself without anyone recompiling anything. QuickJS does not care whether the bundle it loads was baked at build time or written five minutes ago by the loop it hosts. An agent that can edit files can, in principle, edit itself — and that property is why porting Pi's runtime was worth more than reimplementing Pi's loop. +## First, the desk: unmodified Pi with no Node installed -Pi itself earns the port: it is a deliberately minimal harness with a real extension ecosystem, and its three parts — loop, tool registry, provider transport — are cleanly separated. Nothing in that trio inherently needs Node. It just assumes Node, everywhere, casually, the way server-side JavaScript does. +The port did not start on the board. It started with a stricter question: can the **full, unmodified** `pi-coding-agent` — the entire 9 MB bundle — run on QuickJS on a desktop, with no Node or Bun on the machine? -## The runtime nobody had built +Getting to yes meant building the Node-shaped layer in Rust, feature by feature, in the order the bundle demanded it: a module system with CommonJS interop, then Web globals (`fetch`, streams), then the rest of the builtin surface — filesystem, `path`, `Buffer`, events, streams, `process`, synchronous subprocesses. Two problems stood out. Pi's dependency graph contains indirect ESM re-export cycles that QuickJS's module loader refuses outright, so the build pipeline learned to rewrite them before the engine ever sees the code. And extensions had to stay *dynamic*: Pi's plugin seam takes TypeScript factories at runtime, so the runtime transpiles them on the fly with oxc and injects them through Pi's own `extensionFactories` — the agent can be handed new tools, or write its own, without anyone recompiling anything. Pi itself is never patched. -Microcontrollers have JavaScript engines: QuickJS, JerryScript, Espruino, Moddable XS. Each gives you ECMAScript; some give you a module system of their own. None gives you the floor a real TypeScript program stands on — Node-compatible builtins, `fetch` and streams, buffers, an event loop wired into the host's I/O, an ESM graph with dynamic loading. That gap between *an interpreter on a chip* and *a runtime that boots server-side software* is exactly the part nobody had shipped for this class of hardware. +That desktop profile still ships as the product's full tier. It also produced the number that shaped everything after. -So Pocket Pi is a runtime family, in Rust, around QuickJS — with two compositions, because we measured before choosing: +## 46 MB of agent, 32 MB of PSRAM + +With the runtime working, we measured what the board would actually have to hold: @@ -38,11 +43,7 @@ So Pocket Pi is a runtime family, in Rust, around QuickJS — with two compositi ~1.3 MB -The **desktop composition** runs the full, unmodified `pi-coding-agent` — sessions, extensions, the works — with no Node or Bun on the machine. Its Rust host implements the Node surface Pi's 9 MB bundle actually exercises: filesystem, `path`, `Buffer`, events, streams, `process`, synchronous subprocesses, and a global streaming `fetch`. It even rewrites indirect ESM re-exports at build time, because Pi's dependency graph contains re-export cycles that QuickJS's module loader refuses. That composition is a real Node-shaped runtime; it is also, as the chart says, a 46.6 MB tenant. The board has 32 MB. - -The **embedded composition** is the same idea taken to its floor. Upstream `pi-agent-core` — the loop, the turn state, the tool-call protocol — bundles to **304 KB** and holds a conversation turn in about **1.3 MB** of heap. The Rust host under it provides only what that core touches: `TextEncoder`, a microtask pump, `URL`, a streaming model transport, and native tool dispatch. Nothing speculative. We know the list is honest because every missing item announced itself: the first on-device tool call died with `URL is not defined`. - -One runtime family, two profiles, three hosts: +Booting the full bundle takes 46.6 MB of heap — 27.4 MB of it just compiled JS functions — against 32 MB of PSRAM that also has to hold framebuffers, Wi-Fi buffers, and TLS. That chart closed the "ship the desktop profile" debate in an afternoon and split the runtime into two compositions of one family: @@ -70,11 +71,13 @@ One runtime family, two profiles, three hosts: two profiles of one agent — not three forks -Pi itself is never patched in either profile, and the Pi Harness contract — the model decides when to call a tool, tools return structured results, the loop knows nothing about transports — survives intact. This is a smaller composition of the same agent, not a lookalike. The whole firmware image is 3.4 MB, 21% of the app partition. +The embedded profile runs upstream `pi-agent-core` — the loop, the turn state, the tool-call protocol, unchanged — bundled to **304 KB**, holding a conversation turn in about **1.3 MB** of heap. Under it sits the same runtime idea taken to its floor: the Rust host provides exactly what that core touches — `TextEncoder`, a microtask pump, `URL`, a streaming transport, tool dispatch — and nothing speculative. The list is honest because every missing item announced itself; the first on-device tool call died with `URL is not defined`, and `URL` joined the shims. + +Even getting QuickJS to *parse* the bundle on-device was a fight. Fully minified esbuild output produces expressions nested deeply enough to blow the 8 KB task stack before the agent ever ran — and a later variant kept the parser busy for four minutes, tripping the 5-second watchdog. The fixes were humbling: `minifyWhitespace` only, and a dedicated 64 KB stack for the agent task. -## What the board actually runs +## Tools are the operating system now -The target is a Waveshare ESP32-P4 dev kit: dual-core RISC-V at 400 MHz, 32 MB PSRAM, 32 MB flash, a 5-inch 720×1280 touch panel. The P4 has no radio of its own; Wi-Fi lives on an onboard ESP32-C6 across SDIO. +On the desk, Pi's tools lean on POSIX. On the board there are no processes, no pipes, no `/bin` — so every capability had to be rebuilt as native Rust behind Pi's own schemas, on a chip that fights back: @@ -108,9 +111,17 @@ The target is a Waveshare ESP32-P4 dev kit: dual-core RISC-V at 400 MHz, 32 MB P HTTPS → OpenAI / OpenRouter / Anthropic -The tools are the agent's operating system, and they are all native Rust behind Pi's schemas: six file tools on an 8 MB LittleFS partition, `device.status`, `time.now`, a `workspace.context` memory aggregator, and four `schedule.*` operations for one-off and recurring wake prompts. Schedules persist to `/workspace/.pi-agent/schedule.json`; missed wakes collapse into one catch-up run. Chat history is append-only JSONL, restored into both the UI and the model context on boot. The Pi runtime reads tool definitions from the executable registry itself, so advertised and executable tools cannot drift. And one confession: `bash` is an allowlisted dispatcher, not a shell — an ESP32 has no processes, no pipes, no `/bin`, and pretending otherwise would just teach the model to fail. +The file six-pack — `read`, `write`, `edit`, `find`, `grep`, `ls` — landed on an 8 MB LittleFS partition, and immediately taught us LittleFS's rules: `rename` on a file whose handle is still open returns `EBUSY`, a lesson we got to learn twice, once in the file tools and once more in schedule persistence. `bash` became an honest allowlisted dispatcher (`ls`, `cat`, `grep`, `wifi status`, `reboot`; backticks rejected) rather than a POSIX cosplay that would only teach the model to fail. `workspace.context` aggregates the agent's own Markdown memory into its context, bounded at 16 KiB. And `schedule.*` turned the agent into something with a pulse: one-off and recurring wake prompts persisted to `/workspace/.pi-agent/schedule.json`, missed wakes collapsing into one catch-up run, fired by the firmware's wake loop with no human and no server involved. The Pi runtime reads tool definitions from the executable registry itself, so advertised and executable tools cannot drift. + +## A model over a wire + +Pi's provider layer stayed where upstream put it — separate from the loop — and grew two hosts. `WirelessBackend` speaks Chat Completions and Anthropic Messages directly over HTTPS; the P4 has no radio, so every packet crosses an SDIO link to the onboard ESP32-C6, which is how we learned the difference between kinds of RAM: the first Wi-Fi transmit asserted with 30 MB of PSRAM free, because internal DMA-capable SRAM was exhausted. Allocation order became architecture — Wi-Fi before QuickJS, the JS heap steered into PSRAM, 128 KB of internal RAM reserved for DMA. + +`UartBackend` is the development path: framed model decisions over serial to a Mac running a logged-in Codex or Claude Code CLI, streaming deltas back a few characters at a time. It shares UART0 with ESP-IDF logging, which produced the port's most instructive corruption: a five-second heartbeat log spliced mid-JSON into a model frame, and a provisioning frame silently truncated at byte 1026 by the console driver's ~1 KB RX buffer. The firmware now goes quiet on that wire after the agent's ready handshake. Either backend, the division holds: inference is remote — same as a laptop — while everything that decides, executes, and persists stays on the board. -The glass is PocketJS's other contribution. The same engine that hosts the agent has a sibling crate emitting draw lists straight to the panel: +## Wiring the glass + +An agent you can hold needs a screen you can touch, and this is where PocketJS pays for itself twice. Its engine already hosts the agent; its renderer got a sibling crate, `pocket-pi-device-ui`, that emits draw lists straight to the panel — chat with streamed replies, the workspace file browser, Wi-Fi settings, an on-screen keyboard, and a telemetry bar showing real PSRAM, per-core CPU, and presented-frame FPS: @@ -136,23 +147,11 @@ The glass is PocketJS's other contribution. The same engine that hosts the agent quiet frames are nearly free; a full redraw is 921,600 pixels -Linking the renderer cost about **24 KB of code**, and — the number we care most about — **zero PocketJS engine changes**: the port pins an unmodified upstream revision. The same UI crate also compiles into a macOS simulator (that is what the hero image shows): one draw list, one set of font atlases, one touch hit map, with mouse clicks dispatched through the same `handle_tap` as the hardware touch controller. Product flows iterate in seconds on the Mac; the board stays the acceptance target. - -The model is the one thing not on the board, by design: `WirelessBackend` speaks Chat Completions and Anthropic Messages over the C6's Wi-Fi, and `UartBackend` streams through a Mac's logged-in Codex or Claude Code CLI during development. Inference is a remote dependency — same as your laptop. Everything that decides, executes, and remembers is local. - -## Things that break at this size - -**esbuild fought QuickJS.** Full minification produces deeply nested expressions; QuickJS parses them recursively and blew an 8 KB task stack before the agent ever ran. A later regression made QuickJS parse a 198 KB bundle for four minutes, tripping the 5-second watchdog. Fix: `minifyWhitespace` only, plus a 64 KB stack for the agent task. - -**The screen kept flashing blue.** Once per second: chat → black → blue → chat. We fixed it three times. Triple buffering helped but didn't cure it; the real cause was the MIPI-DSI controller underrunning while fetching frames from PSRAM — the ESP-IDF driver source literally documents that the panel "may turn blue." Damage-region rendering cut the write traffic; dropping the pixel clock from 58 MHz to 34 MHz and enabling the PPA finished it. - -**Logs and the model shared a wire.** Model transport and ESP-IDF logging both use UART0, so a five-second heartbeat log spliced itself into JSON frames — and one provisioning frame exceeded the console's ~1 KB RX buffer, truncating at byte 1026. The firmware now silences all logging after the agent's ready handshake. - -**Out of memory with 30 MB free.** The first Wi-Fi transmit asserted deep in the SDIO transport — not because PSRAM was full, but because internal DMA-capable SRAM was. On this chip, allocation order is architecture: Wi-Fi before QuickJS, the JS heap steered into PSRAM, 128 KB of internal RAM reserved for DMA. +The end-to-end interaction loop runs across two threads: touch events map through a hit table into screen state, the agent works on a worker thread, and streamed model deltas are projected into the chat as they arrive, so the UI never blocks on the model. Linking the renderer cost about **24 KB of code**, with **zero PocketJS engine changes** — the port pins an unmodified upstream revision. The same crate compiles into a macOS simulator (that is what the hero image shows): one draw list, one set of font atlases, one touch hit map, mouse clicks dispatched through the same `handle_tap` as the hardware touch controller, so product flows iterate in seconds while the board stays the acceptance target. -**The apostrophe incident.** With everything working, the model streamed `I'm Pocket Pi` — and the panel rendered `I?m`. The font atlases were ASCII-only, and the model uses U+2019 like any well-raised language model. The last fix of the bring-up baked curly quotes, dashes, and the ellipsis into all four atlases with the PocketJS font baker. If you want proof that a real model is talking to your firmware, typography is it. +The glass also produced the port's best bugs. The panel flashed blue once per second, and we fixed it three times: triple buffering helped but didn't cure it, because the real cause was the MIPI-DSI controller underrunning while fetching frames from PSRAM — the ESP-IDF driver source literally documents that the panel "may turn blue." Damage-region rendering cut the write traffic; dropping the pixel clock from 58 MHz to 34 MHz and enabling the PPA finished it. And at the very end, with everything working, the model streamed `I'm Pocket Pi` — and the panel rendered `I?m`. The font atlases were ASCII-only; the model uses U+2019 like any well-raised language model. The last fix of the port baked curly quotes, dashes, and the ellipsis into all four atlases with the PocketJS font baker. If you want proof that a real model is talking to your firmware, typography is it. -## Proof beats vibes +## The end-to-end run The acceptance run is a 45-second recording of the board doing, in order: @@ -167,11 +166,10 @@ Each step closes a specific skeptic's loophole: real tool calls instead of scrip ## The gaps, named, because that is house policy - The board runs the embedded `pi-agent-core` profile, not the desktop `pi-coding-agent` unchanged. That distinction is load-bearing and 46.6 MB wide. +- Runtime TypeScript extension loading ships in the desktop profile; the embedded profile's tool registry is still fixed at boot. The runtime treats code as data, so the path is open — but on-device hot-loading is direction, not shipped. - The embedded runtime is not general Node: it implements what `pi-agent-core` exercises, and a dependency that wants more will say so at parse or boot. -- File tools and the on-device viewer handle UTF-8 text — Markdown, JSON, CSV, code. No PDFs, no images. -- `bash` is an allowlisted dispatcher, not POSIX. -- Inference is remote; the model is a provisioned network service. -- Model transport errors still render as chat text rather than a proper faulted state. +- File tools and the on-device viewer handle UTF-8 text — no PDFs, no images. `bash` is an allowlisted dispatcher, not POSIX. +- Inference is remote; the model is a provisioned network service. Model transport errors still render as chat text rather than a proper faulted state. ## Try it @@ -190,6 +188,6 @@ espflash flash --baud 921600 --port "$DEVICE_PORT" \ python3 tools/uart-model-bridge.py "$DEVICE_PORT" --backend uart --provider codex ``` -Where this goes next follows from the same property that justified the port: behavior as files. Apps as tools-plus-a-view in the agent's own workspace, revisable by the agent itself, are the obvious continuation — a post for when it is real. +Where this goes next follows from the property that justified the whole port — behavior as files. Apps as tools-plus-a-view in the agent's own workspace, loadable and revisable by the agent itself, are the obvious continuation; that is a post for when it is real. -The missing piece was never the agent, and it was never the chip. It was the runtime between them — and it turned out to be 304 KB of JavaScript standing on a Rust floor measured to fit. Ask the board who it is. It knows. +The missing piece was never the agent, and it was never the chip. It was the runtime between them. Ask the board who it is. It knows. diff --git a/site/nav.ts b/site/nav.ts index 844cccab..f2ca42d5 100644 --- a/site/nav.ts +++ b/site/nav.ts @@ -57,10 +57,10 @@ export interface BlogPost { export const BLOG_POSTS: BlogPost[] = [ { slug: "pocket-pi-on-esp32-p4", - title: "Just Enough Node: The Whole Pi Coding Agent on an ESP32-P4", + title: "Just Enough Node: Porting the Pi Coding Agent to the ESP32-P4", date: "2026-08-06", description: - "The Pi coding agent assumes Node ≥ 22, and microcontrollers have JavaScript engines, not runtimes — no Node compatibility, no ESM loading, no fetch. So we built just enough of one in Rust around QuickJS: the full desktop profile boots a 9 MB bundle that wants 46.6 MB of heap; the board has 32 MB; upstream pi-agent-core fits in 304 KB. The result is the whole agent resident on an ESP32-P4 — loop, tools, LittleFS workspace, self-set schedules, persistence across power cuts — with no companion server running the loop. And because its behavior stays TypeScript and files rather than compiled firmware, the agent can revise itself without a reflash.", + "Pi is a TypeScript coding agent harness people build on, and it runs wherever Node ≥ 22 runs — nowhere near a microcontroller. We wanted the complete agent living on embedded hardware, not a screen paired to a server, so we ported it layer by layer: a Node-shaped runtime in Rust around QuickJS (the unmodified 9 MB pi-coding-agent runs on the desktop with no Node installed), a 304 KB pi-agent-core profile for the board after the 46.6 MB measurement, native Rust tools standing in for POSIX on LittleFS, a streaming model transport over Wi-Fi or UART, and a PocketJS UI wired end to end. What Pi assumes, what the chip lacks, what broke, and how it ran.", author: { name: 'Siwei "Jerry" Yuan', url: "https://github.com/siwei-yuan" }, }, { From 789c9ba87a49f42ae113feb3612095601e25b028 Mon Sep 17 00:00:00 2001 From: Jerry Yuan Date: Thu, 6 Aug 2026 16:14:53 +0800 Subject: [PATCH 5/5] docs(blog): drop the transport section Fold the model-stays-remote point into the tools section as one paragraph; the board diagram already shows both backends. Co-Authored-By: Claude Fable 5 --- site/content/blog/pocket-pi-on-esp32-p4.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/site/content/blog/pocket-pi-on-esp32-p4.md b/site/content/blog/pocket-pi-on-esp32-p4.md index e18829c0..677ad06f 100644 --- a/site/content/blog/pocket-pi-on-esp32-p4.md +++ b/site/content/blog/pocket-pi-on-esp32-p4.md @@ -113,11 +113,7 @@ On the desk, Pi's tools lean on POSIX. On the board there are no processes, no p The file six-pack — `read`, `write`, `edit`, `find`, `grep`, `ls` — landed on an 8 MB LittleFS partition, and immediately taught us LittleFS's rules: `rename` on a file whose handle is still open returns `EBUSY`, a lesson we got to learn twice, once in the file tools and once more in schedule persistence. `bash` became an honest allowlisted dispatcher (`ls`, `cat`, `grep`, `wifi status`, `reboot`; backticks rejected) rather than a POSIX cosplay that would only teach the model to fail. `workspace.context` aggregates the agent's own Markdown memory into its context, bounded at 16 KiB. And `schedule.*` turned the agent into something with a pulse: one-off and recurring wake prompts persisted to `/workspace/.pi-agent/schedule.json`, missed wakes collapsing into one catch-up run, fired by the firmware's wake loop with no human and no server involved. The Pi runtime reads tool definitions from the executable registry itself, so advertised and executable tools cannot drift. -## A model over a wire - -Pi's provider layer stayed where upstream put it — separate from the loop — and grew two hosts. `WirelessBackend` speaks Chat Completions and Anthropic Messages directly over HTTPS; the P4 has no radio, so every packet crosses an SDIO link to the onboard ESP32-C6, which is how we learned the difference between kinds of RAM: the first Wi-Fi transmit asserted with 30 MB of PSRAM free, because internal DMA-capable SRAM was exhausted. Allocation order became architecture — Wi-Fi before QuickJS, the JS heap steered into PSRAM, 128 KB of internal RAM reserved for DMA. - -`UartBackend` is the development path: framed model decisions over serial to a Mac running a logged-in Codex or Claude Code CLI, streaming deltas back a few characters at a time. It shares UART0 with ESP-IDF logging, which produced the port's most instructive corruption: a five-second heartbeat log spliced mid-JSON into a model frame, and a provisioning frame silently truncated at byte 1026 by the console driver's ~1 KB RX buffer. The firmware now goes quiet on that wire after the agent's ready handshake. Either backend, the division holds: inference is remote — same as a laptop — while everything that decides, executes, and persists stays on the board. +The model is the one thing that stays remote — same as a laptop. Pi's provider layer kept its upstream boundary and grew two hosts: `WirelessBackend` speaks Chat Completions and Anthropic Messages over HTTPS, and `UartBackend` streams through a Mac's logged-in Codex or Claude Code CLI during development. Everything that decides, executes, and persists stays on the board. ## Wiring the glass