CLI Reference
Complete reference for all DevOur CLI commands.
For installation and initial setup, see the CLI Setup guide.
Authentication Commands
setup-key
Configure your DevOur API key for authentication.
devour setup-key
The CLI prompts for your API key and stores it securely in your system's user configuration directory. API keys must be 64 characters long.
logout
Remove the stored API key from your system.
devour logout
Project Commands
ls
List all projects associated with your account.
devour ls
Displays project IDs and names sorted by creation date.
create
Create a new DevOur project.
devour create [name...]
Arguments:
| Argument | Description |
|---|---|
| name | Project name (supports spaces) |
Options:
| Option | Description |
|---|---|
| --config <path> | Path to configuration file (defaults to devour.json, devour.yml, devour.yaml) |
| --name <name> | Project name |
Examples:
devour create
devour create "My Project"
devour create --config devour.json
devour create --name "My Project"
setup
Configure project settings interactively or from a configuration file.
devour setup [projectId]
Arguments:
| Argument | Description |
|---|---|
| projectId | Target project ID (optional) |
Options:
| Option | Description |
|---|---|
| --config <path> | Path to configuration file (defaults to devour.json, devour.yml, devour.yaml) |
| --ignore-config | Ignore existing config file in current directory |
| --key <key> | Specific setting key to update |
| --value <value> | New value for the setting |
Examples:
devour setup
devour setup 123
devour setup --config devour.json
devour setup --key colorMain --value "#3B82F6"
devour setup --ignore-config
sync
Pull project settings from the server to a local configuration file.
devour sync
Options:
| Option | Description |
|---|---|
| --config <path> | Path to configuration file |
| --overwrite | Overwrite local settings with remote settings |
| --new | Replace all local settings with remote |
| --local | Keep local settings, fill missing from remote |
| --json | Output as JSON format |
| --yaml | Output as YAML format |
Examples:
devour sync
devour sync --overwrite
devour sync --local
devour sync --yaml
devour sync --config custom-config.json
Version Commands
version
Create a new version for a project. Versions are required before downloading project bundles.
devour version [projectId]
Arguments:
| Argument | Description |
|---|---|
| projectId | Target project ID (optional) |
Options:
| Option | Description |
|---|---|
| -v, --version <v> | Specific version to create (defaults to auto-increment patch version) |
| --config <path> | Path to configuration file (defaults to devour.json, devour.yml, devour.yaml) |
Version Format:
Versions follow semantic versioning (semver): MAJOR.MINOR.PATCH
- If no version is specified, the patch version auto-increments
- Example:
1.0.0becomes1.0.1
Examples:
devour version
devour version 123
devour version --version 2.0.0
devour version --config devour.json
Bundle Commands
fetch
Download a project bundle to the current directory.
devour fetch [projectId]
Arguments:
| Argument | Description |
|---|---|
| projectId | Target project ID (optional) |
Options:
| Option | Description |
|---|---|
| -v, --version <v> | Specific version to fetch (defaults to latest version) |
| --config <path> | Path to configuration file (defaults to devour.json, devour.yml, devour.yaml) |
Behavior:
- Extracts files to the current directory
- Warns if the directory is not empty
- Warns if there are uncommitted changes since the latest version
- Prompts for confirmation before proceeding
Examples:
devour fetch
devour fetch 123
devour fetch --version 1.0.0
devour fetch --config devour.json
After Downloading:
docker compose up -d --force-recreate --build
Configuration Files
The CLI supports JSON and YAML configuration files. By default, it searches for:
devour.jsondevour.ymldevour.yaml
JSON Example
{
"id": 123,
"name": "My Project",
"stripePublicKey": "pk_test_...",
"stripeSecretKey": "sk_test_...",
"firebaseApiKey": "AIzaSy...",
"firebaseAuthDomain": "project.firebaseapp.com",
"firebaseProjectId": "project-id",
"colorMain": "#3B82F6",
"colorSecondary": "#10B981"
}
YAML Example
id: 123
name: My Project
stripePublicKey: pk_test_...
stripeSecretKey: sk_test_...
firebaseApiKey: AIzaSy...
firebaseAuthDomain: project.firebaseapp.com
firebaseProjectId: project-id
colorMain: '#3B82F6'
colorSecondary: '#10B981'
Available Settings
| Key | Description | Type |
|---|---|---|
| name | Project name | text |
| stripeSecretKey | Stripe secret key | text |
| stripePublicKey | Stripe public key | text |
| firebaseApiKey | Firebase API key | text |
| firebaseAuthDomain | Firebase auth domain | text |
| firebaseProjectId | Firebase project ID | text |
| firebaseStorageBucket | Firebase storage bucket | text |
| firebaseMessagingSenderId | Firebase messaging sender ID | text |
| firebaseAppId | Firebase app ID | text |
| firebaseMeasurementId | Firebase measurement ID | text |
| colorAlert | Alert color (hex) | color |
| colorError | Error color (hex) | color |
| colorSuccess | Success color (hex) | color |
| colorDark | Dark color (hex) | color |
| colorLight | Light color (hex) | color |
| colorMain | Main theme color (hex) | color |
| colorMainLight | Main light color (hex) | color |
| colorSecondary | Secondary color (hex) | color |
| version | Project version (semver) | version |
| autoIncrementVersion | Auto-increment on publish | boolean |
Global Options
All commands support the --help flag:
devour --help
devour <command> --help
Exit Codes
| Code | Description |
|---|---|
| 0 | Success |
| 1 | Authentication required or invalid API key |