Creek deploys web apps to Cloudflare Workers with a single command. Auto-detects framework, determines render mode (SPA/SSR/Worker), provisions infrastructure.
--json for structured output. Auto-enabled in non-TTY / CI.breadcrumbs in JSON responses — they suggest the next command.--yes to skip confirmation prompts (auto-enabled in non-TTY).ok field — true = success, false = error with error and message fields.| Task | Command |
|---|---|
| ------ | --------- |
| Authenticate | creek login |
| Authenticate (CI) | creek login --token |
| Check auth | creek whoami --json |
| Init project | creek init --json |
| Deploy | creek deploy --json |
| Deploy directory | creek deploy ./dist --json |
| Deploy from GitHub | creek deploy https://github.com/user/repo --json |
| Deploy monorepo subdir | creek deploy https://github.com/user/repo --path packages/app --json |
| Deploy demo | creek deploy --demo --json |
| Deploy template | creek deploy --template vite-react |
| Skip build | creek deploy --skip-build --json |
| Check status | creek status --json |
| Check sandbox | creek status |
| Claim sandbox | creek claim |
| List projects | creek projects --json |
| List deployments | creek deployments --json |
| List deployments (other) | creek deployments --project |
| Rollback | creek rollback --json |
| Rollback to specific | creek rollback |
| Set env var | creek env set |
| List env vars | creek env ls --json |
| Show env values | creek env ls --show --json |
| Remove env var | creek env rm |
| Add domain | creek domains add |
| List domains | creek domains ls --json |
| Activate domain | creek domains activate |
| Remove domain | creek domains rm |
| Dev server | creek dev |
Requires creek login. Deploys persist under the user's account.
creek deploy --json
No auth required. Temporary preview with claimable URL.
creek deploy --json # auto-sandbox when not logged in
creek claim <SANDBOX_ID> # convert to permanent project
CREEK_TOKEN=ck_... creek deploy --yes --json
Every command returns structured JSON with breadcrumbs:
{
"ok": true,
"url": "https://my-app-team.bycreek.com",
"project": "my-app",
"breadcrumbs": [
{ "command": "creek status", "description": "Check deployment status" },
{ "command": "creek deployments --project my-app", "description": "View deployment history" }
]
}
On error:
{
"ok": false,
"error": "not_authenticated",
"message": "Not authenticated. Run `creek login` first.",
"breadcrumbs": [
{ "command": "creek login", "description": "Authenticate interactively" }
]
}
creek login --json # 1. Authenticate
creek init --json # 2. Create creek.toml (optional)
creek deploy --json # 3. Deploy
creek deploy --json # Deploy new version
creek deployments --json # View history
creek rollback --json # Rollback to previous
creek rollback <ID> --json # Rollback to specific deployment
creek domains add app.example.com --json # Add domain
# User sets DNS: CNAME app.example.com → cname.creek.dev
creek domains activate app.example.com --json # Activate after DNS
creek domains ls --json # Verify status
[project]
name = "my-app" # Required. Lowercase alphanumeric + hyphens.
framework = "nextjs" # Optional. Auto-detected from package.json.
[build]
command = "npm run build" # Build command (default: npm run build)
output = "dist" # Build output directory
worker = "worker/index.ts" # Optional: custom Worker entry point
[resources]
d1 = true # Cloudflare D1 database → env.DB
kv = true # Cloudflare KV namespace → env.KV
r2 = true # Cloudflare R2 storage → env.BUCKET
ai = true # Cloudflare Workers AI → env.AI
SPA: vite-react, vite-vue, vite-svelte, vite-solid, static HTML
SSR: nextjs, react-router, sveltekit, nuxt, solidstart, tanstack-start
creek.toml — explicit Creek configwrangler.jsonc / wrangler.json / wrangler.toml — existing CF configpackage.json — framework auto-detectionindex.html — static site| Error | Fix |
|---|---|
| ------- | ----- |
| "Not authenticated" | creek login or set CREEK_TOKEN |
| "Invalid API key" | creek login to re-authenticate |
| "No creek.toml found" | creek init or cd to project root |
| "No project found" | Deploy from a dir with package.json or index.html |
| "No supported project found in repo" | Use --path for monorepos |
| Sandbox expired | Redeploy — sandboxes last 60 minutes |
| Domain stuck "pending" | Set CNAME to cname.creek.dev, then creek domains activate |
| Build fails | Check [build] command in creek.toml |
共 1 个版本