Creating Projects from CLI

Create and configure DevOur projects directly from your terminal using the CLI.

Prerequisites

Create a Project

Interactive Mode

Run the create command without arguments to enter interactive mode:

devour create

You will be prompted to enter a project name.

Direct Creation

Provide the project name directly:

devour create "My Project"

Using a Config File

Create a project from a configuration file:

devour create --config devour.json

The CLI looks for devour.json, devour.yml, or devour.yaml in the current directory by default.

Configuration Files

Configuration files allow you to define project settings in advance and reuse them across environments.

JSON Format

Create a devour.json file:

{
  "name": "My Project",
  "stripePublicKey": "pk_test_...",
  "stripeSecretKey": "sk_test_...",
  "firebaseApiKey": "AIzaSy...",
  "firebaseAuthDomain": "my-project.firebaseapp.com",
  "firebaseProjectId": "my-project",
  "colorMain": "#3B82F6",
  "colorSecondary": "#10B981"
}

YAML Format

YAML format uses fewer characters than JSON, making it ideal for AI coding agents where token efficiency matters.

Create a devour.yml file:

name: My Project
stripePublicKey: pk_test_...
stripeSecretKey: sk_test_...
firebaseApiKey: AIzaSy...
firebaseAuthDomain: my-project.firebaseapp.com
firebaseProjectId: my-project
colorMain: '#3B82F6'
colorSecondary: '#10B981'

Configure Project Settings

Interactive Setup

Run the setup command to interactively configure settings:

devour setup

Select a project, then navigate through available settings to update them.

Setup with Project ID

Configure a specific project directly:

devour setup <projectId>

Setup from Config File

Apply settings from a configuration file:

devour setup --config devour.json

If the config file contains a project ID, it updates that project. Otherwise, it prompts you to select or create a project.

Update a Single Setting

Update one setting at a time using key-value pairs:

devour setup --key colorMain --value "#3B82F6"

Or be prompted for the value:

devour setup --key stripePublicKey

Available Settings

KeyDescriptionType
nameProject nametext
stripeSecretKeyStripe secret keytext
stripePublicKeyStripe public keytext
firebaseApiKeyFirebase API keytext
firebaseAuthDomainFirebase auth domaintext
firebaseProjectIdFirebase project IDtext
firebaseStorageBucketFirebase storage buckettext
firebaseMessagingSenderIdFirebase messaging sender IDtext
firebaseAppIdFirebase app IDtext
firebaseMeasurementIdFirebase measurement IDtext
colorAlertAlert color (hex)color
colorErrorError color (hex)color
colorSuccessSuccess color (hex)color
colorDarkDark color (hex)color
colorLightLight color (hex)color
colorMainMain theme color (hex)color
colorMainLightMain light color (hex)color
colorSecondarySecondary color (hex)color
versionProject version (semver)version
autoIncrementVersionAuto-increment on publishboolean

Sync Settings

Pull settings from the server to your local config file:

devour sync

Sync Options

devour sync --overwrite    # Overwrite local with remote settings
devour sync --local        # Keep local settings, fill missing from remote
devour sync --json         # Output as JSON format
devour sync --yaml         # Output as YAML format

Example Workflow

  1. Create a new project:
devour create "My E-Commerce App"
  1. Note the project ID from devour ls

  2. Configure Firebase settings:

devour setup --key firebaseApiKey
devour setup --key firebaseProjectId
devour setup --key firebaseAuthDomain
  1. Configure Stripe settings:
devour setup --key stripePublicKey
devour setup --key stripeSecretKey
  1. Customize theme colors:
devour setup --key colorMain --value "#6366F1"
devour setup --key colorSecondary --value "#EC4899"
  1. Sync to a local config file:
devour sync --yaml

Related Documentation