Skip to content

Command reference

Every panda command, grouped. Most list/info commands accept --json for raw output; destructive delete commands accept -y/--yes to skip the confirmation prompt. See Install & auth for setup.

CommandDescriptionExample
panda loginPaste psk_ token, verify via /v1/whoami, save orgpanda login
panda logoutClear stored credentials (keeps api_url)panda logout
panda org listShow the org the token belongs to (--json)panda org list
panda org use [name]Explains tokens are per-org; log in with that org’s tokenpanda org use
panda statusOrg + plan + resource-count overview (--json)panda status
panda monitorHealth overview for projects/functions/cronjobs (--json)panda monitor
panda projects listList projects (--page, --limit, --json)panda projects list
panda projects info <id>Project details by name (--json)panda projects info my-app
panda projects deploy <id>Deploy + stream build logs (--no-stream)panda projects deploy my-app
panda projects logs <id>Stream latest deployment logs (--type)panda projects logs my-app --type application
panda projects env list <id>List project env vars (--json)panda projects env list my-app
panda projects env set <id> KEY=VALUEUpsert an env varpanda projects env set my-app API_KEY=abc
panda projects env unset <id> KEYRemove an env varpanda projects env unset my-app API_KEY
panda projects delete <id>Delete a project (-y)panda projects delete my-app -y
panda projects upload [dir]Build+zip+deploy a local folderpanda projects upload ./ --build-dir dist
panda projects createInteractive project wizardpanda projects create
panda functions listList edge functions (--json)panda functions list
panda functions info <id>Function details + endpoint (--json)panda functions info weather
panda functions deploy <name> <source>Zip+upload; create or new versionpanda functions deploy weather ./my-fn/
panda functions invoke <id>Invoke (-d/--data, --json)panda functions invoke weather -d '{"city":"London"}'
panda functions logs <id>Recent invocation logs (-n/--limit)panda functions logs weather -n 20
panda functions delete <id>Delete function (-y)panda functions delete weather -y
panda cronjobs listList cronjobs (--json)panda cronjobs list
panda cronjobs info <id>Cronjob details (--json)panda cronjobs info nightly
panda cronjobs createInteractive GitHub-based create wizardpanda cronjobs create
panda cronjobs trigger <id>Manual run (--stream)panda cronjobs trigger nightly --stream
panda cronjobs logs <id>Execution logs (--stream, -n/--limit)panda cronjobs logs nightly --stream
panda cronjobs delete <id>Delete cronjob (-y)panda cronjobs delete nightly -y
panda db listList databases (--json)panda db list
panda db info <id>DB details + connection strings + passwordpanda db info my-pg
panda db createInteractive provision wizardpanda db create
panda db delete <id>Delete database, all data lost (-y)panda db delete my-pg -y
panda ask [query...]AI assistant (currently a stub)panda ask "why did my deploy fail?"
panda "<query>"Shorthand: bare unknown arg routes to askpanda "show failing projects"

See Install & auth. login verifies a psk_ token via /v1/whoami and stores the resolved org; logout clears credentials but keeps api_url.

SubcommandBehavior
panda org listShows the single org the token belongs to. Add --json.
panda org use [name]Explains that tokens are per-org; to switch, log in with that org’s token. There is no in-CLI org switching.

Aggregates GET /v1/whoami, /v1/projects, /v1/functions, /v1/cronjobs, and /v1/databases (via Promise.allSettled) and prints org name/id/role/plan, resource counts (from each list’s .total), and any failed projects. Supports --json.

Terminal window
panda status
panda status --json

Aggregates /v1/projects, /v1/functions, and /v1/cronjobs and prints per-resource health tables, flagging any failed resources. Supports --json. There is no dedicated metrics endpoint behind this — it is a health overview.

Terminal window
panda monitor

Projects are resolved by name. list uses GET /v1/projects; info/deploy/logs/env/delete resolve via GET /v1/projects/:name.

FlagPurpose
--pagePage number
--limitPage size
--jsonRaw output
Terminal window
panda projects list --page 1 --limit 10 --json

Shows project details by name. --json for raw.

Terminal window
panda projects info my-app

Calls POST /v1/projects/:name/deploy, then streams the build logs.

FlagPurpose
--no-streamTrigger the deploy without streaming logs
Terminal window
panda projects deploy my-app
panda projects deploy my-app --no-stream

Streams the latest deployment’s logs. The latest deployment is resolved from GET /v1/projects/:name/deployments.

