The Deco CLI is your interface for managing AI-native projects built with decocms.com.
Official docs: https://docs.deco.page/
| Command | Description |
|---|---|
deco login |
Authenticate and store an API token for subsequent commands. |
deco logout |
Remove local credentials and end the session. |
deco whoami |
Show the currently authenticated user and workspace. |
| Command | Description |
|---|---|
deco create |
Scaffold a new deco project from an official template. |
deco configure |
Re-run setup for the current directory to change workspace or app settings. |
| Command | Description |
|---|---|
npm run dev |
Preferred way to run local Worker and React frontend in watch mode. |
deco dev |
(Experimental) Future unified development command. |
deco link [build-command] |
Link your local dev server to a public domain. Supports -p <port>. Example: deco link npm run dev. |
| Command | Description |
|---|---|
deco gen |
Generate types for external integrations (deco.gen.ts). |
deco gen:self |
Generate types for your own tools and workflows via local /mcp endpoint. |
| Command | Description |
|---|---|
npm run deploy |
Builds frontend and invokes deco deploy. Recommended for most use cases. |
deco deploy |
Bundle and deploy to Cloudflare Workers. Supports -w, -a, and -l. |
deco hosting list -w <name> |
List deployed apps in a specific workspace. |
| Command | Description |
|---|---|
deco add |
Add and configure workspace integrations. |
| Command | Description |
|---|---|
deco update |
Upgrade the CLI to the latest published version. |
| Command | Description |
|---|---|
deco --help |
Display the full list of CLI commands and usage. |
The CLI uses a local config file to store your workspace and app context. Set or
update this configuration anytime using: deco configure
| Variable | Purpose |
|---|---|
DECO_CHAT_API_TOKEN |
API token for authentication (set by deco login). |
DECO_CHAT_API_LOCAL |
Overrides API base URL for local development. |
DECO_SELF_URL |
Local MCP endpoint for deco gen:self to introspect workflows/tools. |
The deconfig commands allow you to interact with the deconfig filesystem - a git-like, versioned configuration manager built on Cloudflare Durable Objects.
Before using any deconfig commands, you must authenticate with deco.chat:
deco loginGet a file from a deconfig branch.
deco deconfig get <path> -b <branchName> [options]Options:
-b, --branch <branchName>(required) - Branch name-o, --output <file>- Output file (defaults to stdout)
Examples:
# Get file and output to stdout
deco deconfig get /config.json -b main
# Get file and save to local file
deco deconfig get /config.json -b main -o ./local-config.jsonPut a file to a deconfig branch.
deco deconfig put <path> -b <branchName> [options]Options:
-b, --branch <branchName>(required) - Branch name-f, --file <file>- Local file to upload-c, --content <content>- Content to upload directly-m, --metadata <metadata>- Metadata JSON string
Examples:
# Upload local file
deco deconfig put /config.json -b main -f ./local-config.json
# Upload content directly
deco deconfig put /message.txt -b main -c "Hello, World!"
# Upload with metadata
deco deconfig put /config.json -b main -f ./config.json -m '{"author":"user","version":"1.0"}'
# Upload from stdin
echo "Hello from stdin" | deco deconfig put /stdin.txt -b mainWatch a deconfig branch for changes in real-time.
deco deconfig watch -b <branchName> [options]Options:
-b, --branch <branchName>(required) - Branch name-p, --path <path>- Path filter for watching specific files--from-ctime <ctime>- Start watching from this ctime (default: 1)
Examples:
# Watch all changes on main branch
deco deconfig watch -b main
# Watch specific path pattern
deco deconfig watch -b main -p "/config/**"
# Watch from specific change time
deco deconfig watch -b main --from-ctime 1000Mount a deconfig branch to a local directory and sync changes bidirectionally.
deco deconfig mount -b <branchName> --path <localPath> [options]Options:
-b, --branch <branchName>(required) - Branch name to mount--path <path>(required) - Local directory path to sync files to--from-ctime <ctime>- Start watching from this ctime (default: 1)--path-filter <filter>- Filter files by path pattern
Examples:
# Mount branch "main" to ./local directory
deco deconfig mount -b main --path ./local
# Mount with specific ctime and path filter
deco deconfig mount -b feature-branch --path ./sync --from-ctime 1000 --path-filter "/src/**"- Authentication: Uses your deco.chat session (requires
deco login) - API Communication: All commands use MCP (Model Context Protocol) tools via HTTPS
- Real-time Updates: Watch and mount commands use Server-Sent Events (SSE)
- Content Handling: Files are transferred as base64-encoded content
- Path Filtering: Supports glob-like patterns for selective operations
- Base URL:
https://deconfig.deco.page - API Endpoints:
/mcp/call-tool/READ_FILE,/mcp/call-tool/PUT_FILE - Watch Endpoint:
/watch(Server-Sent Events) - Authentication: Bearer token in Authorization header
- Content Encoding: Base64 for binary safety
All commands will run until completion or interruption (Ctrl+C for watch/mount commands).