Skip to content

CLI

The HollowHost CLI lets you manage your AI Jobs, trigger runs, view logs, and configure secrets from your terminal.

Installation

curl -L https://download.hollowhost.com/latest/hollowhost_darwin_arm64.tar.gz | tar xz
sudo mv hollowhost /usr/local/bin/
curl -L https://download.hollowhost.com/latest/hollowhost_darwin_amd64.tar.gz | tar xz
sudo mv hollowhost /usr/local/bin/

Linux

Beta

Linux builds are provided as-is and have not been extensively tested. Please report any issues.

curl -L https://download.hollowhost.com/latest/hollowhost_linux_amd64.tar.gz | tar xz
sudo mv hollowhost /usr/local/bin/
curl -L https://download.hollowhost.com/latest/hollowhost_linux_arm64.tar.gz | tar xz
sudo mv hollowhost /usr/local/bin/

Verify the installation:

hollowhost version

Authentication

Log in with your HollowHost account. This opens your browser for secure authentication via OAuth 2.0.

hollowhost login

On headless environments (SSH, CI), use --no-browser to get a URL you can open manually:

hollowhost login --no-browser

To log out and remove stored credentials:

hollowhost logout

Commands

AI Jobs

agents is still accepted

The command group is hollowhost ai-jobs. The legacy hollowhost agents is kept as an alias during the transition, so existing scripts keep working.

List AI Jobs

hollowhost ai-jobs list

All commands support --output json for scripting:

hollowhost ai-jobs list -o json

Get AI Job details

hollowhost ai-jobs get <ai-job-id>

Create an AI Job

hollowhost ai-jobs create \
  --repo owner/repo \
  --lang python \
  --pm uv \
  --token-type NONE
Flag Required Description
--repo Yes GitHub repository (owner/repo)
--lang Yes python or typescript
--pm Yes Package manager: pip, uv (Python) or npm (TypeScript)
--token-type No CUSTOM (default), DEFAULT, or NONE
--github-token If CUSTOM GitHub personal access token
--entry-point No Entry point file (e.g. src/main.py)
--branch No Git branch to deploy (default: repo default branch)
--sub-path No Sub-directory to deploy for mono-repos (default: repo root)
--project No Project ID to assign the AI Job to
--follow No Watch validation progress

When --sub-path is set, the AI Job is built from that sub-directory and --entry-point stays relative to the sub-path (write src/main.py, not apps/agent-meteo/src/main.py).

# Deploy the apps/agent-meteo sub-directory from the dev branch of a mono-repo
hollowhost ai-jobs create \
  --repo owner/mono-repo \
  --lang python \
  --pm uv \
  --branch dev \
  --sub-path apps/agent-meteo \
  --entry-point src/main.py

Deploy an AI Job

hollowhost ai-jobs deploy <ai-job-id>

# Watch the deployment in real time
hollowhost ai-jobs deploy <ai-job-id> --follow

Run an AI Job

hollowhost ai-jobs run <ai-job-id>

# Watch execution and display logs when done
hollowhost ai-jobs run <ai-job-id> --follow

Update an AI Job

hollowhost ai-jobs update <ai-job-id> \
  --name "My AI Job" \
  --memory-size 512 \
  --timeout 300
Flag Description
--name Display name (max 50 chars)
--description Description (max 200 chars)
--memory-size Memory: 256, 512, or 1024 MB
--timeout Timeout: 60-900 seconds
--persistent-storage Enable persistent storage
--token-type CUSTOM, DEFAULT, or NONE
--schedule Cron expression (5 fields, e.g. "0 9 * * *")
--schedule-timezone Timezone (e.g. Europe/Paris)
--enable-schedule / --disable-schedule Toggle schedule

Delete an AI Job

hollowhost ai-jobs delete <ai-job-id>

# Skip confirmation
hollowhost ai-jobs delete <ai-job-id> --yes

Duplicate an AI Job

hollowhost ai-jobs duplicate <ai-job-id>

Environment variables

Import variables from a .env file. An interactive picker lets you classify each variable as an environment variable or a secret. Sensitive names (containing KEY, SECRET, TOKEN, PASSWORD, etc.) are pre-classified as secrets.

hollowhost ai-jobs env import <ai-job-id> --file .env

Non-interactive mode for CI/scripts:

# Specify which variables are secrets
hollowhost ai-jobs env import <ai-job-id> --file .env --secrets "API_KEY,DB_PASSWORD"

# All as env vars
hollowhost ai-jobs env import <ai-job-id> --file .env --all-env

# All as secrets
hollowhost ai-jobs env import <ai-job-id> --file .env --all-secrets

Note

Values are never displayed in the terminal. Only variable names are shown.

Runs

# List runs for an AI Job
hollowhost runs list <ai-job-id>

# View logs for a specific run
hollowhost runs logs <ai-job-id> <run-id>

Projects

hollowhost projects list
hollowhost projects create --name "My Project"
hollowhost projects rename <project-id> --name "New Name"
hollowhost projects delete <project-id> --yes

Storage

# View storage info
hollowhost storage info <ai-job-id>

# List files
hollowhost storage files <ai-job-id>

# Delete a file
hollowhost storage delete-file <ai-job-id> path/to/file.json

# Clear all files
hollowhost storage clear <ai-job-id> --yes

Shell completion

Enable autocompletion for your shell:

Add to your ~/.zshrc:

source <(hollowhost completion zsh)

Add to your ~/.bashrc:

source <(hollowhost completion bash)
hollowhost completion fish | source

Restart your shell or run source ~/.zshrc (or equivalent) for changes to take effect.

Global flags

Flag Description
-o, --output Output format: text (default) or json
-h, --help Show help for any command