Test Paseo plugins.
Never touch your real Paseo.
ppd is a CLI, vitest helpers and a Claude Code skill for Paseo plugin authors. One command starts a throwaway dev daemon; another checks your plugin against the host's runtime rules before you install it.
$ npm install -D paseo-plugin-devkitAn isolated dev daemon
ppd daemon up A detached Paseo daemon in a fresh home under $TMPDIR, on a free port from 7800-7899, with plugins and the web UI on and relay, MCP and speech off. Port 6767 and ~/.paseo are refused, and only homes ppd marked are ever deleted.
Host-contract checks
ppd check Compiles and evaluates with the installed Paseo app's own compiler, then applies the app's client registration rules, its Lucide icon names, Hermes class syntax, parse and VM runs, bundle budgets and import boundaries. The same checks run as a vitest suite.
A scripted fake agent
ppd daemon up --fake-agent A credential-free provider that runs one scripted turn per prompt: say, think, write, edit, bash, mcp, sleep, fail. Real timeline items, real file effects, and real calls to the MCP servers your plugin injects.
A fast dev loop
ppd create · ppd dev Templates that pass ppd check and install as is. ppd dev reloads on every change, re-checks the client and streams plugin logs; ppd install exits 1 when the app would silently drop your UI.
Web UI and phone
ppd web · ppd android Open the workspace in Chrome, run Command Center items, click by accessible name and screenshot at any viewport; a plugin client the app fails to evaluate fails the run. Connect a phone over adb reverse with read-only device checks.
Registry and release
ppd registry · ppd release Lint a listing before you submit it, get the prefilled submission form, and prepare registry updates. Releases check the remote before they commit and tag. Public actions print commands or ask first.