The Deloc CLI ships every capability of the platform: deploy, manage apps, configure Actions, store OAuth credentials, and mint API tokens. One binary, one token, no surprises.
Install
Install globally, or invoke on-demand with npx. Requires Node 18 or newer; no other system dependencies.
shell
# Global install (recommended for daily use)
npm i -g @deloc/cli
# Or invoke without installing
npx @deloc/cli deploy
Config location
Authenticated state lives in ~/.deloc/config.json (mode 0o600, readable only by you). Remove the file to fully reset. Override with DELOC_TOKEN (token) and DELOC_API_URL (API base) environment variables.
On Windows
Install Node 18+ from nodejs.org and open PowerShell, Windows Terminal, or cmd. The commands above work as-is. If PowerShell blocks npx with a script-execution error, run this once per user: Set-ExecutionPolicy -Scope CurrentUser RemoteSigned. The config path is %USERPROFILE%\.deloc\config.json. Behind a corporate TLS-inspecting proxy, set HTTPS_PROXY and point NODE_EXTRA_CA_CERTS at your org's CA bundle before running npx.
Authentication
deloc login opens a browser for a Google or Microsoft OAuth sign-in (PKCE flow, tokens never leave your machine). The CLI spins up a localhost callback, receives the token, and stores it.
shell
deloc login # Browser picker
deloc login --provider google # Skip picker
deloc login --email # Email/password
deloc login --org my-company # Sign into a specific org
deloc logout # Clear credentials
deloc whoami # Who am I + tier + usage
deloc register # Create an account
deploy
Build and deploy the current project, or a specified directory. Auto-detects your framework, runs the build if needed, zips the output, uploads, and prints a URL.
shell
deloc deploy # Current directory
deloc deploy ./dist # Specific folder
deloc deploy --name "Q3 Revenue Dashboard" # Set a name
deloc deploy --no-build # Skip the build
deloc deploy --password # Auto-generate password
deloc deploy --password "secret123" # Set a password
deloc deploy --public # Remove password on re-deploy
deloc deploy --domain-restrict company.com # Restrict viewers by email domain
Flags
--name <name>App name. Same name = update in place. Defaults to folder/package name.
--dir <dir>Path to a build output containing index.html.
--no-buildSkip the build step and upload what's already there.
--password [value]Password-protect the app. Omit value to auto-generate.
--publicMake public and strip any existing password.
--domain-restrict <csv>Restrict viewers to one or more email domains. Pro Unlimited and above.
Deeper dive
Deploy has more nuance than a single flag list — framework auto-detection, OG images, zip rules, size limits. See Deploying.
Managing apps
list
shell
deloc list # First 25 active apps
deloc list --status disabled # Only disabled apps
deloc list --status expired # Apps past their 30-day window
deloc list --status all # Every app regardless of status
deloc list --all # Page through everything
status, open
shell
deloc status my-dashboard # URL, status, size, bandwidth, expiry
deloc open my-dashboard # Open in your default browser
disable, enable, delete
shell
deloc disable my-dashboard # Take offline (keeps files)
deloc enable my-dashboard # Bring back online
deloc delete my-dashboard # Permanent — confirms first
renew (free tier)
Free-tier apps auto-expire 30 days after their last deploy. Renew resets the clock. Paid plans never expire.
shell
deloc renew my-dashboard
password
shell
deloc password my-dashboard # Set or change
deloc password my-dashboard --remove # Make public
Customization
og — link preview image
Sets a custom OG image for link unfurls (Slack, Twitter, iMessage). PNG, max 2MB. Recommended size: 1200×630.
shell
deloc og my-dashboard ./preview.png
upload-data — refresh data files
Replaces or adds static data files on a deployed app without re-deploying the HTML. Your app fetches the file via fetch('./filename.json'). Supported: CSV, JSON, TSV, XML, TXT. Max 10MB per file.
To refresh data from BigQuery / Snowflake / Postgres on a schedule, use the setup_data_refresh MCP tool (or hand-roll a cron job). See Data & refresh.
Actions
Actions are server-side HTTP endpoints your deployed app can call without leaking secrets. Each action is a templated request with rate limits, audit logs, and optional OAuth credentials.
Store OAuth credentials once at the account level, then attach them to any action with --credential <name>. The platform mints a fresh access token on each invocation and injects it into your templates as $${OAUTH_ACCESS_TOKEN}.
shell
deloc credentials list
deloc credentials test salesforce-prod
deloc credentials delete salesforce-prod
Tokens authenticate the CLI and MCP server. They carry your user or org identity and can be named per machine or per CI pipeline.
shell
deloc tokens list # See active tokens
deloc tokens create "GitHub Actions CI" # Mint a new one (prints once)
deloc tokens revoke tok_abc123 # Revoke by ID
Tokens are shown once
When you run tokens create, the token is printed to stdout once. Store it immediately in a password manager or CI secret — the server only retains a hash.
Account & billing
shell
deloc whoami # Email, username, tier, usage, limits
deloc upgrade # Open Stripe checkout (pro / pro_unlimited / team)
deloc upgrade pro_unlimited # Jump straight to a plan
deloc billing # Manage your subscription
Installing the MCP server
If you use an AI coding tool, install-mcp auto-detects Claude Code, Cursor, Windsurf, and Codex and adds the Deloc MCP server to each.
shell
deloc install-mcp
For manual setup or the config format, see MCP server.
Environment variables
DELOC_TOKEN — API token. Overrides ~/.deloc/config.json. Best for CI.
DELOC_API_URL — API base URL. Defaults to https://api.deloc.dev. Useful for self-hosted or staging environments.