Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Multi-step deployment agent for full-stack apps. Build → Test → GitHub → Cloudflare Pages with human approval at each step.
Multi-step deployment agent for full-stack apps. Build → Test → GitHub → Cloudflare Pages with human approval at each step.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Deploy full-stack applications via a multi-step workflow with human approval at each stage.
# Install via ClawdHub clawdhub install deploy-agent # Initialize a new deployment deploy-agent init my-app # Check status deploy-agent status my-app # Continue through steps deploy-agent continue my-app
StepCommandDescriptionRequires Approval1deploy-agent init <name>Start deployment✅ Design phase2deploy-agent build <name>Build app✅ Before testing3deploy-agent test <name>Test locally✅ Before GitHub4deploy-agent push <name>Push to GitHub✅ Before Cloudflare5deploy-agent deploy <name>Deploy to Cloudflare✅ Final
deploy-agent init my-app Creates a new deployment state and waits for design input.
deploy-agent status my-app Shows current step, approvals, and deployment info.
deploy-agent continue my-app Get guidance on what to do next in the current step.
deploy-agent build my-app After designing with C.R.A.B, run this to build the app.
deploy-agent test my-app Verify the app is running locally before pushing.
deploy-agent push my-app [repo-name] Creates GitHub repo and pushes code. Default repo name = app name.
deploy-agent deploy my-app [custom-domain] Deploys to Cloudflare Pages. Default domain: {name}.sheraj.org
deploy-agent cancel my-app Aborts and cleans up the deployment.
deploy-agent list Shows all active deployments.
# Start new deployment $ deploy-agent init my-blog 🚀 Deployment initialized: my-blog Step 1: Design your app with C.R.A.B # ... design phase with C.R.A.B ... $ deploy-agent build my-blog 🚀 Build complete! Step 2: Local Testing Start dev server: cd my-blog && npm run dev # ... test locally ... $ deploy-agent push my-blog 🚀 GitHub repository ready! Say 'deploy-agent deploy my-blog' to deploy to Cloudflare $ deploy-agent deploy my-blog my-blog.sheraj.org 🎉 Deployment complete! App live at: https://my-blog.sheraj.org
State stored in: ~/.clawdbot/skills/deploy-agent/state/{deployment-name}.json { "name": "my-blog", "step": 5, "status": "deployed", "created_at": "2026-01-18T08:00:00Z", "repo_url": "https://github.com/user/my-blog", "domain": "https://my-blog.sheraj.org" }
ToolPurposeghGitHub repo creation and managementwranglerCloudflare Pages deploymentgitVersion controljqJSON parsing (for state management)
Cloudflare token should be configured in ~/.wrangler.toml: [account] api_token = "your-cloudflare-token"
Each deployment is independent State persists across sessions Human approval required at each major step Use "cancel" to abort anytime
This section covers common pitfalls and fixes for deploying Next.js apps with D1 on Cloudflare Pages.
CheckCommandFix if FailedNext.js versionnpm list nextnpm install next@15.5.2Package lock syncrm -rf node_modules package-lock.json && npm installCommit lock fileCloudflare adapternpm list @cloudflare/next-on-pagesnpm install -D @cloudflare/next-on-pageswrangler installednpm list wranglernpm install -D wrangler
1. package.json { "dependencies": { "next": "15.5.2", "react": "^18.3.1", "react-dom": "^18.3.1" }, "devDependencies": { "@cloudflare/next-on-pages": "^1.13.16", "wrangler": "^4.x" } } 2. wrangler.toml name = "my-app" compatibility_date = "2026-01-18" compatibility_flags = ["nodejs_compat"] [[d1_databases]] binding = "DB" database_name = "my-db" database_id = "your-db-id" 3. API Routes (each file) import { getRequestContext } from '@cloudflare/next-on-pages'; export const runtime = 'edge'; export async function GET() { const { env } = getRequestContext(); const { results } = await env.DB.prepare("SELECT * FROM tasks").all(); return Response.json({ data: results }); }
SettingValueBuild commandnpx @cloudflare/next-on-pagesOutput directory.vercel/output/staticFunctionsEnable (for D1 API routes)
IssueErrorFixLock file mismatchnpm ci can only install packages when your package.json and package-lock.json are in syncrm -rf node_modules package-lock.json && npm install && git add package-lock.jsonNext.js versionpeer next@">=14.3.0 && <=15.5.2" from @cloudflare/next-on-pagesDowngrade to next: "15.5.2"API routes not edgeThe following routes were not configured to run with the Edge RuntimeAdd export const runtime = 'edge';D1 access patternUsing context.env.DBUse getRequestContext().env.DBMissing typesTypeScript errors for D1 bindingsCreate env.d.ts with CloudflareEnv interface
html { overflow-x: hidden; scrollbar-gutter: stable; } body { overflow-x: hidden; }
Cloudflare Dashboard → Settings → Functions Add D1 binding: Variable name DB → Select your database
Full guide: docs/issues/nextjs-cloudflare-d1-deployment.md Cloudflare docs: https://developers.cloudflare.com/pages/framework-guides/nextjs/
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.