shovelbasedocs

CLI reference

The CLI talks to the portal's management API with a token stored in ~/.shovelbase/config.json. Commands that operate on a project use the link file shovelbase.json in your app repo (created by shovelbase link), or an explicit --project <ref>.

Nearly every command below has a counterpart tool on the project's MCP endpoint, so an AI client can do this work directly instead of shelling out to the CLI on your behalf.

authentication & linking
shovelbase user login --url https://shovelbase.com # prompts for admin email/password
shovelbase user login --url --email --password # non-interactive (CI); or
# APP_EMAIL / APP_PASSWORD env
shovelbase user # who this machine is signed in as
shovelbase user logout # forget the stored token
shovelbase link --project my-app # link the current directory
projects
shovelbase projects list
shovelbase projects create <name> [--json] # provision a full project stack
shovelbase projects keys [<ref>] [--json] # SHOVELBASE_URL + anon/service keys
shovelbase projects delete <ref> [--yes] # delete project + ALL its data
database migrations
shovelbase migration create add_scores_table # shovelbase/migrations/<ts>_add_scores_table.sql
shovelbase db push # apply pending migrations, in order
functions, MCP endpoints & secrets
shovelbase functions deploy [name] [--no-verify-jwt] [--mcp] # all functions, or one
shovelbase functions list
shovelbase functions delete <name>
shovelbase mcp list # MCP endpoints + client URLs
shovelbase functions schedules create <name> --function <fn> --cron "0 3 * * *" [--payload '{}']
shovelbase functions schedules list # cron → function timers
shovelbase functions schedules enable <name> | disable <name>
shovelbase functions schedules delete <name> [--yes]
shovelbase secrets set OPENAI_API_KEY=sk- # env for ALL functions, applied live
shovelbase secrets list
shovelbase secrets unset OPENAI_API_KEY
feature flags
shovelbase flags create new-checkout --description "New checkout flow" [--on]
shovelbase flags list # name on/off rollout description
shovelbase flags enable <name> | disable <name>
shovelbase flags configure <name> [--on|--off] [--rollout <0-100>] [--description "<text>"]
shovelbase flags delete <name> [--yes]
# Ramp a flag to more users; the same people stay in as it grows
shovelbase flags configure new-checkout --on --rollout 10
shovelbase flags configure new-checkout --rollout 50
queues, triggers & webhooks
shovelbase queues list # SQS queues + approximate message counts
shovelbase queues create <name>
shovelbase queues delete <name> [--yes]
shovelbase queues send <name> <message> # enqueue a test message
shovelbase triggers create <name> --queue <q> --function <fn> [--function <fn2> ]
shovelbase triggers list # queue → function links
shovelbase triggers enable <name> | disable <name>
shovelbase triggers delete <name> [--yes]
shovelbase webhooks create <name> --queue <q> # public inbound URL → queue
# → https://<ref>.shovelbase.com/webhooks/<name>/<token>
shovelbase webhooks list
shovelbase webhooks delete <name> [--yes]
static websites
shovelbase sites list
shovelbase sites publish <name> --dir ./dist # S3 sync → https://<ref>.shovelbase.com
shovelbase sites delete <name> [--yes]
logs & signals
shovelbase logs functions --lines 100 # rest | auth | storage | functions
shovelbase logs queues # | queues | sites | postgres
shovelbase logs auth --project my-app
shovelbase signals # newest-first product-analytics events
shovelbase signals --range 24h --event page_view --lines 100
shovelbase signals --user user_123 --json

Function code and migrations are read from ./shovelbase/functions/<name>/index.ts and ./shovelbase/migrations/*.sql. APP_CONFIG_DIR overrides where the CLI stores its token (useful for CI).