@aurorajs.dev/cli
v5.0.2
Published
A new CLI generated with oclif
Readme
aurora-cli2
A new CLI generated with oclif
- aurora-cli2
- Usage
- Commands
- Sheets (Google Sheets Sync)
- List configured bounded contexts
- Validate connection to a spreadsheet
- Push YAML schemas to Google Sheets
- Pull from Google Sheets to YAML files
- Show differences between YAML and Sheets
- Deploy
- Deploy all environments
- Deploy only dev
- Dry run — show what would be pushed without executing
- Custom config path
- Provision Setup
- Global passwords (used as fallback for all environments)
- Per-environment passwords (take priority over global)
- DEV_FTP_PASSWORD=dev-ftp-pass
- PROD_FTP_PASSWORD=prod-ftp-pass
- DEV_DB_PASSWORD=dev-db-pass
- PROD_DB_PASSWORD=prod-db-pass
- 1. Generate key (one time per machine)
- 2. Copy to server (will ask for root password)
- 3. Verify
- Provision all environments (passwords from .env)
- Provision only dev
- Provision only prod backend
- Provision only frontend (all environments)
- Skip DNS and CI/CD (applies to all plans)
- Pass passwords inline (overrides .env)
Usage
$ npm install -g @aurorajs.dev/cli
$ aurora COMMAND
running command...
$ aurora (--version)
@aurorajs.dev/cli/5.0.2 darwin-arm64 node-v24.14.0
$ aurora --help [COMMAND]
USAGE
$ aurora COMMAND
...Commands
aurora add SCOPEaurora ai setupaurora autocomplete [SHELL]aurora deployaurora env decryptaurora env encryptaurora help [COMMAND]aurora keysaurora load SCOPE ELEMENTaurora new NAMEaurora pipelineaurora pluginsaurora plugins add PLUGINaurora plugins:inspect PLUGIN...aurora plugins install PLUGINaurora plugins link PATHaurora plugins remove [PLUGIN]aurora plugins resetaurora plugins uninstall [PLUGIN]aurora plugins unlink [PLUGIN]aurora plugins updateaurora provisionaurora sheets diffaurora sheets listaurora sheets pullaurora sheets pushaurora sheets validate
aurora add SCOPE
Add an Aurora package to an existing project.
USAGE
$ aurora add SCOPE [-f] [-v]
ARGUMENTS
SCOPE (backend|frontend) Scope where the command will act.
FLAGS
-f, --force Overwrite existing files.
-v, --verbose Report all steps on screen.
DESCRIPTION
Add an Aurora package to an existing project.
EXAMPLES
$ aurora add back
$ aurora add front
$ aurora add back --forceSee code: src/commands/add/index.ts
aurora ai setup
Generate AI provider instruction files and skill symlinks from .ai/ source of truth.
USAGE
$ aurora ai setup [--all] [--dry-run] [-f] [-p claude|codex|copilot|gemini|opencode...] [-t <value>]
FLAGS
-f, --force Overwrite existing files without confirmation
-p, --provider=<option>... Provider(s) to configure (repeatable)
<options: claude|codex|copilot|gemini|opencode>
-t, --target=<value> Generate only for a specific target directory
--all Configure all available providers
--dry-run Show what would be generated without writing files
DESCRIPTION
Generate AI provider instruction files and skill symlinks from .ai/ source of truth.
EXAMPLES
$ aurora ai setup --all
$ aurora ai setup --provider claude
$ aurora ai setup --provider claude --provider opencode
$ aurora ai setup --provider claude --target backend
$ aurora ai setup --all --dry-run
$ aurora ai setup --all --forceSee code: src/commands/ai/setup.ts
aurora autocomplete [SHELL]
Display autocomplete installation instructions.
USAGE
$ aurora autocomplete [SHELL] [-r]
ARGUMENTS
[SHELL] (zsh|bash|powershell) Shell type
FLAGS
-r, --refresh-cache Refresh cache (ignores displaying instructions)
DESCRIPTION
Display autocomplete installation instructions.
EXAMPLES
$ aurora autocomplete
$ aurora autocomplete bash
$ aurora autocomplete zsh
$ aurora autocomplete powershell
$ aurora autocomplete --refresh-cacheSee code: @oclif/plugin-autocomplete
aurora deploy
Trigger deploy by pushing source branches to environments/{env}.
USAGE
$ aurora deploy [-c <value>] [--dry-run] [--env <value>]
FLAGS
-c, --config=<value> [default: ./aurora.yaml] Path to aurora.yaml config file
--dry-run Show what would be pushed without executing
--env=<value> Deploy only this environment (e.g. dev, qa, prod)
DESCRIPTION
Trigger deploy by pushing source branches to environments/{env}.
EXAMPLES
$ aurora deploy
$ aurora deploy --env dev
$ aurora deploy --dry-run
$ aurora deploy --env prod -c ../aurora.yamlSee code: src/commands/deploy/index.ts
aurora env decrypt
Decrypt .env.{env}.enc files using SOPS (age). Reads environments from aurora.yaml.
USAGE
$ aurora env decrypt [-c <value>] [--env <value>] [--key-file <value>]
FLAGS
-c, --config=<value> [default: ./aurora.yaml] Path to aurora.yaml config file
--env=<value> Decrypt only this environment (e.g. dev, qa, prod)
--key-file=<value> [default: .keys/age.txt, env: SOPS_AGE_KEY_FILE] Path to age key file
DESCRIPTION
Decrypt .env.{env}.enc files using SOPS (age). Reads environments from aurora.yaml.
EXAMPLES
$ aurora env decrypt
$ aurora env decrypt --env prod
$ aurora env decrypt --key-file .keys/custom.txtSee code: src/commands/env/decrypt.ts
aurora env encrypt
Encrypt .env.{env} files using SOPS (age). Reads environments from aurora.yaml.
USAGE
$ aurora env encrypt [-c <value>] [--env <value>] [--key-file <value>]
FLAGS
-c, --config=<value> [default: ./aurora.yaml] Path to aurora.yaml config file
--env=<value> Encrypt only this environment (e.g. dev, qa, prod)
--key-file=<value> [default: .keys/age.txt, env: SOPS_AGE_KEY_FILE] Path to age key file
DESCRIPTION
Encrypt .env.{env} files using SOPS (age). Reads environments from aurora.yaml.
EXAMPLES
$ aurora env encrypt
$ aurora env encrypt --env dev
$ aurora env encrypt --key-file .keys/custom.txtSee code: src/commands/env/encrypt.ts
aurora help [COMMAND]
Display help for aurora.
USAGE
$ aurora help [COMMAND...] [-n]
ARGUMENTS
[COMMAND...] Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for aurora.See code: @oclif/plugin-help
aurora keys
Generate RSA private key and public key
USAGE
$ aurora keys [-o <value>]
FLAGS
-o, --out=<value> Output directory for the key files
DESCRIPTION
Generate RSA private key and public key
EXAMPLES
$ aurora keys
$ aurora keys --out ./keysSee code: src/commands/keys/index.ts
aurora load SCOPE ELEMENT
Load a module from its YAML definition and generate code.
USAGE
$ aurora load SCOPE ELEMENT -n <value> [-f] [-g] [--noReview] [-w] [--target <value>] [-t] [-v]
ARGUMENTS
SCOPE (back|front) Scope where the command will act.
ELEMENT (module) Type of element to load.
FLAGS
-f, --force Overwrite existing files.
-g, --noGraphQLTypes Skip GraphQL type generation.
-n, --name=<value> (required) Bounded context and module (e.g. "iam/account").
-t, --tests Generate e2e test files.
-v, --verbose Report all steps on screen.
-w, --overwriteInterface Overwrite front-end interfaces.
--noReview Skip interactive origin file review.
--target=<value> Output subdirectory (default: "backend" for back, "frontend" for front).
DESCRIPTION
Load a module from its YAML definition and generate code.
EXAMPLES
$ aurora load back module --name=iam/account
$ aurora load front module --name=iam/account
$ aurora load back module --name=iam/account --tests --force
$ aurora load back module --name=iam/account --target=apiSee code: src/commands/load/index.ts
aurora new NAME
Create a new Aurora monorepo project.
USAGE
$ aurora new NAME [-f]
ARGUMENTS
NAME Name of the project to create.
FLAGS
-f, --force Overwrite existing directory.
DESCRIPTION
Create a new Aurora monorepo project.
EXAMPLES
$ aurora new my-project
$ aurora new my-project --forceSee code: src/commands/new/index.ts
aurora pipeline
Generate a deploy workflow from templates (interactive).
USAGE
$ aurora pipeline [-f]
FLAGS
-f, --force Overwrite existing workflow file
DESCRIPTION
Generate a deploy workflow from templates (interactive).
EXAMPLES
$ aurora pipeline
$ aurora pipeline --forceSee code: src/commands/pipeline/index.ts
aurora plugins
List installed plugins.
USAGE
$ aurora plugins [--json] [--core]
FLAGS
--core Show core plugins.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List installed plugins.
EXAMPLES
$ aurora pluginsSee code: @oclif/plugin-plugins
aurora plugins add PLUGIN
Installs a plugin into aurora.
USAGE
$ aurora plugins add PLUGIN... [--json] [-f] [-h] [-s | -v]
ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into aurora.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the AURORA_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the AURORA_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ aurora plugins add
EXAMPLES
Install a plugin from npm registry.
$ aurora plugins add myplugin
Install a plugin from a github url.
$ aurora plugins add https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ aurora plugins add someuser/somepluginaurora plugins:inspect PLUGIN...
Displays installation properties of a plugin.
USAGE
$ aurora plugins inspect PLUGIN...
ARGUMENTS
PLUGIN... [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ aurora plugins inspect mypluginSee code: @oclif/plugin-plugins
aurora plugins install PLUGIN
Installs a plugin into aurora.
USAGE
$ aurora plugins install PLUGIN... [--json] [-f] [-h] [-s | -v]
ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into aurora.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the AURORA_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the AURORA_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ aurora plugins add
EXAMPLES
Install a plugin from npm registry.
$ aurora plugins install myplugin
Install a plugin from a github url.
$ aurora plugins install https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ aurora plugins install someuser/somepluginSee code: @oclif/plugin-plugins
aurora plugins link PATH
Links a plugin into the CLI for development.
USAGE
$ aurora plugins link PATH [-h] [--install] [-v]
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
--[no-]install Install dependencies after linking the plugin.
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ aurora plugins link mypluginSee code: @oclif/plugin-plugins
aurora plugins remove [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ aurora plugins remove [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ aurora plugins unlink
$ aurora plugins remove
EXAMPLES
$ aurora plugins remove mypluginaurora plugins reset
Remove all user-installed and linked plugins.
USAGE
$ aurora plugins reset [--hard] [--reinstall]
FLAGS
--hard Delete node_modules and package manager related files in addition to uninstalling plugins.
--reinstall Reinstall all plugins after uninstalling.See code: @oclif/plugin-plugins
aurora plugins uninstall [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ aurora plugins uninstall [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ aurora plugins unlink
$ aurora plugins remove
EXAMPLES
$ aurora plugins uninstall mypluginSee code: @oclif/plugin-plugins
aurora plugins unlink [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ aurora plugins unlink [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ aurora plugins unlink
$ aurora plugins remove
EXAMPLES
$ aurora plugins unlink mypluginaurora plugins update
Update installed plugins.
USAGE
$ aurora plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.See code: @oclif/plugin-plugins
aurora provision
Provision Aurora project infrastructure (DNS + Hosting + CI/CD secrets).
USAGE
$ aurora provision [-c <value>] [--db-password <value>] [--env <value>] [--ftp-password <value>]
[--plesk-ssh-user <value>] [--skip-cicd] [--skip-dns] [--skip-hosting] [--skip-ssh] [--target back|front]
FLAGS
-c, --config=<value> [default: ./aurora.yaml] Path to aurora.yaml config file
--db-password=<value> [env: DB_PASSWORD] Global DB password (fallback). Per-env: DEV_DB_PASSWORD,
PROD_DB_PASSWORD, etc.
--env=<value> Provision only this environment (e.g. dev, qa, prod)
--ftp-password=<value> [env: FTP_PASSWORD] Global FTP password (fallback). Per-env: DEV_FTP_PASSWORD,
PROD_FTP_PASSWORD, etc.
--plesk-ssh-user=<value> [default: root, env: PLESK_SSH_USER] SSH user for Plesk server commands
--skip-cicd Skip CI/CD secrets/variables setup
--skip-dns Skip DNS record creation
--skip-hosting Skip Plesk hosting setup
--skip-ssh Skip SSH key generation and installation
--target=<option> Provision only this target (back or front)
<options: back|front>
DESCRIPTION
Provision Aurora project infrastructure (DNS + Hosting + CI/CD secrets).
EXAMPLES
$ aurora provision --ftp-password s3cret
$ aurora provision --env dev --target back
$ aurora provision --skip-dns --skip-cicd
FTP_PASSWORD=x aurora provision # global password for all envs
DEV_FTP_PASSWORD=x PROD_FTP_PASSWORD=y aurora provision # per-env passwordsSee code: src/commands/provision/index.ts
aurora sheets diff
Show differences between Aurora YAML schemas and Google Sheets.
USAGE
$ aurora sheets diff [--all | --bc <value>] [-c <value>] [--summary]
FLAGS
-c, --config=<value> [default: ./aurora.yaml] Path to aurora.yaml config file
--all Diff all bounded contexts
--bc=<value> Bounded context name
--summary Show only summary
DESCRIPTION
Show differences between Aurora YAML schemas and Google Sheets.
EXAMPLES
$ aurora sheets diff --bc iam
$ aurora sheets diff --all
$ aurora sheets diff --all --summarySee code: src/commands/sheets/diff.ts
aurora sheets list
List configured bounded contexts for Google Sheets sync.
USAGE
$ aurora sheets list [-c <value>]
FLAGS
-c, --config=<value> [default: ./aurora.yaml] Path to aurora.yaml config file
DESCRIPTION
List configured bounded contexts for Google Sheets sync.
EXAMPLES
$ aurora sheets listSee code: src/commands/sheets/list.ts
aurora sheets pull
Pull schemas from Google Sheets to Aurora YAML files.
USAGE
$ aurora sheets pull [--all | --bc <value>] [-c <value>] [--dry-run] [--no-backup] [-v]
FLAGS
-c, --config=<value> [default: ./aurora.yaml] Path to aurora.yaml config file
-v, --verbose Show detailed output
--all Pull all bounded contexts
--bc=<value> Bounded context name
--dry-run Preview without making changes
--no-backup Skip creating backup before pull
DESCRIPTION
Pull schemas from Google Sheets to Aurora YAML files.
EXAMPLES
$ aurora sheets pull --bc iam
$ aurora sheets pull --all
$ aurora sheets pull --all --no-backup
$ aurora sheets pull --bc iam --dry-runSee code: src/commands/sheets/pull.ts
aurora sheets push
Push Aurora YAML schemas to Google Sheets.
USAGE
$ aurora sheets push [--all | --bc <value>] [-c <value>] [--dry-run] [-v]
FLAGS
-c, --config=<value> [default: ./aurora.yaml] Path to aurora.yaml config file
-v, --verbose Show detailed output
--all Push all bounded contexts
--bc=<value> Bounded context name
--dry-run Preview without making changes
DESCRIPTION
Push Aurora YAML schemas to Google Sheets.
EXAMPLES
$ aurora sheets push
$ aurora sheets push --bc iam
$ aurora sheets push --all
$ aurora sheets push --bc iam --dry-runSee code: src/commands/sheets/push.ts
aurora sheets validate
Validate connection and format of a Google Sheet.
USAGE
$ aurora sheets validate [--bc <value>] [-c <value>]
FLAGS
-c, --config=<value> [default: ./aurora.yaml] Path to aurora.yaml config file
--bc=<value> Bounded context name
DESCRIPTION
Validate connection and format of a Google Sheet.
EXAMPLES
$ aurora sheets validate --bc iamSee code: src/commands/sheets/validate.ts
Sheets (Google Sheets Sync)
Bidirectional sync between Aurora YAML schemas and Google Sheets. Each bounded context maps to a spreadsheet where module schemas can be collaboratively edited.
Prerequisites
1. Google Service Account
Create a service account in Google Cloud Console with Google Sheets API enabled, then base64-encode the JSON key:
base64 -i service-account.jsonAdd it to your .env:
GOOGLE_SERVICE_ACCOUNT=eyJ0eXBlIjoic2VydmljZV9hY2NvdW50Ii...Share each spreadsheet with the service account email (with Editor access).
2. Config
Add a sheets section to aurora.yaml:
sheets:
bounded_contexts:
iam:
spreadsheet_id: 'YOUR_SPREADSHEET_ID'
description: 'Identity and Access Management'
common:
spreadsheet_id: 'YOUR_SPREADSHEET_ID'
description: 'Common module schemas'YAML schemas are expected in ./cliter/{bounded_context}/*.aurora.yaml.
Usage
# List configured bounded contexts
aurora sheets list
# Validate connection to a spreadsheet
aurora sheets validate --bc iam
# Push YAML schemas to Google Sheets
aurora sheets push --bc iam
aurora sheets push --all
aurora sheets push --all --dry-run
# Pull from Google Sheets to YAML files
aurora sheets pull --bc iam
aurora sheets pull --all
aurora sheets pull --all --no-backup
# Show differences between YAML and Sheets
aurora sheets diff --bc iam
aurora sheets diff --all --summaryWithout --bc or --all, commands prompt interactively for the bounded context.
Deploy
Trigger CI/CD pipelines by pushing source branches to environments/{env}. The GitHub Actions workflow is configured to run on push to environments/**.
Each environment in aurora.yaml has an optional source field (defaults to main) that specifies which branch to push:
environments:
dev:
source: main # pushes main → environments/dev
prod:
source: qa # promotes qa → environments/prodUsage
# Deploy all environments
aurora deploy
# Deploy only dev
aurora deploy --env dev
# Dry run — show what would be pushed without executing
aurora deploy --dry-run
# Custom config path
aurora deploy --env prod -c ../aurora.yamlInternally, the command runs git push origin {source}:environments/{env} for each resolved environment.
Provision Setup
Prerequisites
1. Environment variables
Create a .env file in your project root (next to aurora.yaml):
IONOS_API_KEY=prefix.secret
PLESK_API_KEY=your-plesk-api-key
PLESK_HOST=plesk.yourserver.com
PLESK_SSH_KEY=~/.ssh/plesk.yourserver.com
PLESK_SSH_USER=root
# Global passwords (used as fallback for all environments)
FTP_PASSWORD=your-ftp-password
DB_PASSWORD=your-db-password
# Per-environment passwords (take priority over global)
# DEV_FTP_PASSWORD=dev-ftp-pass
# PROD_FTP_PASSWORD=prod-ftp-pass
# DEV_DB_PASSWORD=dev-db-pass
# PROD_DB_PASSWORD=prod-db-pass2. SSH access to Plesk server
The deploy key installation on the Plesk server requires SSH access. If SSH is not available, the CLI will show a warning with the public key to install manually — it does not block the deployment.
To set up SSH access, generate a key named after the server and copy it:
# 1. Generate key (one time per machine)
ssh-keygen -t ed25519 -C "aurora-cli@PLESK_HOST" -f ~/.ssh/PLESK_HOST -N ""
# 2. Copy to server (will ask for root password)
ssh-copy-id -i ~/.ssh/PLESK_HOST.pub root@PLESK_HOST
# 3. Verify
ssh -i ~/.ssh/PLESK_HOST root@PLESK_HOST "echo OK"Replace PLESK_HOST with your actual server hostname (e.g., s14.beopen.cloud).
Then add the key path to your .env:
PLESK_SSH_KEY=~/.ssh/PLESK_HOST3. Project config
Copy aurora.example.yaml to aurora.yaml in your project and fill in your values.
Usage
# Provision all environments (passwords from .env)
aurora provision
# Provision only dev
aurora provision --env dev
# Provision only prod backend
aurora provision --env prod --target back
# Provision only frontend (all environments)
aurora provision --target front
# Skip DNS and CI/CD (applies to all plans)
aurora provision --skip-dns --skip-cicd
# Pass passwords inline (overrides .env)
aurora provision --ftp-password s3cret --db-password dbpassGitHub secrets and variables are prefixed with ENV_TARGET_ (e.g., DEV_BACK_SSH_PRIVATE_KEY, PROD_FRONT_SERVER_HOST).
