Plum Box developer documentation
How to build, sign, test and publish an app that runs on hardware your users own. Everything here is written against the shipped code; anything not shipped yet is marked planned.
Platform overview
The four shapes an app can take, what runs where, and what the store controls.
2026-09-21Your first panel app
Ten minutes from an empty directory to an app running on your own box.
2026-09-21Service apps
A Go backend that runs on the box: manifest, sandbox, control socket, public route.
2026-09-21Companion apps
Register an OAuth client, run the PKCE flow, and call the box from a native or web app.
2026-09-21Manifest reference
Every field manifest.json accepts, with the rules the box and the store enforce.
2026-09-21Panel SDK
window.plum — files, user, service, events, ui, entitlements, and the native bridge behind them.
2026-09-21Signing and trust
Publisher keys, the META block, store countersignatures, trust levels, rotation and escrow.
2026-09-21Publishing
Namespace, tokens, the automatic checks, the beta channel, review, SKUs.
2026-09-21Emulator
A box on your laptop — with or without Docker — for developing without hardware, and what it cannot do.
2026-09-21plum-dev CLI
Every command, flag and config file of the developer CLI.
2026-09-21Box HTTP API
The endpoints a third-party app actually uses: OAuth, tokens, apps, events, svc.
2026-09-21New here?
Read Platform overview to see the four shapes an app can take, then follow Your first panel app. If your app needs a backend, go on to Service apps; if it is a mobile or desktop app that only talks to the box, go to Companion apps.