pylon binary covers every operator task: the dev loop, deploys, secrets, logs, db, data, domains, deployments, members, and project health. Anything you do from the Pylon Cloud dashboard, you can do from the CLI and pipe to other shell tools.
Install + sign in
PYLON_CLOUD_URL overrides the default https://www.pylonsync.com for staging or self-hosted Pylon Cloud installs.
Project context
Most commands target a single project. Resolution order (first match wins):--project <slug>flag on the commandPYLON_PROJECTenv var.pylon/projectfile in cwd or any ancestor (written bypylon projects use)- Interactive picker (TTY only)
Create
pylon projects create <slug> provisions a project on Pylon Cloud without the
dashboard. It creates the project in your org, waits for the machine to start
(usually under a minute; --db postgres adds a managed-database provision first),
pins the slug as your local context, and prints the live https://<slug>.smallware.run URL.
--json the final line is a single machine-readable object
({"ok":true,"slug":"my-app","status":"running","url":"https://my-app.smallware.run",...}),
so agents and scripts can chain directly into pylon deploy.
Test
pylon test runs each test file with Bun against an in-memory Pylon. It exits non-zero on failure, so it fits into CI. pylon test:security is a separate probe that calls a running app and reports auth/policy holes. See the Testing guide for the unit, component, and HTTP patterns.
Deploy
pylon deploy (no flag) runs the hosted deploy. The other targets write IaaS config files to ./deploy/.
Secrets
syncSecretsToFly immediately so the running machine sees the new value within ~10s (no redeploy required).
Logs
kind: unavailable (machine stopped, framework predates the tail endpoint, etc.) — backs off to 30s until the surface comes back.
Database
Data browser
Domains
pylon-<slug>.fly.dev hostname is always available regardless.
Deployments
Members
owner, admin, member.
Status
Jobs
/admin/jobs on the project’s machine through Pylon Cloud. Owner / admin only. A cron that stopped writing shows up here as a failed row with its function name and error.
JSON mode
Every command accepts--json and emits parseable output for scripts: