CLI¶
The HollowHost CLI lets you manage your AI Jobs, trigger runs, view logs, and configure secrets from your terminal.
Installation¶
macOS (recommended)¶
Linux ¶
Beta
Linux builds are provided as-is and have not been extensively tested. Please report any issues.
Verify the installation:
Authentication¶
Log in with your HollowHost account. This opens your browser for secure authentication via OAuth 2.0.
On headless environments (SSH, CI), use --no-browser to get a URL you can open manually:
To log out and remove stored credentials:
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¶
All commands support --output json for scripting:
Get AI Job details¶
Create an AI Job¶
| 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¶
| 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¶
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.
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:
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 |