4.3k★by sherajdev
deploy-agent – OpenClaw Skill
deploy-agent is an OpenClaw Skills integration for coding workflows. Multi-step deployment agent for full-stack apps. Build → Test → GitHub → Cloudflare Pages with human approval at each step.
Skill Snapshot
| name | deploy-agent |
| description | Multi-step deployment agent for full-stack apps. Build → Test → GitHub → Cloudflare Pages with human approval at each step. OpenClaw Skills integration. |
| owner | sherajdev |
| repository | sherajdev/deploy-agent |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @sherajdev/deploy-agent |
| last updated | Feb 7, 2026 |
Maintainer

name: deploy-agent description: Multi-step deployment agent for full-stack apps. Build → Test → GitHub → Cloudflare Pages with human approval at each step. metadata: clawdbot: emoji: "🚀" requires: bins: ["gh", "wrangler", "git"]
deploy-agent
Deploy full-stack applications via a multi-step workflow with human approval at each stage.
Quick Start
# 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
Workflow Steps
| Step | Command | Description | Requires Approval |
|---|---|---|---|
| 1 | deploy-agent init <name> | Start deployment | ✅ Design phase |
| 2 | deploy-agent build <name> | Build app | ✅ Before testing |
| 3 | deploy-agent test <name> | Test locally | ✅ Before GitHub |
| 4 | deploy-agent push <name> | Push to GitHub | ✅ Before Cloudflare |
| 5 | deploy-agent deploy <name> | Deploy to Cloudflare | ✅ Final |
Commands
Initialize Deployment
deploy-agent init my-app
Creates a new deployment state and waits for design input.
Check Status
deploy-agent status my-app
Shows current step, approvals, and deployment info.
Continue
deploy-agent continue my-app
Get guidance on what to do next in the current step.
Build (Step 2)
deploy-agent build my-app
After designing with C.R.A.B, run this to build the app.
Test (Step 3)
deploy-agent test my-app
Verify the app is running locally before pushing.
Push to GitHub (Step 4)
deploy-agent push my-app [repo-name]
Creates GitHub repo and pushes code. Default repo name = app name.
Deploy to Cloudflare (Step 5)
deploy-agent deploy my-app [custom-domain]
Deploys to Cloudflare Pages. Default domain: {name}.sheraj.org
Cancel
deploy-agent cancel my-app
Aborts and cleans up the deployment.
List
deploy-agent list
Shows all active deployments.
Example Session
# 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 Management
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"
}
Requirements
| Tool | Purpose |
|---|---|
gh | GitHub repo creation and management |
wrangler | Cloudflare Pages deployment |
git | Version control |
jq | JSON parsing (for state management) |
Configuration
Cloudflare token should be configured in ~/.wrangler.toml:
[account]
api_token = "your-cloudflare-token"
Notes
- Each deployment is independent
- State persists across sessions
- Human approval required at each major step
- Use "cancel" to abort anytime
Next.js + Cloudflare D1 Deployment Guide
This section covers common pitfalls and fixes for deploying Next.js apps with D1 on Cloudflare Pages.
Pre-Deployment Checklist
| Check | Command | Fix if Failed |
|---|---|---|
| Next.js version | npm list next | npm install next@15.5.2 |
| Package lock sync | rm -rf node_modules package-lock.json && npm install | Commit lock file |
| Cloudflare adapter | npm list @cloudflare/next-on-pages | npm install -D @cloudflare/next-on-pages |
| wrangler installed | npm list wrangler | npm install -D wrangler |
Required Configuration
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 });
}
Cloudflare Pages Build Settings
| Setting | Value |
|---|---|
| Build command | npx @cloudflare/next-on-pages |
| Output directory | .vercel/output/static |
| Functions | Enable (for D1 API routes) |
Common Issues & Fixes
| Issue | Error | Fix |
|---|---|---|
| Lock file mismatch | npm ci can only install packages when your package.json and package-lock.json are in sync | rm -rf node_modules package-lock.json && npm install && git add package-lock.json |
| Next.js version | peer next@">=14.3.0 && <=15.5.2" from @cloudflare/next-on-pages | Downgrade to next: "15.5.2" |
| API routes not edge | The following routes were not configured to run with the Edge Runtime | Add export const runtime = 'edge'; |
| D1 access pattern | Using context.env.DB | Use getRequestContext().env.DB |
| Missing types | TypeScript errors for D1 bindings | Create env.d.ts with CloudflareEnv interface |
CSS Fix (Scrollbar Flicker)
html {
overflow-x: hidden;
scrollbar-gutter: stable;
}
body {
overflow-x: hidden;
}
Post-Deployment
- Cloudflare Dashboard → Settings → Functions
- Add D1 binding: Variable name
DB→ Select your database
Reference Documents
- Full guide:
docs/issues/nextjs-cloudflare-d1-deployment.md - Cloudflare docs: https://developers.cloudflare.com/pages/framework-guides/nextjs/
No README available.
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
| Tool | Purpose | |------|---------| | `gh` | GitHub repo creation and management | | `wrangler` | Cloudflare Pages deployment | | `git` | Version control | | `jq` | JSON parsing (for state management) |
Configuration
Cloudflare token should be configured in `~/.wrangler.toml`: ```toml [account] api_token = "your-cloudflare-token" ```
FAQ
How do I install deploy-agent?
Run openclaw add @sherajdev/deploy-agent in your terminal. This installs deploy-agent into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/sherajdev/deploy-agent. Review commits and README documentation before installing.
