CLI Overview
Install, configure, and start using the Outpost CLI to manage repositories and infrastructure from your terminal.
The Outpost CLI (outpost) is a single command-line tool for managing repositories, machines, services, and jobs on the Outpost platform. It covers the full development lifecycle -- version control, GPU provisioning, model deployment, and job orchestration -- without leaving your terminal.
- Repository Commands -- Clone, commit, branch, push, pull, and merge -- Git-style version control built for large files and ML workflows.
- Compute Commands -- Create machines, deploy services, run jobs, and manage infrastructure with a single CLI.
Installation
macOS
Install via Homebrew or the install script:
Or use the quick install script:
Linux
Authentication
Create an account -- Sign up at outpost.run if you don't already have an account.
Configure the CLI -- Set the remote URL and your credentials using the config command:
Your user-level configuration is stored at ~/.config/outpost/user_config.toml.
- Add an SSH key (optional) -- If you prefer SSH authentication, generate a key and add it to your account:
Then paste the public key at outpost.run/settings/ssh .
Configuration
The CLI reads configuration from these locations:
| File | Purpose |
|---|---|
~/.config/outpost/user_config.toml | User credentials (email, name, api_token) and global preferences |
.outpost/config.toml (project root) | Repository-level settings including remote URL |
.outpostignore | Files and patterns to exclude from version tracking (like .gitignore) |
User config example
Repository config example
Environment variables
| Variable | Description |
|---|---|
OUTPOST_TOKEN | Personal access token for non-interactive authentication |
OUTPOST_HOST | Override the default API host (for enterprise deployments) |
Quick start
Command reference
Repository commands
| Command | Description |
|---|---|
outpost init | Initialize a new repository |
outpost clone | Clone a repository from a URL |
outpost add | Stage files for the next commit |
outpost commit | Record staged changes to history |
outpost status | Show working tree status |
outpost checkout | Switch or create branches |
outpost branch | List or manage branches |
outpost fetch | Fetch remote changes |
outpost pull | Fetch and merge remote changes |
outpost push | Upload commits to a remote branch |
outpost merge | Merge a branch into the current branch |
outpost log | View commit history |
outpost diff | Show file differences |
outpost restore | Restore files from a previous commit |
outpost remote | Manage remote repositories |
outpost rm | Remove files from tracking |
outpost ls | List repository contents |
outpost df | View and transform data frames |
Compute commands
| Command | Description |
|---|---|
outpost dev launch | Launch a new machine |
outpost dev list | List all machines |
outpost dev status | Get machine status |
outpost dev start | Start a stopped machine |
outpost dev stop | Stop a running machine |
outpost dev delete | Delete a machine |
outpost dev ssh | SSH into a machine |
outpost dev logs | View machine logs |
outpost dev exec | Execute a command on a machine |
outpost serve launch | Deploy a service |
outpost serve list | List all services |
outpost serve status | Get service status |
outpost serve scale | Scale service replicas |
outpost serve delete | Delete a service |
outpost jobs launch | Run a batch job |
outpost jobs list | List all jobs |
outpost jobs status | Get job status |
outpost jobs logs | View job logs |
outpost jobs cancel | Cancel a running job |
outpost jobs delete | Delete a job |
Getting help
Every command supports the --help flag:
For detailed documentation on each command group, see the Repository Commands and Compute Commands reference pages.