| name | jack-cloud |
| description | Deploy web services to the cloud with Jack. Use when: you need to create APIs, websites, or backends and deploy them live. Teaches: project creation, deployment, databases, logs, and all Jack Cloud services.
|
| allowed-tools | Read, Edit, Grep, Glob |
Jack Cloud — Deploy Anything from the Terminal
Jack deploys Cloudflare Workers projects in one command. Create an API, add a database, ship it live — all from the terminal.
Install
npm i -g @getjack/jack
jack login
MCP Tools
If your agent has mcp__jack__* tools available, prefer those over CLI commands. They return structured JSON and are tracked automatically. The CLI equivalents are noted below for agents without MCP.
Create & Deploy a Project
jack new my-api
This creates a project from a template, deploys it, and prints the live URL.
Pick a template when prompted (or pass --template):
| Template | What you get |
|---|
api | Hono API with example routes |
miniapp | Full-stack app with frontend |
simple-api-starter | Minimal API starting point |
MCP: mcp__jack__create_project with name and template params.
After creation, your project is live at https://<slug>.runjack.xyz.
Deploy Changes
After editing code, push changes live:
jack ship
For machine-readable output (useful in scripts and agents):
jack ship --json
Builds the project and deploys to production. Takes a few seconds.
MCP: mcp__jack__deploy_project
Check Status
jack info
Shows: live URL, last deploy time, attached services (databases, storage, etc.).
MCP: mcp__jack__get_project_status
Database (D1)
Create a Database
jack services db create
Adds a D1 database to your project. The binding is automatically configured in wrangler.jsonc.
MCP: mcp__jack__create_database
Query Data
jack db execute "SELECT * FROM users LIMIT 10"
For JSON output:
jack db execute --json "SELECT * FROM users LIMIT 10"
Write Data
jack db execute --write "INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')"
Create Tables
jack db execute --write "CREATE TABLE posts (id INTEGER PRIMARY KEY, title TEXT, body TEXT, created_at TEXT DEFAULT CURRENT_TIMESTAMP)"
View Schema
jack db execute "SELECT name FROM sqlite_master WHERE type='table'"
jack db execute "PRAGMA table_info(users)"
MCP: mcp__jack__execute_sql — set allow_write: true for writes. Destructive operations (DROP, TRUNCATE) are blocked by default.
Deploy After Schema Changes
After creating tables or modifying schema, redeploy so your worker code can use them:
jack ship
Logs
Stream production logs to debug issues:
jack logs
Shows real-time request/response logs. Press Ctrl+C to stop.
MCP: mcp__jack__tail_logs with duration_ms and max_events params for a bounded sample.
Common Workflow: API with Database
jack new my-api --template api
jack services db create
jack db execute --write "CREATE TABLE items (id INTEGER PRIMARY KEY, name TEXT, created_at TEXT DEFAULT CURRENT_TIMESTAMP)"
jack ship
curl https://my-api.runjack.xyz/api/items
Secrets
Store API keys and sensitive values:
jack secrets set STRIPE_SECRET_KEY
jack secrets set API_KEY WEBHOOK_SECRET
jack secrets list
Secrets are available in your worker as c.env.SECRET_NAME. Redeploy after adding secrets:
jack ship
Project Structure
my-project/
├── src/
│ └── index.ts # Worker entry point
├── wrangler.jsonc # Config: bindings, routes, compatibility
├── package.json
└── .jack/
└── project.json # Links to Jack Cloud
wrangler.jsonc defines D1 bindings, environment vars, compatibility flags
.jack/project.json links the local directory to your Jack Cloud project
src/index.ts is the main entry point — typically a Hono app
Advanced Services
Storage (R2)
jack services storage create
jack services storage list
jack services storage info
Access in worker via c.env.BUCKET binding. Use for file uploads, images, assets.
MCP: mcp__jack__create_storage_bucket, mcp__jack__list_storage_buckets, mcp__jack__get_storage_info
Vector Search (Vectorize)
jack services vectorize create
jack services vectorize create --dimensions 1536
jack services vectorize list
jack services vectorize info
Access via c.env.VECTORIZE_INDEX binding. Use for semantic search, RAG, embeddings.
MCP: mcp__jack__create_vectorize_index, mcp__jack__list_vectorize_indexes, mcp__jack__get_vectorize_info
Cron Scheduling
jack services cron create "*/15 * * * *"
jack services cron create "0 * * * *"
jack services cron list
jack services cron test "0 9 * * MON"
Your worker needs a scheduled() handler or POST /__scheduled route.
MCP: mcp__jack__create_cron, mcp__jack__list_crons, mcp__jack__test_cron
Custom Domains
jack domain connect app.example.com
jack domain assign app.example.com
jack domain unassign app.example.com
jack domain disconnect app.example.com
Follow the DNS instructions printed after assign. Typically add a CNAME record.
List Projects
jack ls
jack info my-api
jack open my-api
MCP: mcp__jack__list_projects with optional filter (all, local, deployed, cloud).
Troubleshooting
| Problem | Fix |
|---|
| "Not authenticated" | Run jack login |
| "No wrangler config found" | Run from a jack project directory |
| "Database not found" | Run jack services db create |
| Deploy fails | Check jack logs for errors, fix code, jack ship again |
| Need to start over | jack new creates a fresh project |
Reference