Plugins
How PaceBar's plugin system works — providers are sandboxed JavaScript plugins with a host API.
Every provider in PaceBar is a plugin: a small JavaScript file that runs in an isolated sandbox and returns usage data. New providers can be added without rebuilding the app.
The model
When PaceBar refreshes, each enabled plugin runs in a fresh QuickJS sandbox
with no shared state. PaceBar injects a host API (ctx.host.*) for HTTP,
filesystem, keychain, SQLite, and more, then calls the plugin's probe(ctx).
The plugin returns a list of metric lines — progress bars, text, and badges —
which the UI renders.
refresh → fresh sandbox per plugin → inject ctx.host.* → probe(ctx) → { lines }Plugins declare their output shape in plugin.json so the UI can show loading
skeletons instantly while probes run.
Where to go next
Plugin schema
plugin.json manifest, the output schema, and lifecycle.
Host API reference
Everything available on ctx.host.* and the ctx helpers.
Authoring a plugin
Build and test your own provider plugin step by step.
Plugins are currently bundled with the app as the API stabilizes. They'll become loadable from outside the app once that work lands.