CLI Reference
The OpenWorkers CLI (ow) lets you manage workers, environments, and bindings from the terminal.
Installation
# Install with cargo
cargo install openworkers-cli
# Verify installation
ow --version Configuration
Aliases
The CLI uses aliases to connect to different backends (API or direct database).
# Add API alias (default)
ow alias set prod --api https://dash.openworkers.com/api/v1
# Add database alias (for self-hosted)
ow alias set local --db postgres://user:pass@localhost/openworkers --user max
# List aliases
ow alias list
# Set default alias
ow alias set-default prod
# Remove alias
ow alias rm old-alias Using Aliases
Prefix any command with an alias name:
# Use specific alias
ow local workers list
ow prod workers list
# Use default alias (no prefix)
ow workers list Authentication
# Login to API (opens browser)
ow login
# The token is stored in ~/.openworkers/config.json Workers
List Workers
ow workers list
# or
ow workers ls Get Worker Details
ow workers get <name> Create Worker
ow workers create <name> [--description "My worker"] [--language typescript] Delete Worker
ow workers delete <name>
# or
ow workers rm <name> Deploy Code
Deploy a single file:
ow workers deploy <name> <file.ts>
ow workers deploy my-api worker.ts --message "Add new endpoint" Upload Package
Upload a folder or zip with worker script and assets:
# Upload folder (must contain worker.js/worker.ts and assets/ folder)
ow workers upload <name> ./dist
# Upload zip file
ow workers upload <name> ./package.zip Folder structure:
dist/
├── worker.js # Main worker script (required)
└── assets/ # Static assets (optional)
├── index.html
├── style.css
└── ... Link Environment
ow workers link <worker-name> <environment-name> Environments
Environments contain variables, secrets, and resource bindings.
List Environments
ow env list
# or
ow env ls Get Environment Details
ow env get <name> Create Environment
ow env create <name> [--description "Production env"] Delete Environment
ow env delete <name>
# or
ow env rm <name> Set Variable
ow env set <env-name> <KEY> <value>
# Example
ow env set production API_URL https://api.example.com Set Secret
ow env set <env-name> <KEY> <value> --secret
# Example
ow env set production API_KEY sk_live_xxx --secret Remove Variable
ow env unset <env-name> <KEY> Bind Resources
Bind KV, Storage, or Database to an environment:
# Bind KV namespace
ow env bind <env-name> <BINDING_NAME> <resource-name> --type kv
# Bind Storage (for assets)
ow env bind <env-name> ASSETS my-storage --type assets
# Bind Storage (general)
ow env bind <env-name> BUCKET my-storage --type storage
# Bind Database
ow env bind <env-name> DB my-database --type database Storage
Manage S3/R2 storage configurations.
List Storage Configs
ow storage list
# or
ow storage ls Get Storage Details
ow storage get <name> Create Storage
ow storage create <name>
--bucket my-bucket
--endpoint https://xxx.r2.cloudflarestorage.com
--access-key-id AKIAIOSFODNN7EXAMPLE
--secret-access-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[--region auto]
[--prefix optional/prefix] Delete Storage
ow storage delete <name>
# or
ow storage rm <name> KV Namespaces
List KV Namespaces
ow kv list
# or
ow kv ls Get KV Details
ow kv get <name> Create KV Namespace
ow kv create <name> [--description "Cache namespace"] Delete KV Namespace
ow kv delete <name>
# or
ow kv rm <name> Databases
List Databases
ow databases list
# or
ow databases ls Get Database Details
ow databases get <name> Create Database
ow databases create <name> [--description "Main database"] Delete Database
ow databases delete <name>
# or
ow databases rm <name> Database Operations (Self-Hosted)
For direct database access (self-hosted setups):
Run Migrations
ow db migrate Seed Data
ow db seed Platform Storage Setup
Configure platform-wide storage for asset uploads (self-hosted):
ow setup-storage
--endpoint https://xxx.r2.cloudflarestorage.com
--bucket platform-assets
--access-key-id AKIAIOSFODNN7EXAMPLE
--secret-access-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[--region auto]
[--prefix workers] Examples
Full Workflow
# 1. Create worker
ow workers create my-api --description "REST API"
# 2. Create environment
ow env create my-api-env
# 3. Add configuration
ow env set my-api-env DATABASE_URL postgres://... --secret
ow env set my-api-env LOG_LEVEL debug
# 4. Create and bind KV
ow kv create my-cache
ow env bind my-api-env CACHE my-cache --type kv
# 5. Link environment to worker
ow workers link my-api --env my-api-env
# 6. Deploy
ow workers deploy my-api ./worker.ts Framework Deployment (SvelteKit)
# Build your SvelteKit app
bun run build
# Upload the dist folder
ow workers upload my-app ./dist Config File
Configuration is stored in ~/.openworkers/config.json:
{
"version": 1,
"default": "prod",
"aliases": {
"prod": {
"type": "api",
"url": "https://dash.openworkers.com/api/v1",
"token": "your-token"
},
"local": {
"type": "db",
"database_url": "postgres://...",
"user": "max",
"storage": {
"endpoint": "https://...",
"bucket": "...",
"access_key_id": "...",
"secret_access_key": "..."
}
}
}
}