Skip to main content
pxxl doctor and pxxl inspect help you catch deployment issues before you upload a source archive. They are local-first commands, so they still work when a project has not been deployed yet. Use these commands before a first deploy, after changing build scripts, or when a deploy fails because the runtime was detected incorrectly.

Doctor

pxxl doctor
pxxl doctor --json
pxxl doctor --dir ./apps/web
pxxl doctor checks the things that usually break deploys:
CheckWhat it verifies
AuthThe stored API key or PXXL_API_KEY can authenticate with Pxxl.
InternetThe official Pxxl Gateway is reachable.
Git stateThe current folder is a git repo and whether it has local changes.
pxxl.tomlProject metadata exists for repeat deploys.
.pxxlignoreLocal-only files are excluded from deploy archives.
Package managerLockfile/package manager detection.
FrameworkFramework detection from dependencies.
Build commandThe build script or configured build command.
Start commandThe runtime command Pxxl should use.
Env filesLocal env files that can be pushed with pxxl env push.
Deploy archiveThe packaged archive can be created and fits safety limits.
pxxl doctor marks a dirty git tree as a warning, not a failure. You can still deploy local files, but the warning helps you notice uncommitted changes before shipping.

Inspect

pxxl inspect
pxxl inspect --json
pxxl inspect --dir ./apps/web
pxxl inspect prints the detected deploy shape:
FieldMeaning
FrameworkDetected framework such as Vite, Astro, Next.js, TanStack Router, Express, Hono, Fastify, PHP, or static.
Package managernpm, pnpm, yarn, or bun.
RuntimeNode, PHP, static, or another supported runtime.
InstallInstall command inferred from the lockfile.
BuildBuild command from pxxl.toml or package.json.
StartStart command from pxxl.toml, server output files, or package scripts.
Env filesLocal .env files found in the project folder.
Deploy sizeThe size of the deterministic source archive after .pxxlignore.
For TanStack and other Node SSR projects, the CLI checks common server output entrypoints before falling back to preview scripts:
node dist/server.js
node dist/server/index.js
node .output/server/index.mjs
node .output/server/index.js
node server.js
If detection is wrong, set the exact command in pxxl.toml:
buildCommand = "pnpm build"
startCommand = "node dist/server.js"