Step 1 of 2 — inside Claude Code

Add the marketplace, then install

Two slash commands, typed directly into Claude Code. No terminal. No config files. The binary downloads automatically on first use.
/plugin marketplace add darrenoakey/waft-mcp
/plugin install waft@waft-mcp
That's it. The plugin registers the waft MCP server — and downloads the binary automatically the first time Claude uses a waft tool. No terminal needed.

What your agent can do after install

🚀
Deploy anything
"Make this live" or "release this as my-app" — Claude deploys it and gives you a URL.
🔁
Auto-deploy on push
"Add GitHub Actions so this deploys automatically on every push" — Claude sets up the workflow.
🔒
Enable security
"Add API key auth to this app" — Claude enables rate limiting, auth headers, and WAF rules.
📊
Monitor & debug
"Why is my app slow?" — Claude checks telemetry, reads logs, and finds the bottleneck.
🌐
Custom domains
"Point myapp.com at this" — Claude provisions DNS and SSL automatically.
Scale & manage
"Show all my apps" or "what's the error rate on production?" — full visibility in the chat.

See it in action

You: Make this live as "dashboard"
Claude: Deploying to waft now.
→ waft_release(name="dashboard", path=".")
→ Zipping 31 files… uploading… provisioning…
→ Live: https://dashboard.waft.dev
Claude: Done. Your app is live at https://dashboard.waft.dev
You: Add a GitHub Action to auto-deploy on every push to main
Claude: On it. I'll create a workflow file and set up the waft credentials as a secret.
→ Creating .github/workflows/deploy.yml
→ waft_status(name="dashboard") → fetches app_id for secret config
→ Workflow created. Push to main → auto-deploys to waft.
Claude: Done. Every push to main will automatically deploy to dashboard.waft.dev. Add WAFT_TOKEN to your repo secrets to activate.
Create account →
Step 1 of 2

Install the binary, then add the extension

Two commands. Gemini handles auto-updates from then on.
$ curl -sSL https://waft.dev/install | sh
$ gemini extensions install https://github.com/darrenoakey/waft-mcp
The first command downloads the waft binary. The second installs the Gemini extension — Gemini can then auto-update it with gemini extensions update waft.

What your agent can do after install

🚀
Deploy anything
"Deploy this as my-app" — Gemini packages and ships it, returns the live URL.
🔁
Set up CI/CD
"Add auto-deploy on push" — Gemini creates the GitHub Actions workflow automatically.
🔒
Enable security
"Add rate limiting and API key auth" — Gemini enables protection modules.
📊
Monitor & debug
"Check the logs on my app" or "what's the p95 latency?" — Gemini reads it live.
🌐
Custom domains
"Use myapp.com instead of the waft URL" — Gemini provisions DNS and SSL.
Full visibility
"List all my apps" or "how many requests today?" — instant answers in the chat.

See it in action

You: Deploy this API as "my-api"
Gemini: Deploying to waft now.
→ waft_release(name="my-api", path=".")
→ Packaging… uploading… deploying…
→ Live: https://my-api.waft.dev
Gemini: Your API is live at https://my-api.waft.dev. Want me to check the request logs?
You: Yeah — and add rate limiting while you're at it
Gemini: Checking logs and enabling rate limiting.
→ waft_logs(name="my-api") → 3 recent requests, no errors
→ waft_release(name="my-api", security=["rate_limit"]) → enables 100 req/min
→ Rate limiting active: 100 requests/min per IP
Gemini: Logs look clean. Rate limiting is now active — 100 requests/min per IP.
Create account →
Step 1 of 1

Run this in your terminal

Downloads the waft binary and registers it with Codex automatically.
$ curl -sSL https://waft.dev/install | sh
The script detects Codex and automatically runs codex mcp add waft -- ~/.local/bin/waft. No config files to edit.

What your agent can do after install

🚀
Deploy anything
"Ship this as my-app" — Codex zips the project and deploys it to waft.
🔁
Set up CI/CD
"Auto-deploy on push to main" — Codex creates the GitHub Actions workflow.
🔒
Enable security
"Add API key protection" — Codex configures auth, rate limiting, and WAF.
📊
Monitor & debug
"What's the error rate on production?" — Codex reads telemetry live.
🌐
Custom domains
"Point myapp.com here" — Codex provisions DNS and SSL end-to-end.
Full visibility
"Show all my deployments" — list apps, statuses, URLs, and recent changes.

See it in action

You: Deploy this project as "backend-api"
Codex: Deploying to waft now.
→ waft_release(name="backend-api", path=".")
→ Zipping 18 files… uploading…
→ Live: https://backend-api.waft.dev
Codex: Deployed. Live at https://backend-api.waft.dev.
You: Add auto-deploy on push and enable API key auth
Codex: Setting that up now.
→ Creating .github/workflows/deploy.yml
→ waft_release(name="backend-api", security=["api_keys"]) → auth enabled
→ CI/CD active. API key auth enabled.
Codex: Done. GitHub Actions will deploy on every push to main. API key auth is live — keys are managed from the waft dashboard.
Create account →