Requirements
- Bun ≥ 1.0 (runs TypeScript functions + codegen)
- Rust ≥ 1.85 (required to build the CLI from source — edition 2024)
- Node.js ≥ 18 (optional, for client tooling)
Install the CLI
Pylon is currently installed from source. A one-line install script and Homebrew tap are on the roadmap but not yet shipped.pylon binary in ~/.cargo/bin/.
Verify:
pylon doctor checks that bun, node, and the supporting tooling are available.
Install Bun
Pylon uses Bun to run TypeScript server functions and to bundle the client code generator. If you don’t have it:Client SDKs
Install into your web app:Directory conventions
A Pylon app usually looks like this:pylon dev app.ts watches app.ts + functions/ and regenerates pylon.manifest.json + pylon.client.ts on every change.
Environment variables
| Variable | Default | Purpose |
|---|---|---|
PYLON_DB_PATH | .pylon/dev.db | SQLite file location (ignored if DATABASE_URL is set) |
DATABASE_URL | (unset) | postgres://... connection string. When set, Pylon uses the Postgres adapter instead of SQLite |
PYLON_FILES_DIR | .pylon/uploads | File upload storage |
PYLON_CORS_ORIGIN | * (dev only) | Allowed origin in prod |
PYLON_DEV_MODE | true | Dev-only behavior (generous rate limits, CORS *) |
PYLON_PORT | 4321 | HTTP port |
PYLON_RATE_LIMIT_MAX | 100 | Requests per window |
PYLON_FN_RATE_LIMIT_MAX | 30 | Function calls per window |