The CLI
Manage SyncPilled apps from a terminal or a coding agent, with JSON output and fixed exit codes.
syncpilled login # approve in the console
syncpilled apps create --name "My Notes" --firebase my-notes-1234
syncpilled apps list
syncpilled stats my-notes-k2x9qa
syncpilled export my-notes-k2x9qa --output records.ndjsonOn a deployment behind Cloudflare Access, make a key in the console and log
in with it: syncpilled login --url https://sync.example.com --with-key < key.txt.
Commands
| Command | Does |
|---|---|
login, logout, whoami | Log in, forget the key, show the account |
apps list, apps show <app> | Your apps and their settings |
apps create --name <name> <sign-in> | --firebase, --supabase, --auth0 … --audience, --clerk, --apple, or --issuer … --audience … --jwks-url |
apps update <app> | --name, --collections a,b or any, --anonymous yes/no, --record-kb, --file-mb, --person-records-mb, --person-files-mb (or none) |
apps delete <app> --yes | Erases every person's data in it |
stats <app> | People, activity and storage |
people list <app>, people show <app> <person> | People and their counts |
people delete <app> <person> --yes | Deletes their account in the app |
export <app> [--person <person>] [--output <file>] | Current records as NDJSON |
For scripts and agents
Every command takes --json and prints one object:
{ "schemaVersion": 1, "ok": true, "data": … }, or "ok": false with an
error holding a code, a message and, where there is one, a nextAction.
SYNCPILLED_URL and SYNCPILLED_KEY override the saved login.
Exit codes: 0 done, 1 failed, 2 wrong command, 3 not logged in, 4 not found, 5 not allowed, 6 try again later.