Developer

CLI

rprp applet - scaffold, package, install, and dev-watch applets, plus rprp call to invoke any method.

rprp is the RightPlace CLI; it ships with RightPlace Core. The applet subcommand covers the full applet lifecycle.

Commands

rprp applet init my-applet --template blank   # scaffold
rprp applet package --sign <keypath>          # vite build + validate + hash + sign + zip
rprp applet install ./dist/my-applet-1.0.0.rpbundle.zip
rprp applet install                           # no path: scans ./dist/*.rpbundle.zip and cwd
rprp applet dev                               # watch + rebuild + reinstall on save

rprp applet install with no path scans ./dist/*.rpbundle.zip and ./*.rpbundle.zip. One match installs automatically; multiple matches show a picker; zero is a usage error.

Templates are blank, docs-like, and table-like. Each is runnable and lint-clean.

The package pipeline

rprp applet package runs these steps and fails on the first error:

  1. vite build (frontend and sidecar)
  2. schema-history diff (rejects an entity change without a matching migration)
  3. JSON Schema validation of bundle.json and applet.json
  4. scope validation against the catalog
  5. size caps (50MB per applet frontend, 200MB archive)
  6. sha256 per applet subtree into bundle.json.applets[].hash
  7. precompile Zod into standalone validators under dist/validators/
  8. emit dist/public.d.ts for cross-bundle type imports
  9. detached Ed25519 sign into manifest.sig
  10. zip into <bundle-id>-<version>.rpbundle.zip

Calling methods

rprp call invokes any registered method by its canonical name:

rprp call '@my-org/notes.add' --args '{"title":"First","body":"Hello"}'

Use the dotted applet-method name from rprp tool ls or rprp tool get. Do not guess a snake_case alias; the applet-method name is the registry key.