jack-cloud
This skill provides CLI instructions to create and deploy Jack Cloud projects, manage D1/R2/Vectorize services, and configure domains. It instructs running shell commands (jack ship, npm i -g @getjack/jack), performing network calls to https://<slug>.runjack.xyz, and handling secrets via jack secrets set / c.env.SECRET_NAME.
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
# 1. Create project
jack new my-api --template api
# 2. Add database
jack services db create
# 3. Create tables
jack db execute --write "CREATE TABLE items (id INTEGER PRIMARY KEY, name TEXT, created_at TEXT DEFAULT CURRENT_TIMESTAMP)"
# 4. Edit src/index.ts — add routes that query the DB
# Access DB via: c.env.DB (the D1 binding)
# 5. Deploy
jack ship
# 6. Verify
curl https://my-api.runjack.xyz/api/items
Secrets
Store API keys and sensitive values:
# Set a secret (prompts for value)
jack secrets set STRIPE_SECRET_KEY
# Set multiple
jack secrets set API_KEY WEBHOOK_SECRET
# List secrets (names only, values hidden)
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.jsoncdefines D1 bindings, environment vars, compatibility flags.jack/project.jsonlinks the local directory to your Jack Cloud projectsrc/index.tsis the main entry point — typically a Hono app
Advanced Services
Storage (R2)
jack services storage create # Create R2 bucket
jack services storage list # List buckets
jack services storage info # Bucket details
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 # Create index (768 dims, cosine)
jack services vectorize create --dimensions 1536 # Custom dimensions
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 * * * *" # Every 15 minutes
jack services cron create "0 * * * *" # Every hour
jack services cron list
jack services cron test "0 9 * * MON" # Validate + show next runs
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 # Reserve domain
jack domain assign app.example.com # Assign to current project
jack domain unassign app.example.com # Unassign
jack domain disconnect app.example.com # Fully remove
Follow the DNS instructions printed after assign. Typically add a CNAME record.
List Projects
jack ls # List all your projects
jack info my-api # Details for a specific project
jack open my-api # Open in browser
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
- Services deep dive — detailed patterns for each service
- Jack documentation