Deno Deploy platform and CLI commands - deploying apps, --tunnel flag for local development with hosted KV/databases, environment variables, custom domains, deno deploy/task commands. Use for KV database access, tunnel connections, and deployment workflows.
View on GitHubFebruary 5, 2026
Select agents to install to:
npx add-skill https://github.com/denoland/skills/blob/main/skills/deno-deploy/SKILL.md -a claude-code --skill deno-deployInstallation paths:
.claude/skills/deno-deploy/# Deno Deploy
This skill provides guidance for deploying applications to Deno Deploy.
## Important: Use `deno deploy`, NOT `deployctl`
**Always use the `deno deploy` command.** Do NOT use `deployctl`.
- `deployctl` is for Deno Deploy Classic (deprecated)
- `deno deploy` is the modern, integrated command built into the Deno CLI
- **Requires Deno >= 2.4.2** - the `deno deploy` subcommand was introduced in Deno 2.4
## Deployment Workflow
### Step 1: Locate the App Directory
Before running any deploy commands, find where the Deno app is located:
```bash
# Check if deno.json exists in current directory
if [ -f "deno.json" ] || [ -f "deno.jsonc" ]; then
echo "APP_DIR: $(pwd)"
else
# Look for deno.json in immediate subdirectories
find . -maxdepth 2 -name "deno.json" -o -name "deno.jsonc" 2>/dev/null | head -5
fi
```
All deploy commands must run from the app directory.
### Step 2: Pre-Flight Checks
Check Deno version and existing configuration:
```bash
# Check Deno version (must be >= 2.4.2)
deno --version | head -1
# Check for existing deploy config
grep -E '"org"|"app"' deno.json deno.jsonc 2>/dev/null || echo "NO_DEPLOY_CONFIG"
```
### Step 3: Deploy Based on Configuration
**If `deploy.org` AND `deploy.app` exist in deno.json:**
```bash
# Build if needed (Fresh, Astro, etc.)
deno task build
# Deploy to production
deno deploy --prod
```
**If NO deploy config exists:**
**IMPORTANT: Ask the user first** - Do they have an existing app on Deno Deploy, or do they need to create a new one?
**If they have an existing app**, add the config directly to deno.json:
```json
{
"deploy": {
"org": "<ORG_NAME>",
"app": "<APP_NAME>"
}
}
```
The org name is in the Deno Deploy console URL (e.g., `console.deno.com/your-org-name`).
**If they need to create a new app:**
The CLI needs an organization name. Find it at https://console.deno.com - the org is in the URL path (e.g., `console.deno.com/your-org-name`).
Then create the app:
```bash
deno deploy cre