Skip to main content

Overview

Splash CLI is a command-line interface for administrators to manage your Poolside deployment. You can use it to:
  • Authenticate with the Poolside API
  • Manage models (create, list, edit, scale, delete)
  • Configure teams and permissions
  • Bootstrap new deployments
  • Manage platform configurations

Installation

You can download the Splash CLI from the Poolside team. To install:
# Extract the downloaded archive
tar -xzf splash-<platform>.tar.gz

# Make the binary executable
chmod +x splash

# Move to a directory in your PATH
sudo mv splash /usr/local/bin/      # Linux/macOS
# or
sudo mv splash /opt/homebrew/bin/   # macOS with Homebrew
Verify the installation:
splash version
# Should display something like: splash/v0.x.xx

Authentication

Splash CLI authenticates through your organization’s identity provider (IdP). Running splash login opens a browser window to complete authentication and stores the resulting token in your local configuration.
# Log in to the Poolside API
splash login

# Specify API endpoint during login
splash login --api https://your-api-endpoint.com

# Force re-login to a different API endpoint
splash login --reset

Configuration

Manage your Splash CLI configuration:
# Show config file location
splash config

# Edit the configuration file
splash config edit

# Print your current token
splash config print-token

# Print VS Code extension login link
splash config print-vscode-login
A typical configuration contains:
apiBaseURL: https://api.yourdomain.com
accessToken: ps-TOKEN

Model management

Models are the core of the Poolside platform. Splash CLI provides commands for managing models.

List models

# List all available models
splash models list

# List with format option
splash models list --output yaml|json|text

# List with optional filter
splash models list <FILTER>

Get model details

# Get detailed information about a specific model
splash models get <MODEL_NAME>

# Get in specific format
splash models get <MODEL_NAME> --output yaml|json|text

Create models

# Basic syntax
splash models create <MODEL_NAME> [flags]

Important model creation flags

FlagDescriptionDefault
--capabilitiesModel capabilities (line_numbers, empty_system_prompt, multi_turn)None
--checkpointS3 path to model checkpointRequired
--lora-checkpointS3 path to LoRA checkpointNone
--context-lengthMaximum context length8192
--defaultSet as default model for tenant per typefalse
--descriptionModel descriptionNone
--gpusNumber of GPUs required2
--max-tokensMaximum tokens to generate8192
--min-pMinimum probability for sampling0.10
--modeModel mode (kubernetes, static)kubernetes
--publicMake model available across tenantsfalse
--replicasNumber of model replicas1
--temperatureSampling temperature0.40
--top-pTop-p sampling parameter0.90
--typeModel type (chat, oss, completion)chat
--urlURL for static modelNone

Example: Chat model (Malibu)

splash models create malibu_model \
  --replicas 1 \
  --checkpoint s3://your-bucket/checkpoint-path/ \
  --capabilities line_numbers,empty_system_prompt \
  --default \
  --public \
  --gpus 4 \
  --description 'malibu chat model'

Example: Completion model (Point)

splash models create point_model \
  --type completion \
  --checkpoint s3://your-bucket/checkpoint-path/ \
  --public \
  --gpus 1 \
  --replicas 4

Edit models

# Edit model parameters
splash models edit <MODEL_NAME>
This opens an editor with the model YAML configuration, where you can modify:
  • Replicas count
  • Model description
  • Queue length (via extra_env settings)
  • Resource allocations

Manage prompt templates

# Access prompt template management
splash models prompt-template

# Edit model prompt template
splash models prompt-template edit <MODEL_NAME>

# Use default prompt template
splash models prompt-template edit <MODEL_NAME> --use-default

Scale models

# Scale a model to N replicas
splash models scale <MODEL_NAME> --replicas <N>

Clone models

# Clone an existing model with a new name
splash models clone <EXISTING_MODEL> <NEW_MODEL>

Delete models

# Delete a model
splash models delete <MODEL_NAME>

Team management

Teams control access to Poolside features and models.

List teams

# List all teams
splash teams list

Create teams

Create teams using CEL (Common Expression Language) conditions to specify membership:
# Create a team with specific users
splash teams create <TEAM_NAME> --condition="email=='user1@example.com' || email=='user2@example.com'"

# Create a team with email pattern matching
splash teams create <TEAM_NAME> --condition="email.startsWith('department')"

# Create a catch-all team (all users)
splash teams create <TEAM_NAME> --condition="true"

# Create an admin team
splash teams create <TEAM_NAME> --condition="email=='admin@example.com'" --policy="is_admin: true"

Edit teams

# Edit team condition to update membership
splash teams edit <TEAM_NAME> --condition="email=='user1@example.com' || email=='user3@example.com'"

Delete teams

# Delete a team
splash teams delete <TEAM_NAME>

Bootstrap configuration

The first step is setting up a tenant:
# Bootstrap a new tenant
splash bootstrap --config <CONFIG_FILE>
The configuration file should contain:
baseURL: <API_URL>
tenantName: <TENANT_NAME>
oidc:
  providerURL: <OIDC_PROVIDER_URL>
  clientID: <OIDC_CLIENT_ID>
  clientSecret: <OIDC_CLIENT_SECRET>
The first user to log in becomes the tenant administrator.

Shell completion

Splash supports shell completion for easier command-line use:
# For bash
splash completion bash > ~/.bash_completion.d/splash

# For zsh
splash completion zsh > ~/.zsh/completion/_splash

# For fish
splash completion fish > ~/.config/fish/completions/splash.fish

# For PowerShell
splash completion powershell > splash.ps1

Common workflows

Manage model queue length

To adjust the maximum pending requests for a model:
splash models edit <MODEL_NAME>
Then add or modify the extra_env section:
extra_env:
  VLLM_MAX_PENDING_REQUESTS: "80"

Add administrators

  1. Identify the administrator team (usually named admin).
  2. Edit the team to include new administrators:
    splash teams edit admin --condition="email=='existing@example.com' || email=='new@example.com'"
    

Troubleshooting

If you encounter authentication problems:
# Force re-authentication
splash login --reset

# Check your current configuration
splash config edit

# Print your current token
splash config print-token