For the full role-based operational guide, see cheat-sheet.md.
You can also print role flows directly in CLI:
node ./workpads.js howto
node ./workpads.js howto --role ownernode ./workpads.js storage:set --business biz_001 --default ephemeral --ttl-hours 24 --allow-override true
node ./workpads.js storage:get --business biz_001node ./workpads.js create --template svc-basic --variant plain --business biz_001 --set process.job="Replace faucet"
node ./workpads.js edit --record loc_000001 --add-action "Arrive|Inspect site" --set details="Bring standard tools"
node ./workpads.js share --record loc_000001echo "https://workpads.me/new#<payload>" | node ./workpads.js import
node ./workpads.js render --record loc_000002node ./workpads.js comment:add --record loc_000001 --text "Parts delivered" --name "Alex"
node ./workpads.js comment:list --record loc_000001node ./workpads.js list
node ./workpads.js dashboardFrom repos/workpads:
npm installUse either:
npx workpads <command>or:
node ./workpads.js <command>Run local browser service:
node ./workpads.js browserCustom port:
node ./workpads.js browser --port 8787Auto-port fallback (recommended):
node ./workpads.js browser --auto-port trueChoose default UI at root:
node ./workpads.js browser --ui latest
node ./workpads.js browser --ui v1Check running browser status:
node ./workpads.js browser:statusStop running browser service:
node ./workpads.js browser:stopPinned simple version (fork snapshot) is available at:
http://127.0.0.1:8787/v1/
Validate template:
node ./workpads.js template:validate --file ./templates/svc-basic.kv --format kvCompile template to runtime JSON:
node ./workpads.js template:compile --file ./templates/svc-basic.yaml --format yaml --out ./templates/runtime/svc-basic.v1.jsonShow compiled template:
node ./workpads.js template:show --template svc-basicCreate a record:
node ./workpads.js create --template svc-basic --variant plain --set process.job="Replace faucet"Create with storage policy context:
node ./workpads.js create --template svc-basic --variant plain --business biz_001 --set process.job="Replace faucet"Edit a record:
node ./workpads.js edit --record loc_000001 --add-action "Arrive|Check scope" --set details="Bring tools"Edit with storage override:
node ./workpads.js edit --record loc_000001 --business biz_001 --storage-override storedShare as compact link:
node ./workpads.js share --record loc_000001Import a shared link:
node ./workpads.js import --url "https://workpads.me/new#<payload>"Import by paste/pipe:
echo "https://workpads.me/new#<payload>" | node ./workpads.js importRound-trip example:
LINK=$(node ./workpads.js share --record loc_000001 | tr -d '\n')
node ./workpads.js import --url "$LINK"Render in terminal:
node ./workpads.js render --record loc_000001Render as JSON:
node ./workpads.js render --record loc_000001 --jsonExport record to file:
node ./workpads.js export --record loc_000001 --out ./exports/loc_000001.jsonList records:
node ./workpads.js listDefault list columns:
recordIdvariantstorageModeshareBytesjob
List records as JSON:
node ./workpads.js list --jsonDelete a record:
node ./workpads.js delete --record loc_000001Get storage policy:
node ./workpads.js storage:get --business biz_001Set storage policy:
node ./workpads.js storage:set --business biz_001 --default ephemeral --ttl-hours 24 --allow-override trueResolve effective storage:
node ./workpads.js storage:resolve --business biz_001 --override storedCompatibility aliases:
policy:get->storage:getpolicy:set->storage:setpolicy:resolve->storage:resolve
Add comment:
node ./workpads.js comment:add --record loc_000001 --text "Arrived on site" --name "Alex"List comments:
node ./workpads.js comment:list --record loc_000001Delete comment by index:
node ./workpads.js comment:delete --record loc_000001 --index 0Size dashboard:
node ./workpads.js dashboardSize dashboard (JSON):
node ./workpads.js dashboard --json- Local data store:
.workpads/records.json - Local storage policy store:
.workpads/storage-policies.json - Store is intentionally local and ephemeral-friendly.
- Share links use deflate-raw + base64url and hash suffix.