Loading...
Loading...
Complete command-line reference for managing the Temps deployment platform. Covers all 54+ CLI commands including projects, deployments, environments, services, domains, monitoring, backups, security scanning, error tracking, and platform administration. Use when the user wants to: (1) Find CLI command syntax, (2) Manage projects and deployments via CLI, (3) Configure services and infrastructure, (4) Set up monitoring and logging, (5) Automate deployments with CI/CD, (6) Manage domains and DNS, (7) Configure notifications and webhooks. Triggers: "temps cli", "temps command", "how to use temps", "@temps-sdk/cli", "bunx temps", "npx temps", "temps deploy", "temps projects", "temps services".
npx skill4agent add gotempsh/temps temps-cli# Run directly without installing
npx @temps-sdk/cli --version
bunx @temps-sdk/cli --version
# Or install globally
npm install -g @temps-sdk/cli
bun add -g @temps-sdk/cli# Interactive configuration wizard
bunx @temps-sdk/cli configure
# Set API URL
bunx @temps-sdk/cli configure set apiUrl https://your-server.example.com:3000
# Set default output format (table, json, minimal)
bunx @temps-sdk/cli configure set outputFormat table
# View current configuration
bunx @temps-sdk/cli configure show
# List all config values
bunx @temps-sdk/cli configure list
# Reset to defaults
bunx @temps-sdk/cli configure reset~/.temps/config.json~/.temps/.secrets| Variable | Description |
|---|---|
| Override API endpoint |
| API token (highest priority) |
| API token (CI/CD) |
| API key |
| Disable colored output |
-v, --version Display version number
--no-color Disable colored output
--debug Enable debug output
-h, --help Display help for command# Interactive login (prompts for API key)
bunx @temps-sdk/cli login
# Non-interactive login
bunx @temps-sdk/cli login --api-key tk_abc123def456
# Login to specific server
bunx @temps-sdk/cli login --api-key tk_abc123def456 -u https://temps.example.com Authenticating...
Logged in as david@example.com (Admin)
Credentials saved to ~/.temps/.secretsbunx @temps-sdk/cli logout Credentials clearedbunx @temps-sdk/cli whoami
bunx @temps-sdk/cli whoami --json Current User
ID 1
Email david@example.com
Name David
Role Admin{
"id": 1,
"email": "david@example.com",
"name": "David",
"role": "admin"
}projectpbunx @temps-sdk/cli projects list
bunx @temps-sdk/cli projects ls --json
bunx @temps-sdk/cli projects list --page 2 --per-page 10 Projects (3)
┌──────┬──────────────┬────────┬──────────────┬─────────────────────┐
│ Name │ Slug │ Preset │ Environments │ Created │
├──────┼──────────────┼────────┼──────────────┼─────────────────────┤
│ Blog │ blog │ nextjs │ 2 │ 2025-01-15 10:30:00 │
│ API │ api-backend │ nodejs │ 1 │ 2025-01-14 08:00:00 │
│ Docs │ docs-site │ static │ 1 │ 2025-01-12 14:00:00 │
└──────┴──────────────┴────────┴──────────────┴─────────────────────┘# Interactive creation
bunx @temps-sdk/cli projects create
# Non-interactive
bunx @temps-sdk/cli projects create -n "My App" -d "Description of my app" --repo https://github.com/org/repobunx @temps-sdk/cli projects show -p my-app
bunx @temps-sdk/cli projects show -p my-app --json My App
ID 5
Slug my-app
Description My application
Preset nextjs
Main Branch main
Repository org/my-app
Created 1/15/2025, 10:30:00 AM
Updated 1/20/2025, 3:45:00 PM# Update name and description
bunx @temps-sdk/cli projects update -p my-app -n "New Name" -d "New description"
# Non-interactive mode
bunx @temps-sdk/cli projects update -p my-app -n "New Name" -y# Update slug and enable attack mode
bunx @temps-sdk/cli projects settings -p my-app --slug new-slug --attack-mode
# Enable preview environments
bunx @temps-sdk/cli projects settings -p my-app --preview-envs
# Disable attack mode
bunx @temps-sdk/cli projects settings -p my-app --no-attack-modebunx @temps-sdk/cli projects git -p my-app --owner myorg --repo myrepo --branch main --preset nextjs
bunx @temps-sdk/cli projects git -p my-app --directory apps/web --preset nextjs -y# Scale replicas and set resource limits
bunx @temps-sdk/cli projects config -p my-app --replicas 3 --cpu-limit 1 --memory-limit 512
# Enable auto-deploy
bunx @temps-sdk/cli projects config -p my-app --auto-deploybunx @temps-sdk/cli projects delete -p my-app
bunx @temps-sdk/cli projects rm -p my-app -f # Skip confirmation# Interactive deployment
bunx @temps-sdk/cli deploy my-app
# Specify branch and environment
bunx @temps-sdk/cli deploy my-app -b feature/new-ui -e staging
# Fully automated
bunx @temps-sdk/cli deploy -p my-app -b main -e production -y Deploying my-app
Branch main
Environment production
Deployment started (ID: 42)
Building...
Pushing image...
Starting containers...
Deployment successful!# Deploy a directory
bunx @temps-sdk/cli deploy:static --path ./dist -p my-app
# Deploy an archive
bunx @temps-sdk/cli deploy:static --path ./build.tar.gz -p my-app -e production -y# Deploy a pre-built image
bunx @temps-sdk/cli deploy:image --image ghcr.io/org/app:v1.0 -p my-app
# With environment and automation
bunx @temps-sdk/cli deploy:image --image registry.example.com/app:latest -p my-app -e staging -y# Build from Dockerfile and deploy
bunx @temps-sdk/cli deploy:local-image -p my-app -f Dockerfile -c .
# Deploy an existing local image
bunx @temps-sdk/cli deploy:local-image --image my-app:latest -p my-app -e production -y
# With build arguments
bunx @temps-sdk/cli deploy:local-image -p my-app --build-arg NODE_ENV=production --build-arg API_URL=https://api.example.combunx @temps-sdk/cli deployments list -p my-app
bunx @temps-sdk/cli deployments ls -p my-app --limit 5 --json
bunx @temps-sdk/cli deployments list -p my-app --page 2 --per-page 10 --environment-id 1 Deployments (3)
┌────┬─────────┬────────────┬────────────┬──────────┬─────────────────────┐
│ ID │ Branch │ Env │ Status │ Duration │ Created │
├────┼─────────┼────────────┼────────────┼──────────┼─────────────────────┤
│ 42 │ main │ production │ ● running │ 2m 15s │ 2025-01-20 15:30:00 │
│ 41 │ develop │ staging │ ● running │ 1m 45s │ 2025-01-20 14:00:00 │
│ 40 │ main │ production │ ○ stopped │ 3m 02s │ 2025-01-19 10:00:00 │
└────┴─────────┴────────────┴────────────┴──────────┴─────────────────────┘bunx @temps-sdk/cli deployments status -p my-app -d 42
bunx @temps-sdk/cli deployments status -p my-app -d 42 --json# Rollback to previous deployment
bunx @temps-sdk/cli deployments rollback -p my-app -e production
# Rollback to specific deployment
bunx @temps-sdk/cli deployments rollback -p my-app --to 40
# Cancel a running deployment
bunx @temps-sdk/cli deployments cancel -p 5 -d 42
# Pause/resume
bunx @temps-sdk/cli deployments pause -p 5 -d 42
bunx @temps-sdk/cli deployments resume -p 5 -d 42
# Teardown (remove all resources)
bunx @temps-sdk/cli deployments teardown -p 5 -d 42# View logs
bunx @temps-sdk/cli logs -p my-app
# Stream logs in real-time
bunx @temps-sdk/cli logs -p my-app -f
# Show last 50 lines from staging
bunx @temps-sdk/cli logs -p my-app -e staging -n 50
# Logs for specific deployment
bunx @temps-sdk/cli logs -p my-app -d 42 -fbunx @temps-sdk/cli environments list -p my-app
bunx @temps-sdk/cli environments ls -p my-app --jsonbunx @temps-sdk/cli environments create -p my-app -n stagingbunx @temps-sdk/cli environments delete -p my-app -n staging
bunx @temps-sdk/cli environments rm -p my-app -n staging -f# List all variables
bunx @temps-sdk/cli environments vars list -p my-app -e production
bunx @temps-sdk/cli environments vars list -p my-app -e production --json
# Get a specific variable
bunx @temps-sdk/cli environments vars get -p my-app -e production -k DATABASE_URL
# Set a variable
bunx @temps-sdk/cli environments vars set -p my-app -e production -k API_KEY -v "sk_live_abc123"
# Set a secret variable (masked in UI)
bunx @temps-sdk/cli environments vars set -p my-app -e production -k SECRET_KEY -v "supersecret" --secret
# Delete a variable
bunx @temps-sdk/cli environments vars delete -p my-app -e production -k OLD_KEY -y
# Import from .env file
bunx @temps-sdk/cli environments vars import -p my-app -e production -f .env.production
# Export to file
bunx @temps-sdk/cli environments vars export -p my-app -e production -f .env.backupbunx @temps-sdk/cli environments resources -p my-app -e production --jsonbunx @temps-sdk/cli environments scale -p my-app -e production --replicas 3# List cron jobs
bunx @temps-sdk/cli environments crons list --project-id 5
# Show cron job details
bunx @temps-sdk/cli environments crons show --id 1 --json
# List cron executions
bunx @temps-sdk/cli environments crons executions --cron-id 1 --limit 10svcbunx @temps-sdk/cli services list
bunx @temps-sdk/cli services ls --json External Services (2)
┌────┬───────────┬────────────┬─────────────┬──────────┐
│ ID │ Name │ Type │ Version │ Status │
├────┼───────────┼────────────┼─────────────┼──────────┤
│ 1 │ main-db │ PostgreSQL │ 16-alpine │ ● active │
│ 2 │ cache │ Redis │ 7-alpine │ ● active │
└────┴───────────┴────────────┴─────────────┴──────────┘# Interactive creation
bunx @temps-sdk/cli services create
# Non-interactive
bunx @temps-sdk/cli services create -t postgres -n main-db -y
bunx @temps-sdk/cli services create -t redis -n cache -y
bunx @temps-sdk/cli services create -t mongodb -n data-store -y
bunx @temps-sdk/cli services create -t s3 -n files -y
# With custom parameters
bunx @temps-sdk/cli services create -t postgres -n analytics-db --parameters '{"version":"17-alpine"}' -ypostgresmongodbrediss3bunx @temps-sdk/cli services show --id 1
bunx @temps-sdk/cli services show --id 1 --json main-db
ID 1
Type PostgreSQL
Version 16-alpine
Status ● active
Connection postgresql://user:pass@localhost:5432/main
Created 1/15/2025, 10:30:00 AM
Updated 1/20/2025, 3:45:00 PM
Parameters
max_connections 200
shared_buffers 256MB# Start/stop
bunx @temps-sdk/cli services start --id 1
bunx @temps-sdk/cli services stop --id 1
# Update
bunx @temps-sdk/cli services update --id 1 -n postgres:18-alpine
# Upgrade version
bunx @temps-sdk/cli services upgrade --id 1 -v postgres:18-alpine
# Remove
bunx @temps-sdk/cli services remove --id 1
bunx @temps-sdk/cli services rm --id 1 -f# Import a running Docker container as a managed service
bunx @temps-sdk/cli services import -t postgres -n imported-db --container-id my-postgres-container -y# Link service to project (injects env vars)
bunx @temps-sdk/cli services link --id 1 --project-id 5
# Unlink
bunx @temps-sdk/cli services unlink --id 1 --project-id 5
# View linked projects
bunx @temps-sdk/cli services projects --id 1
# View injected env vars
bunx @temps-sdk/cli services env --id 1 --project-id 5
# Get specific env var
bunx @temps-sdk/cli services env-var --id 1 --project-id 5 --var DATABASE_URLbunx @temps-sdk/cli services types
bunx @temps-sdk/cli services types --jsonbunx @temps-sdk/cli providers list
bunx @temps-sdk/cli providers ls --json# Interactive
bunx @temps-sdk/cli providers add
# Non-interactive
bunx @temps-sdk/cli providers add --type github --name "My GitHub" --token ghp_abc123 -y
bunx @temps-sdk/cli providers add --type gitlab --name "My GitLab" --token glpat-abc123 -ybunx @temps-sdk/cli providers show --id 1 --json
bunx @temps-sdk/cli providers activate --id 1
bunx @temps-sdk/cli providers deactivate --id 1
bunx @temps-sdk/cli providers remove --id 1 -f
# Safe delete (checks for dependencies)
bunx @temps-sdk/cli providers safe-delete --id 1 -y
bunx @temps-sdk/cli providers deletion-check --id 1 --json# Connect git to project
bunx @temps-sdk/cli providers git connect --project my-app --provider-id 1 --repo org/repo --branch main
# List repos from provider
bunx @temps-sdk/cli providers git repos --id 1
bunx @temps-sdk/cli providers git repos --search "my-app" --language typescript --page 1 --per-page 50
bunx @temps-sdk/cli providers git repos --sort stars --direction desc --owner myorg
# Manage connections
bunx @temps-sdk/cli providers connections list --json
bunx @temps-sdk/cli providers connections list --page 1 --per-page 50 --sort account_name --direction asc
bunx @temps-sdk/cli providers connections show --id 1
bunx @temps-sdk/cli providers connections sync --id 1
bunx @temps-sdk/cli providers connections validate --id 1
bunx @temps-sdk/cli providers connections update-token --id 1 --token ghp_newtoken
bunx @temps-sdk/cli providers connections activate --id 1
bunx @temps-sdk/cli providers connections deactivate --id 1
bunx @temps-sdk/cli providers connections delete --id 1 -ybunx @temps-sdk/cli domains list -p my-app
bunx @temps-sdk/cli domains ls -p my-app --jsonbunx @temps-sdk/cli domains add -p my-app -d example.com -ybunx @temps-sdk/cli domains verify -p my-app -d example.com
bunx @temps-sdk/cli domains status -p my-app -d example.com --json
bunx @temps-sdk/cli domains ssl -p my-app -d example.com --jsonbunx @temps-sdk/cli domains remove -p my-app -d example.com -f# List certificate orders
bunx @temps-sdk/cli domains orders list --json
# Create order
bunx @temps-sdk/cli domains orders create --domain-id 1 --challenge-type http-01
# Show order details
bunx @temps-sdk/cli domains orders show --order-id 1 --json
# Finalize (verify challenge and issue certificate)
bunx @temps-sdk/cli domains orders finalize --domain-id 1
# Cancel order
bunx @temps-sdk/cli domains orders cancel --order-id 1 -y# Get DNS challenge record to add
bunx @temps-sdk/cli domains dns-challenge --domain-id 1 --json
# Debug HTTP challenge accessibility
bunx @temps-sdk/cli domains http-debug --domain example.com --token abc123 --expected xyz789cdom# List custom domains
bunx @temps-sdk/cli custom-domains list --project-id 5 --json
# Create with environment targeting
bunx @temps-sdk/cli custom-domains create --project-id 5 -d app.example.com --environment-id 1 -y
# Create redirect domain
bunx @temps-sdk/cli custom-domains create --project-id 5 -d old.example.com --redirect-to https://new.example.com --status-code 301 -y
# Show details
bunx @temps-sdk/cli custom-domains show --project-id 5 --domain-id 1 --json
# Update
bunx @temps-sdk/cli custom-domains update --project-id 5 --domain-id 1 --branch feature/v2
# Link certificate
bunx @temps-sdk/cli custom-domains link-cert --project-id 5 --domain-id 1 --certificate-id 3
# Remove
bunx @temps-sdk/cli custom-domains remove --project-id 5 --domain-id 1 -f# List DNS records
bunx @temps-sdk/cli dns list --json
# Add record
bunx @temps-sdk/cli dns add --type A --name app --content 1.2.3.4 --ttl 3600 -y
# Show record
bunx @temps-sdk/cli dns show --id 1 --json
# Test DNS resolution
bunx @temps-sdk/cli dns test --name app.example.com --type A --json
# List zones
bunx @temps-sdk/cli dns zones --json
# Remove record
bunx @temps-sdk/cli dns remove --id 1 -fdnsp# List DNS providers
bunx @temps-sdk/cli dns-providers list --json
# Create Cloudflare provider
bunx @temps-sdk/cli dns-providers create -n "Cloudflare" -t cloudflare --api-token cf_abc123 -y
# Create Route53 provider
bunx @temps-sdk/cli dns-providers create -n "AWS" -t route53 --access-key-id AKIA... --secret-access-key secret --region us-east-1 -y
# Test provider connection
bunx @temps-sdk/cli dns-providers test --id 1
# List provider zones
bunx @temps-sdk/cli dns-providers zones --id 1 --json
# Manage domains
bunx @temps-sdk/cli dns-providers domains list --id 1 --json
bunx @temps-sdk/cli dns-providers domains add --id 1 -d example.com --auto-manage
bunx @temps-sdk/cli dns-providers domains verify --provider-id 1 -d example.com
bunx @temps-sdk/cli dns-providers domains remove --provider-id 1 -d example.com -f
# DNS lookup
bunx @temps-sdk/cli dns-providers lookup -d example.com --jsoncloudflarenamecheaproute53digitaloceangcpazuremanual# List providers
bunx @temps-sdk/cli notifications list --json
# Add Slack provider
bunx @temps-sdk/cli notifications add --type slack --name "Alerts" --webhook-url https://hooks.slack.com/... --channel "#alerts" -y
# Add Email provider
bunx @temps-sdk/cli notifications add --type email --name "Email Alerts" --smtp-host smtp.gmail.com --smtp-port 587 --smtp-user user@gmail.com --smtp-pass apppassword --from alerts@example.com --to team@example.com -y
# Add Webhook provider
bunx @temps-sdk/cli notifications add --type webhook --name "Custom Hook" --url https://example.com/webhook --secret mysecret -y
# Show/manage providers
bunx @temps-sdk/cli notifications show --id 1 --json
bunx @temps-sdk/cli notifications enable --id 1
bunx @temps-sdk/cli notifications disable --id 1
bunx @temps-sdk/cli notifications update --id 1 --name "New Name"
bunx @temps-sdk/cli notifications test --id 1
bunx @temps-sdk/cli notifications remove --id 1 -fnotif-prefs# Show current preferences
bunx @temps-sdk/cli notification-preferences show --json
# Update preferences
bunx @temps-sdk/cli notification-preferences update -k email_enabled -v true
bunx @temps-sdk/cli notification-preferences update -k deployment_failures_enabled -v true
bunx @temps-sdk/cli notification-preferences update -k ssl_days_before_expiration -v 30
bunx @temps-sdk/cli notification-preferences update -k minimum_severity -v warning
# Reset to defaults
bunx @temps-sdk/cli notification-preferences reset -yemail_enabledslack_enabledweekly_digest_enabledbatch_similar_notificationsdeployment_failures_enabledbuild_errors_enabledruntime_errors_enabledssl_expiration_enableddomain_expiration_enableddns_changes_enabledbackup_failures_enabledbackup_successes_enabledroute_downtime_enabledload_balancer_issues_enableds3_connection_issues_enabledretention_policy_violations_enablederror_thresholderror_time_windowssl_days_before_expirationminimum_severitydigest_send_timedigest_send_day# List monitors
bunx @temps-sdk/cli monitors list --project-id 5 --json
# Create HTTP monitor
bunx @temps-sdk/cli monitors create --project-id 5 -n "API Health" -t http -i 60 -y
# Create TCP monitor
bunx @temps-sdk/cli monitors create --project-id 5 -n "DB Connection" -t tcp -i 300 -y
# Show details
bunx @temps-sdk/cli monitors show --id 1 --json
# Current status
bunx @temps-sdk/cli monitors status --id 1 --json
# Uptime history
bunx @temps-sdk/cli monitors history --id 1 --days 30 --json
# Remove
bunx @temps-sdk/cli monitors remove --id 1 -fhttptcpping603006009001800incident# List incidents
bunx @temps-sdk/cli incidents list --project-id 5 --status investigating --json
bunx @temps-sdk/cli incidents list --project-id 5 --page 1 --page-size 20 --environment-id 1
# Create incident
bunx @temps-sdk/cli incidents create --project-id 5 -t "API Degradation" -d "High response times" -s major -y
# Show incident
bunx @temps-sdk/cli incidents show --id 1 --json
# Update status
bunx @temps-sdk/cli incidents update-status --id 1 -s monitoring -m "Fix deployed, monitoring"
bunx @temps-sdk/cli incidents update-status --id 1 -s resolved -m "Issue resolved"
# List updates
bunx @temps-sdk/cli incidents updates --id 1 --json
# Bucketed incidents (time series)
bunx @temps-sdk/cli incidents bucketed --project-id 5 -i hourly --jsoncriticalmajorminorinvestigatingidentifiedmonitoringresolvedcts# List containers
bunx @temps-sdk/cli containers list -p 5 -e 1 --json
# Show container details
bunx @temps-sdk/cli containers show -p 5 -e 1 -c abc123 --json
# Start/stop/restart
bunx @temps-sdk/cli containers start -p 5 -e 1 -c abc123
bunx @temps-sdk/cli containers stop -p 5 -e 1 -c abc123
bunx @temps-sdk/cli containers restart -p 5 -e 1 -c abc123
# Force stop
bunx @temps-sdk/cli containers stop -p 5 -e 1 -c abc123 -f
# Live metrics (auto-refresh)
bunx @temps-sdk/cli containers metrics -p 5 -e 1 -c abc123 -w -i 2
bunx @temps-sdk/cli containers metrics -p 5 -e 1 -c abc123 --jsonrtlogs# Stream container runtime logs
bunx @temps-sdk/cli runtime-logs -p my-app
# Follow mode with specific environment
bunx @temps-sdk/cli runtime-logs -p my-app -e staging -f
# Show specific container
bunx @temps-sdk/cli runtime-logs -p my-app --container web-1 --tail 200
# JSON output
bunx @temps-sdk/cli runtime-logs -p my-app --json# List sources
bunx @temps-sdk/cli backups sources list --json
# Create source
bunx @temps-sdk/cli backups sources create -n "Main DB" --source-type postgres --connection-string "postgresql://..." -y
# Show source
bunx @temps-sdk/cli backups sources show --id 1 --json
# Update source
bunx @temps-sdk/cli backups sources update --id 1 -n "Primary DB"
# List backups for source
bunx @temps-sdk/cli backups sources backups --id 1 --json
# Trigger manual backup
bunx @temps-sdk/cli backups sources run --id 1
# Remove source
bunx @temps-sdk/cli backups sources remove --id 1 -f# List schedules
bunx @temps-sdk/cli backups schedules list --json
# Create schedule
bunx @temps-sdk/cli backups schedules create --source-id 1 --cron "0 2 * * *" --retention-count 7 --storage-backend local -y
# Show schedule
bunx @temps-sdk/cli backups schedules show --id 1 --json
# Enable/disable
bunx @temps-sdk/cli backups schedules enable --id 1
bunx @temps-sdk/cli backups schedules disable --id 1
# Delete schedule
bunx @temps-sdk/cli backups schedules delete --id 1 -f# List all backups
bunx @temps-sdk/cli backups list --json
# Show backup details
bunx @temps-sdk/cli backups show --id 1 --json
# Run a service backup
bunx @temps-sdk/cli backups run-service --service-id 1 --jsonscan# List project scans
bunx @temps-sdk/cli scans list --project-id 5 --json
bunx @temps-sdk/cli scans list --project-id 5 --page 2 --page-size 10
# Trigger scan
bunx @temps-sdk/cli scans trigger --project-id 5 --environment-id 1
# Latest scan
bunx @temps-sdk/cli scans latest --project-id 5 --json
# Scans per environment
bunx @temps-sdk/cli scans environments --project-id 5 --json
# Show scan details
bunx @temps-sdk/cli scans show --id 1 --json
# List vulnerabilities
bunx @temps-sdk/cli scans vulnerabilities --id 1 --json
bunx @temps-sdk/cli scans vulns --id 1 --severity CRITICAL --json
# Scan by deployment
bunx @temps-sdk/cli scans by-deployment --deployment-id 42 --json
# Remove scan
bunx @temps-sdk/cli scans remove --id 1 -fCRITICALHIGHMEDIUMLOWerror# List error groups
bunx @temps-sdk/cli errors list --project-id 5 --json
bunx @temps-sdk/cli errors list --project-id 5 --status unresolved --page 1 --page-size 20
bunx @temps-sdk/cli errors list --project-id 5 --environment-id 1 --start-date 2025-01-01 --end-date 2025-01-31
bunx @temps-sdk/cli errors list --project-id 5 --sort-by total_count --sort-order desc
# Show error group
bunx @temps-sdk/cli errors show --project-id 5 --group-id abc123 --json
# Update error group status
bunx @temps-sdk/cli errors update --project-id 5 --group-id abc123 --status resolved
# List events for error group
bunx @temps-sdk/cli errors events --project-id 5 --group-id abc123 --json
# Show single event
bunx @temps-sdk/cli errors event --project-id 5 --group-id abc123 --event-id evt456 --json
# Statistics
bunx @temps-sdk/cli errors stats --project-id 5 --json
# Timeline
bunx @temps-sdk/cli errors timeline --project-id 5 --days 7 --bucket 1h --json
# Dashboard
bunx @temps-sdk/cli errors dashboard --project-id 5 --days 7 --compare --jsonunresolvedresolvedignoredhooks# List webhooks
bunx @temps-sdk/cli webhooks list --project-id 5 --json
# List deliveries with limit
bunx @temps-sdk/cli webhooks deliveries list --project-id 5 --webhook-id 1 --limit 100 --json
# Create webhook
bunx @temps-sdk/cli webhooks create --project-id 5 -u https://example.com/webhook -e "deployment.success,deployment.failed" -s mysecret -y
# Show webhook
bunx @temps-sdk/cli webhooks show --project-id 5 --webhook-id 1 --json
# Update webhook
bunx @temps-sdk/cli webhooks update --project-id 5 --webhook-id 1 -u https://new-endpoint.com/webhook
# Enable/disable
bunx @temps-sdk/cli webhooks enable --project-id 5 --webhook-id 1
bunx @temps-sdk/cli webhooks disable --project-id 5 --webhook-id 1
# List available event types
bunx @temps-sdk/cli webhooks events --json
# View deliveries
bunx @temps-sdk/cli webhooks deliveries list --project-id 5 --webhook-id 1 --json
bunx @temps-sdk/cli webhooks deliveries show --project-id 5 --webhook-id 1 --delivery-id 1 --json
# Retry failed delivery
bunx @temps-sdk/cli webhooks deliveries retry --project-id 5 --webhook-id 1 --delivery-id 1
# Remove webhook
bunx @temps-sdk/cli webhooks remove --project-id 5 --webhook-id 1 -fkeys# List API keys
bunx @temps-sdk/cli apikeys list --json
# Create API key
bunx @temps-sdk/cli apikeys create -n "CI/CD Key" -r developer -e 90 -y
# Create with specific permissions
bunx @temps-sdk/cli apikeys create -n "Deploy Only" -r developer -p "deployments:create,deployments:read" -e 30 -y
# Show key details
bunx @temps-sdk/cli apikeys show --id 1 --json
# Activate/deactivate
bunx @temps-sdk/cli apikeys activate --id 1
bunx @temps-sdk/cli apikeys deactivate --id 1
# List available permissions
bunx @temps-sdk/cli apikeys permissions --json
# Remove
bunx @temps-sdk/cli apikeys remove --id 1 -fadmindeveloperviewerreadonly73090365token# List tokens
bunx @temps-sdk/cli tokens list -p my-app --json
# Create token
bunx @temps-sdk/cli tokens create -p my-app -n "Analytics Token" --permissions "analytics:read,events:write" -e 90 -y
# Show token
bunx @temps-sdk/cli tokens show -p my-app --id 1 --json
# Delete token
bunx @temps-sdk/cli tokens delete -p my-app --id 1 -f
# List available permissions
bunx @temps-sdk/cli tokens permissions --json*visitors:enrichemails:sendanalytics:readevents:writeerrors:read73090365never# List users
bunx @temps-sdk/cli users list --json
# Create user
bunx @temps-sdk/cli users create --email user@example.com --name "New User" --password "secure123" --role developer -y
# Show current user
bunx @temps-sdk/cli users me --json
# Change user role
bunx @temps-sdk/cli users role --id 2 --role admin
# Remove user (soft delete)
bunx @temps-sdk/cli users remove --id 2 -f
# Restore deleted user
bunx @temps-sdk/cli users restore --id 2# List DSNs
bunx @temps-sdk/cli dsn list --project-id 5 --json
# Create DSN
bunx @temps-sdk/cli dsn create --project-id 5 -n "Production DSN" --environment-id 1 -y
# Get or create DSN (idempotent)
bunx @temps-sdk/cli dsn get-or-create --project-id 5 --environment-id 1 --json
# Regenerate DSN key
bunx @temps-sdk/cli dsn regenerate --project-id 5 --dsn-id 1 -f
# Revoke DSN
bunx @temps-sdk/cli dsn revoke --project-id 5 --dsn-id 1 -ffunnel# List funnels
bunx @temps-sdk/cli funnels list --project-id 5 --json
# Create funnel
bunx @temps-sdk/cli funnels create --project-id 5 -n "Signup Funnel" \
-s '[{"event_name":"page_view","filters":{"path":"/signup"}},{"event_name":"form_submit"},{"event_name":"signup_complete"}]' -y
# Update funnel
bunx @temps-sdk/cli funnels update --project-id 5 --funnel-id 1 -n "Updated Funnel"
# View funnel metrics
bunx @temps-sdk/cli funnels metrics --project-id 5 --funnel-id 1 --json
# Preview metrics (without saving)
bunx @temps-sdk/cli funnels preview --project-id 5 \
-s '[{"event_name":"page_view"},{"event_name":"signup"}]' --json
# Remove funnel
bunx @temps-sdk/cli funnels remove --project-id 5 --funnel-id 1 -feprov# List email providers
bunx @temps-sdk/cli email-providers list --json
# Create SES provider
bunx @temps-sdk/cli email-providers create -n "AWS SES" -t ses --access-key-id AKIA... --secret-access-key secret --region us-east-1 -y
# Create Scaleway provider
bunx @temps-sdk/cli email-providers create -n "Scaleway" -t scaleway --api-key scw_abc --project-id proj123 --region fr-par -y
# Test provider
bunx @temps-sdk/cli email-providers test --id 1 --from noreply@example.com
# Remove
bunx @temps-sdk/cli email-providers remove --id 1 -fedom# List domains
bunx @temps-sdk/cli email-domains list --json
# Create email domain
bunx @temps-sdk/cli email-domains create -d example.com --provider-id 1 -y
# Show domain
bunx @temps-sdk/cli email-domains show --id 1 --json
# Get DNS records to configure
bunx @temps-sdk/cli email-domains dns-records --id 1 --json
# Auto-setup DNS records
bunx @temps-sdk/cli email-domains setup-dns --id 1 --dns-provider-id 2
# Verify domain
bunx @temps-sdk/cli email-domains verify --id 1
# Remove
bunx @temps-sdk/cli email-domains remove --id 1 -femail# List sent emails
bunx @temps-sdk/cli emails list --json
bunx @temps-sdk/cli emails list --page 1 --page-size 20 --status delivered
bunx @temps-sdk/cli emails list --domain-id 1 --project-id 5 --from-address noreply@example.com
# Send email
bunx @temps-sdk/cli emails send --to user@example.com --subject "Hello" --body "Welcome!" --from noreply@example.com -y
# Show email details
bunx @temps-sdk/cli emails show --id 1 --json
# Email statistics
bunx @temps-sdk/cli emails stats --json
# Validate email address
bunx @temps-sdk/cli emails validate --email user@example.com --jsonipa# List rules
bunx @temps-sdk/cli ip-access list --json
# Allow an IP
bunx @temps-sdk/cli ip-access create --ip 203.0.113.0/24 --action allow --description "Office network" -y
# Block an IP
bunx @temps-sdk/cli ip-access create --ip 198.51.100.5 --action deny --description "Suspicious traffic" -y
# Check if IP is blocked
bunx @temps-sdk/cli ip-access check --ip 198.51.100.5 --json
# Update rule
bunx @temps-sdk/cli ip-access update --id 1 --description "Updated description"
# Remove rule
bunx @temps-sdk/cli ip-access remove --id 1 -flb# List routes
bunx @temps-sdk/cli load-balancer list --json
# Create route
bunx @temps-sdk/cli load-balancer create -d app.example.com -t http://localhost:8080 -y
# Show route
bunx @temps-sdk/cli load-balancer show -d app.example.com --json
# Update route
bunx @temps-sdk/cli load-balancer update -d app.example.com -t http://localhost:9090
# Remove route
bunx @temps-sdk/cli load-balancer remove -d app.example.com -f# List audit logs
bunx @temps-sdk/cli audit list --limit 50 --json
# With pagination and filters
bunx @temps-sdk/cli audit list --limit 20 --offset 40
bunx @temps-sdk/cli audit list --operation-type PROJECT_CREATED --user-id 1
bunx @temps-sdk/cli audit list --from 2025-01-01T00:00:00Z --to 2025-01-31T23:59:59Z
# Show audit log entry
bunx @temps-sdk/cli audit show --id 1 --json Audit Logs (50)
┌────┬────────────────────┬───────────────────┬──────────────┬──────────────┬─────────────────────┐
│ ID │ Operation │ User │ IP │ Location │ Date │
├────┼────────────────────┼───────────────────┼──────────────┼──────────────┼─────────────────────┤
│ 42 │ PROJECT_CREATED │ david@example.com │ 203.0.113.1 │ Madrid, ES │ 2025-01-20 15:30:00 │
│ 41 │ DEPLOYMENT_STARTED │ david@example.com │ 203.0.113.1 │ Madrid, ES │ 2025-01-20 15:28:00 │
└────┴────────────────────┴───────────────────┴──────────────┴──────────────┴─────────────────────┘plogs# List proxy logs
bunx @temps-sdk/cli proxy-logs list --limit 20 --json
# With pagination and filters
bunx @temps-sdk/cli proxy-logs list --page 2 --limit 50
bunx @temps-sdk/cli proxy-logs list --project-id 5 --environment-id 1
bunx @temps-sdk/cli proxy-logs list --method POST --status-code 500
bunx @temps-sdk/cli proxy-logs list --host app.example.com --path /api/users
bunx @temps-sdk/cli proxy-logs list --start-date 2025-01-20T00:00:00Z --end-date 2025-01-21T00:00:00Z
bunx @temps-sdk/cli proxy-logs list --sort-by response_time_ms --sort-order desc
bunx @temps-sdk/cli proxy-logs list --is-bot --json
bunx @temps-sdk/cli proxy-logs list --has-error --json
# Show log details
bunx @temps-sdk/cli proxy-logs show --id 1 --json
# Get log by request ID
bunx @temps-sdk/cli proxy-logs by-request --request-id req_abc123 --json
# Request statistics
bunx @temps-sdk/cli proxy-logs stats --json
# Today's statistics
bunx @temps-sdk/cli proxy-logs today --jsonplat# Platform info (OS, architecture)
bunx @temps-sdk/cli platform info --json
# Access/networking info
bunx @temps-sdk/cli platform access --json
# Public IP
bunx @temps-sdk/cli platform public-ip
# Private IP
bunx @temps-sdk/cli platform private-ipplatform access --json{
"access_mode": "public",
"public_ip": "203.0.113.50",
"private_ip": "10.0.1.5",
"can_create_domains": true,
"domain_creation_error": null
}# Show platform settings
bunx @temps-sdk/cli settings show --json
# Update settings
bunx @temps-sdk/cli settings update --preview-domain example.com
# Set external URL
bunx @temps-sdk/cli settings set-external-url --url https://app.example.com
# Set preview domain
bunx @temps-sdk/cli settings set-preview-domain --domain preview.example.com# List build presets
bunx @temps-sdk/cli presets list --json
bunx @temps-sdk/cli presets list --type server
bunx @temps-sdk/cli presets list --type static
# Show preset details
bunx @temps-sdk/cli presets show nextjs --json
# List deployment templates
bunx @temps-sdk/cli templates list --json
bunx @temps-sdk/cli templates list --type server# List import sources
bunx @temps-sdk/cli imports sources --json
# Discover workloads
bunx @temps-sdk/cli imports discover -s docker --json
# Create import plan
bunx @temps-sdk/cli imports plan -s docker -w my-container
# Execute import
bunx @temps-sdk/cli imports execute -s docker -w my-container -y
# Check import status
bunx @temps-sdk/cli imports status --session-id sess_abc123 --jsonsourcesdiscoverplanexecutestatus# Generate markdown docs
bunx @temps-sdk/cli docs
# Generate MDX docs
bunx @temps-sdk/cli docs -f mdx
# Generate JSON docs
bunx @temps-sdk/cli docs -f json
# Write to file
bunx @temps-sdk/cli docs -f markdown -o docs/cli-reference.mdtemps.shcloudApiKey| Variable | Description |
|---|---|
| Override cloud API endpoint (default: |
| Cloud API token (highest priority) |
| Cloud API key |
# Login via device authorization flow (opens browser)
bunx @temps-sdk/cli cloud login
# Show current cloud account
bunx @temps-sdk/cli cloud whoami
# Logout from Temps Cloud
bunx @temps-sdk/cli cloud logoutcloud whoami Temps Cloud Account
────────────────────────
ID: 42
Name: David
Username: david
Email: david@example.com
Plan: probunx @temps-sdk/cli cloud vps list
bunx @temps-sdk/cli cloud vps list --json VPS Instances (2)
──────────────────────────────────────────────────────────────
ID │ Hostname │ Status │ IPv4 │ Type │ Price
─────────────┼─────────────────┼───────────┼───────────────┼───────┼────────
abc12def │ vps-abc12def │ ● active │ 49.12.100.50 │ cx22 │ €4.51/mo
xyz34ghi │ vps-xyz34ghi │ ● error │ pending │ cx32 │ €7.49/mo# Interactive wizard (image -> location -> server type)
bunx @temps-sdk/cli cloud vps create
# Non-interactive
bunx @temps-sdk/cli cloud vps create --image ubuntu-22.04 --location fsn1 --type cx22
bunx @temps-sdk/cli cloud vps create --image ubuntu-22.04 --location fsn1 --type cx22 --jsonbunx @temps-sdk/cli cloud vps show abc12def
bunx @temps-sdk/cli cloud vps show abc12def --json# With confirmation prompt
bunx @temps-sdk/cli cloud vps destroy abc12defbunx @temps-sdk/cli cloud vps retry abc12defbunx @temps-sdk/cli cloud vps credentials abc12def
bunx @temps-sdk/cli cloud vps credentials abc12def --jsonbunx @temps-sdk/cli cloud vps images
bunx @temps-sdk/cli cloud vps images --jsonbunx @temps-sdk/cli cloud vps locations
bunx @temps-sdk/cli cloud vps locations --jsonbunx @temps-sdk/cli cloud vps types
bunx @temps-sdk/cli cloud vps types --location fsn1
bunx @temps-sdk/cli cloud vps types --json Server Types for fsn1 (4)
─────────────────────────────────────────────────────────────────
ID │ Name │ vCPU │ Memory (GB) │ Disk (GB) │ Price │ Available
──────┼──────────────┼──────┼─────────────┼───────────┼───────────┼──────────
cx22 │ CX22 │ 2 │ 4 │ 40 │ €4.51/mo │ yes
cx32 │ CX32 │ 4 │ 8 │ 80 │ €7.49/mo │ yes
cx42 │ CX42 │ 8 │ 16 │ 160 │ €14.99/mo │ yes
cx52 │ CX52 │ 16 │ 32 │ 320 │ €29.99/mo │ no*.temps.devacme.shacme.sh*.temps.dev_acme-challenge.your-host.username.temps.devbunx @temps-sdk/cli cloud acme setacme.sh@temps-sdk/clibunx @temps-sdk/cli cloud acmetempstemps domain importbunx @temps-sdk/cli cloud logintemps.dev{server-name}.{username}.temps.devmyserver.david.temps.dev*.myserver.david.temps.dev.temps.devmyserver.david_acme-challenge# Set ACME challenge TXT record for a hostname
bunx @temps-sdk/cli cloud acme set --hostname myserver.david --token "token-value-from-acme" ACME Challenge Set
────────────────────────
Hostname: myserver.david.temps.dev
TXT Record: _acme-challenge.myserver.david.temps.dev
Status: ✓ Record createdbunx @temps-sdk/cli cloud acme status --hostname myserver.david
bunx @temps-sdk/cli cloud acme status --hostname myserver.david --json ACME Challenge Status
────────────────────────
Hostname: myserver.david.temps.dev
Propagated: ✓ Yes{
"hostname": "myserver.david",
"propagated": true
}bunx @temps-sdk/cli cloud acme clean --hostname myserver.david ACME challenge record removed for myserver.david.temps.dev# Set record and wait until DNS propagation is confirmed (polls every 5s, max 120s)
bunx @temps-sdk/cli cloud acme set --hostname myserver.david --token "token-value" --wait~/.acme.sh/dnsapi/dns_temps.sh#!/usr/bin/env bash
# Temps Cloud DNS hook for acme.sh
# Uses @temps-sdk/cli (temps cloud acme) to manage _acme-challenge TXT records
# for *.temps.dev subdomains.
#
# Prerequisites:
# - @temps-sdk/cli installed globally (npm install -g @temps-sdk/cli)
# or available via bunx/npx
# - Authenticated to Temps Cloud: temps cloud login
dns_temps_add() {
local fulldomain="$1"
local txtvalue="$2"
_info "Adding TXT record for $fulldomain"
# Extract hostname: _acme-challenge.server.user.temps.dev -> server.user
local hostname
hostname=$(echo "$fulldomain" | sed -E 's/^_acme-challenge\.(.+)\.temps\.dev$/\1/')
if [ "$hostname" = "$fulldomain" ]; then
_err "Could not extract hostname from $fulldomain"
return 1
fi
# Set TXT record and wait for DNS propagation
if ! bunx @temps-sdk/cli cloud acme set --hostname "$hostname" --token "$txtvalue" --wait; then
_err "Failed to set TXT record via temps CLI"
return 1
fi
_info "TXT record set and propagation confirmed"
return 0
}
dns_temps_rm() {
local fulldomain="$1"
_info "Removing TXT record for $fulldomain"
local hostname
hostname=$(echo "$fulldomain" | sed -E 's/^_acme-challenge\.(.+)\.temps\.dev$/\1/')
if [ "$hostname" = "$fulldomain" ]; then
_err "Could not extract hostname from $fulldomain"
return 1
fi
if ! bunx @temps-sdk/cli cloud acme clean --hostname "$hostname"; then
_err "Failed to remove TXT record via temps CLI"
return 1
fi
_info "TXT record removed"
return 0
}chmod +x ~/.acme.sh/dnsapi/dns_temps.shcurl https://get.acme.sh | sh -s email=your-email@example.com
source ~/.bashrc # or ~/.zshrc@temps-sdk/clibunx @temps-sdk/cli cloud login@temps-sdk/cli~/.temps/.secretsacme.sh --issue --dns dns_temps \
-d 'myserver.david.temps.dev' \
-d '*.myserver.david.temps.dev'dns_temps_add()bunx @temps-sdk/cli cloud acme set --wait~/.acme.sh/myserver.david.temps.dev/
├── ca.cer # CA certificate chain
├── fullchain.cer # Full chain (cert + CA)
├── myserver.david.temps.dev.cer # Domain certificate
└── myserver.david.temps.dev.key # Private keytemps domain import@temps-sdk/cli# Import the wildcard certificate
temps domain import \
-d '*.myserver.david.temps.dev' \
--certificate ~/.acme.sh/myserver.david.temps.dev/fullchain.cer \
--private-key ~/.acme.sh/myserver.david.temps.dev/myserver.david.temps.dev.key \
--database-url "$TEMPS_DATABASE_URL"
# Import the base domain certificate
temps domain import \
-d 'myserver.david.temps.dev' \
--certificate ~/.acme.sh/myserver.david.temps.dev/fullchain.cer \
--private-key ~/.acme.sh/myserver.david.temps.dev/myserver.david.temps.dev.key \
--database-url "$TEMPS_DATABASE_URL"Note:is a server-side command from the Temps Rust binary (temps domain import), not thetempspackage. It runs directly on the server where Temps is installed and requires@temps-sdk/cliaccess.--database-url
--forcetemps domain import \
-d '*.myserver.david.temps.dev' \
--certificate ~/.acme.sh/myserver.david.temps.dev/fullchain.cer \
--private-key ~/.acme.sh/myserver.david.temps.dev/myserver.david.temps.dev.key \
--database-url "$TEMPS_DATABASE_URL" \
--forcetemps domain list --database-url "$TEMPS_DATABASE_URL" DOMAIN STATUS TYPE EXPIRES
──────────────────────────────────────────────────────────────────────────────────────────
*.myserver.david.temps.dev active wildcard 2025-05-15
myserver.david.temps.dev active single 2025-05-15--tls-address--wait# Using Temps CLI
bunx @temps-sdk/cli cloud acme status --hostname myserver.david
# Using dig
dig TXT _acme-challenge.myserver.david.temps.dev @1.1.1.1acme.sh--install-cert--reloadcmdtemps domain importacme.sh --install-cert -d 'myserver.david.temps.dev' \
--reloadcmd 'temps domain import -d "*.myserver.david.temps.dev" \
--certificate ~/.acme.sh/myserver.david.temps.dev/fullchain.cer \
--private-key ~/.acme.sh/myserver.david.temps.dev/myserver.david.temps.dev.key \
--database-url "$TEMPS_DATABASE_URL" --force && \
temps domain import -d "myserver.david.temps.dev" \
--certificate ~/.acme.sh/myserver.david.temps.dev/fullchain.cer \
--private-key ~/.acme.sh/myserver.david.temps.dev/myserver.david.temps.dev.key \
--database-url "$TEMPS_DATABASE_URL" --force'Note: Theruns on the server where both--reloadcmdand the Temps binary are installed. Theacme.shhere refers to the server-side Rust binary, nottemps domain import.@temps-sdk/cli
acme.shcrontab -l | grep acmeacme.sh --renew -d 'myserver.david.temps.dev' --forcebunx @temps-sdk/cli cloud whoamibunx @temps-sdk/cli cloud login--waitbunx @temps-sdk/cli cloud acme status --hostname myserver.daviddig TXT _acme-challenge.myserver.david.temps.dev @1.1.1.1--stagingacme.sh --issue --staging --dns dns_temps -d '...'--staging~/.acme.sh/dnsapi/dns_temps.shchmod +x ~/.acme.sh/dnsapi/dns_temps.sh--dns dns_tempsdns_temps.sh-y/--yes# Full CI/CD pipeline
export TEMPS_TOKEN=tk_abc123
export TEMPS_API_URL=https://temps.example.com
bunx @temps-sdk/cli deploy my-app -b main -e production -y
bunx @temps-sdk/cli environments vars set -p my-app -e production -k VERSION -v "1.2.3"
bunx @temps-sdk/cli scans trigger --project-id 5 --environment-id 1--json# Get project ID from slug
bunx @temps-sdk/cli projects show -p my-app --json | jq '.id'
# List running services
bunx @temps-sdk/cli services list --json | jq '.[] | select(.status == "running")'
# Check deployment status
bunx @temps-sdk/cli deployments status -p my-app -d 42 --json | jq '.status'| Full Command | Short Alias |
|---|---|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
bunx @temps-sdk/cli cloud vpslistlscreateaddnewremovermshowget