pult command comes with the pult package. Run it with bunx pult, npx pult or from a script.
--cwd points it at another project folder.
pult build
Finds every fileinclude matches in pult.config.ts, loads your definitions and writes:
.pult/manifest.json: everything Pult needs to know, with where each definition lives in your code..pult/index.ts: whatcreatePultimports.
pult check looks for, build lists them and writes nothing.
Definition files must not do anything when imported: no database calls, no network, no timers at the top level. Work belongs inside functions like get and run, which Pult calls later.
pult check
Builds without writing, then fails if anything’s wrong:- A role grants an action that doesn’t exist.
- A page uses an action, inbox or flag that doesn’t exist.
- A scheduled action has an invalid cron expression, needs input without a default, or needs an approval.
- A flag’s default doesn’t fit its value, or a guard has a limit below one an hour.
- A view or triage rule uses a state the inbox doesn’t have.
- Triage runs an action that needs a human or an approval.
- An action picks from a resource that doesn’t exist or can’t be searched, or names an input field it doesn’t have.
- A relation points at a resource that doesn’t exist.
- A column isn’t part of the inbox’s data.
- A definition file does something when imported.
- The committed
.pult/is older than your code.
pult diff
Shows what deploying would change in the environment behindPULT_KEY: inboxes, resources, actions and views added, removed or changed, danger levels and approvals that changed, and who gains or loses which permission.
pult deploy
Builds, prints the diff and deploys to the environment behindPULT_KEY.
sync environment receives your definitions automatically, so deploy is for the others. Bun loads .env on its own; with Node, set PULT_KEY in your shell or CI.
pult dev
Rebuilds.pult/ on every change to your code while it runs. Your app picks up the new definitions and syncs them to the sync environment the next time it connects or sends.