FlagPurposeDefault
--typebuild or applicationbuild
Terminal window
panda projects logs my-app --type application
SubcommandEndpointPurpose
panda projects env list <id>GET /v1/projects/:nameList env vars (--json)
panda projects env set <id> KEY=VALUEPATCH /v1/projects/:nameUpsert an env var (rebuilds the env array)
panda projects env unset <id> KEYPATCH /v1/projects/:nameRemove an env var
Terminal window
panda projects env list my-app
panda projects env set my-app API_KEY=abc
panda projects env unset my-app API_KEY

DELETE /v1/projects/:name. Add -y/--yes to skip the confirmation prompt.

Terminal window
panda projects delete my-app -y

Builds, zips, and deploys a local folder via POST /v1/projects/static-upload — no GitHub connection needed. The upload uses raw multipart/form-data with the Bearer token. Uploaded static projects are served at https://<name>.pandastack.app.

FlagPurpose
-n, --nameProject name
--build-cmdBuild command
--build-dirOutput directory to upload
--skip-buildSkip the build step
Terminal window
panda projects upload ./ --name my-site --build-cmd "npm run build" --build-dir dist

Interactive wizard. The chosen name gets a random 5-character suffix. Options:

  • static-upload — build+zip+deploy a local folder.
  • static — GitHub → build.
  • container — GitHub → Docker → Kubernetes.

GitHub-based paths call GET /v1/integrations/github/repositories and /v1/integrations/github/branches, then POST /v1/projects. Container languages: docker, nodejs, python, go.

Terminal window
panda projects create

Edge functions are resolved by id or name.

CommandEndpointNotes
panda functions listGET /v1/functions--json
panda functions info <id>GET /v1/functions/:idShows runtime/timeout/version/endpoint + a curl example
panda functions deploy <name> <source>POST /v1/functions (create) or POST /v1/functions/:name/deploy (new version)Zips a file/dir. -r/--runtime (default nodejs), timeout default 30000
panda functions invoke <id>POST /v1/functions/:id/invoke-d/--data JSON body, --json
panda functions logs <id>GET /v1/functions/:id/invocations-n/--limit, --json
panda functions delete <id>DELETE /v1/functions/:id-y
Terminal window
panda functions deploy weather ./my-fn/ --runtime nodejs
panda functions invoke weather -d '{"city":"London"}'
panda functions logs weather -n 20
panda functions delete weather -y

Function-deploy uploads use raw multipart/form-data (not the shared API client).

Cronjobs are resolved by name.

CommandEndpointNotes
panda cronjobs listGET /v1/cronjobs--json
panda cronjobs info <id>GET /v1/cronjobs/:name--json
panda cronjobs createPOST /v1/cronjobsInteractive GitHub wizard
panda cronjobs trigger <id>POST /v1/cronjobs/:name/trigger--stream for live logs
panda cronjobs logs <id>GET /v1/cronjobs/:name/executions--stream live, -n/--limit, --json
panda cronjobs delete <id>DELETE /v1/cronjobs/:name-y

The create wizard collects: imageSource: github, cronSchedule, region: us, instanceType (micro | mini | large | xlarge), repositoryName, branch, and language (nodejs | python | go | docker).

Terminal window
panda cronjobs create
panda cronjobs trigger nightly-sync --stream
panda cronjobs logs nightly-sync --stream
panda cronjobs delete nightly-sync -y

Databases are resolved by name.

CommandEndpointNotes
panda db listGET /v1/databases--json
panda db info <id>GET /v1/databases/:name + GET /v1/databases/:name/passwordInlines the real password + connection URLs (--json)
panda db createPOST /v1/databasesInteractive provision wizard
panda db delete <id>DELETE /v1/databases/:name-yall data lost

The create wizard collects: engine (POSTGRESQL | MYSQL | MONGODB | REDIS, with pinned versions), architecture (standalone | replicaset), instanceType (free-tier), region: us, backups enabled with backupsToKeep: 7, a name with a random 6-character suffix, and an auto-generated 16-character password if you leave it blank.

Terminal window
panda db info my-pg
panda db create
panda db delete my-pg -y

panda ask gathers your project, function, cronjob, and database context, but the assistant is currently a stub: it reports that the AI assistant is not available on this API yet and prints your current infra summary. No LLM call is made.

A bare, non-flag first argument that is not a known command is rewritten to ask as a shorthand:

Terminal window
panda ask "why did my last deploy fail?"
panda "show me failing projects"
FlagApplies toPurpose
--jsonMost list / info / status / monitor commandsRaw JSON output
-y, --yesDestructive delete commandsSkip the confirmation prompt