Skip to main content

General

Log in to Latitude.sh
lsh login
Opens your browser for browser-assisted authentication. To authenticate with an API key instead, pass it as an argument:
lsh login --with-token <API_KEY>
Update the CLI to latest version
lsh update
Generate a shell completion script
lsh completion <bash|zsh|fish|powershell>

Api Keys

Create an API Key
lsh api_keys create
Delete an API Key
lsh api_keys destroy
List API Keys
lsh api_keys list
Update an API Key
lsh api_keys update

Auth

Show the current authentication context
lsh auth status
Shows the active profile’s email, team and API key, plus every other stored profile. Pass --check to validate each stored token against the API. Log out
lsh auth logout
Removes the stored profile and, for browser logins, revokes the API key. Pass --profile <NAME> to log out a specific profile, or --all to log out every stored profile.

Events

List team audit events
lsh events list
Lists the team’s audit events, newest first, with automatic pagination. Filter the results with --author (ID or email), --project (ID or slug), --target-type (repeatable, e.g. servers, projects, virtual_networks), --target-id, and --action (e.g. servers.create). Use --since and --until to scope the time range. Both accept either a relative duration looking back from now (24h, 7d, 2w) or an ISO date (2026-06-01):
lsh events list --since 24h --target-type servers
lsh events list --author user@example.com --action servers.create
lsh events list --project my-project --since 2026-06-01
Pass --follow (or -f) to stream new events in real time instead of printing a one-time list. The command keeps polling and prints each new event as it happens until you stop it with Ctrl+C. Combine it with the usual filters to watch a single resource:
lsh events list --follow --target-id sv_xxxx
--follow streams plain text only: -o json, -o yaml, and -o csv are ignored with a warning, and --until is ignored because the stream has no end. Following starts from the current moment unless you pass --since to replay recent history before streaming.

IPs

List IP addresses of a project
lsh ips list --project <PROJECT_ID_OR_SLUG>
Pass --all-projects to list IPs across every project you have access to. Filter with --server, --family, --type and --location. Retrieve an IP address
lsh ips get <IP_ID>

Operating Systems

List operating systems available for deployment
lsh operating-systems list
os is available as an alias: lsh os list.

Plans

Retrieve information of a plan
lsh plans get
List available plans
lsh plans list
List bandwidth package plans
lsh plans list-bandwidth
Show per-location plan availability and stock level
lsh plans stock

Profiles

The CLI stores one profile per team you are logged into. The active profile defines the team your commands run against. List stored profiles
lsh profile list
Switch the active profile
lsh profile use <PROFILE_NAME_OR_TEAM_SLUG>
You can also set the profile for a single command with the global --profile flag or the LSH_PROFILE environment variable.

Projects

Create a project
lsh projects create
Delete a project
lsh projects destroy
Retrieve a project
lsh projects get
List projects
lsh projects list
Update a project
lsh projects update

Regions

List available regions
lsh regions list

Servers

Deploy a bare metal server
lsh servers create
Delete a server
lsh servers destroy
Get information on a server
lsh servers get
List servers
lsh servers list
Reinstall a server
lsh servers reinstall
Wait for a server to finish provisioning By default, servers create and servers reinstall return as soon as the request is accepted. Pass --wait to block until the server settles into a stable state (on or off) instead, which is useful in scripts and CI pipelines where the next step depends on the server being ready.
lsh servers create --project <PROJECT> --site <LOCATION> --plan <PLAN> --operating_system <OS> --hostname <HOSTNAME> --wait
The wait fails fast if the server enters a failed deployment state, and --timeout (default 10m) caps how long it waits — on timeout the command exits with a non-zero status. Progress is written to stderr while the final server state goes to stdout, so -o json, -o yaml, and -o csv are still honored.
lsh servers create ... --wait --timeout 30s
Schedule deletion
lsh servers schedule-deletion
Unschedule deletion
lsh servers unschedule-deletion
Update a server
lsh servers update

Ssh Keys

Create an SSH key
lsh ssh_keys create
Delete an SSH key
lsh ssh_keys destroy
Retrieve an SSH key
lsh ssh_keys get
List SSH keys
lsh ssh_keys list
Update an SSH key
lsh ssh_keys update

Tags

Create a Tag
lsh tags create
Delete Tag
lsh tags destroy
List all Tags
lsh tags list
Update Tag
lsh tags update
The lsh tags commands manage the tags themselves. To attach a tag to a resource, pass --tags to that resource’s own update command:
lsh servers update --id <SERVER_ID> --tags <TAG_ID>
lsh projects update --id <PROJECT_ID_OR_SLUG> --tags <TAG_ID>

Traffic

Show traffic consumption
lsh traffic list --project <PROJECT_ID_OR_SLUG>
Shows bandwidth consumption per region for a project, mirroring the dashboard: inbound and outbound totals, the quota, and how much of it has been used. Units follow the project’s billing method — TB for volume billing, Mbps for 95th-percentile billing. A project is required; in an interactive terminal you’re prompted to pick one when --project is omitted. The range defaults to the last 7 days. Override it with --since and --until, which accept a duration (24h, 7d, 2w) or an ISO date (2026-06-01). The range applies to consumption only — the quota column always reflects the current limit. Pass --daily for the day-by-day breakdown behind the dashboard chart.
lsh traffic list --project my-project --daily
lsh traffic list --project my-project --since 30d
lsh traffic list --project my-project --since 2026-05-01 --until 2026-06-01
Show traffic quota
lsh traffic quota
Shows the traffic quota of each project, per region. Pass --project to filter to a single project.

Teams

Team and member operations are interactive: when you omit an argument or required flag, the CLI prompts you for it in the terminal.
List your teams
lsh teams list
Create a team
lsh teams create --name <NAME> --currency <USD_OR_BRL>
Update a team
lsh teams update <TEAM_ID> --name <NAME>
List members of the current team
lsh teams members list
Invite a user to the current team
lsh teams members add --email <EMAIL> --role <ROLE>
Roles: owner, administrator, collaborator or billing. Remove a user from the current team
lsh teams members remove <USER_ID>

Virtual Networks

Creates a virtual network
lsh virtual_networks create
Delete a virtual network
lsh virtual_networks destroy
Retrieve a virtual network
lsh virtual_networks get
List virtual networks
lsh virtual_networks list
Update a virtual network
lsh virtual_networks update

Virtual Networks Assignments

Assign a server to a virtual network
lsh assignments virtual_networks create
Unassign a server from a virtual network
lsh assignments virtual_networks destroy
List assignments
lsh assignments virtual_networks list

Help

  • Use lsh -h to get a list of all available commands
  • To see how to use a command, use lsh <resource> -h
The CLI also ships built-in help topics with longer guides:
lsh authentication   # How to sign in: tokens, profiles, env vars
lsh profiles         # How profiles map to teams
lsh automation       # Run lsh non-interactively (CI, scripts, AI agents)
lsh output-formats   # Render results as table or JSON