GPU CLI

Organizations & Teams

Set up team billing, sub-accounts, and CI/CD service tokens

Organizations & Teams

Organizations let teams share GPU CLI under unified billing with pooled session limits. An org owner manages members, controls access, and tracks usage from a single account.

Organizations are available on Team and Enterprise plans.

Concepts

  • Organization — A named entity with a unique slug, a list of members, and its own billing. All GPU usage by members counts toward the org's pooled session limit.
  • Active org context — The CLI targets one org at a time. Switch context with gpu org switch <SLUG>. When no org is active, commands run under your personal account.
  • Sub-accounts — Child organizations created with --parent. The parent org's billing covers all sub-account usage. Useful for agencies or enterprises managing multiple teams.
  • Roles — Each member has a role:
    • OWNER — Full control (billing, membership, transfers, deletion)
    • ADMIN — Manage members and service accounts
    • MEMBER — Run GPU workloads under the org's billing

Getting Started

  1. Create an organization:
gpu org create "My Team"

This generates a slug (e.g., my-team) used in all subsequent commands.

  1. Switch to the org context:
gpu org switch my-team

All gpu run commands now execute under this org's billing and session pool.

  1. Invite team members:
gpu org invite alice@example.com --role admin
gpu org invite bob@example.com

Members receive an invitation and can start running workloads immediately after accepting.

  1. Run workloads as usual:
gpu run python train.py

Requires a Team or Enterprise plan. Free and Pro accounts cannot create organizations.

Sub-Accounts

Sub-accounts are child organizations whose usage rolls up to a parent org's billing. This is useful for:

  • Agencies managing GPU workloads for multiple clients
  • Enterprises with separate departments or project teams
  • Research labs isolating usage per experiment group

Create a sub-account:

gpu org create "Client Project" --parent my-team

Sub-account members see only their own org. The parent org owner sees aggregated usage and billing across all sub-accounts.

Sub-accounts are a Business and Enterprise tier feature.

Service Accounts for CI/CD

Service accounts let you run GPU workloads from CI/CD pipelines without personal credentials. Each service account gets a token that authenticates non-interactively.

Create a service account

gpu org service-account create --name "github-actions"

This prints a token with the prefix gpt_sat_*. The token is shown only once — copy it immediately and store it as a CI secret.

Use in CI/CD

Set the token as an environment variable:

export GPU_SERVICE_TOKEN=gpt_sat_xxxxxxxxxxxx
gpu run python train.py

When GPU_SERVICE_TOKEN is set, the CLI authenticates as the service account instead of prompting for browser login.

Manage service accounts

# List all service accounts
gpu org service-account list

# Revoke a service account
gpu org service-account revoke sa_abc123

Security notes

  • Tokens are shown once at creation — store them in your CI system's secret manager
  • Revoked tokens stop working immediately
  • Each service account has its own identity in audit logs
  • Use separate service accounts per pipeline for granular revocation

Service accounts are available on Team and Enterprise plans.

Billing Tiers

TierConcurrent SessionsOrgsSub-AccountsService Accounts
Free1
Pro3
Team10 (pooled)YesYes
Business25 (pooled)YesYesYes
Enterprise50+ (custom)YesYesYes

Session limits are pooled across all org members. For example, a Team plan with 10 sessions means the entire org can run up to 10 concurrent GPU sessions.

Transferring Ownership

Transfer org ownership to another member:

gpu org transfer my-team --to alice@example.com

Requirements:

  • You must be the current OWNER
  • The recipient must already be a member of the org
  • Ownership transfer is immediate — the previous owner becomes an ADMIN

Example: GitHub Actions

A complete CI/CD setup using a service account token:

name: Train on GPU
on:
  push:
    branches: [main]

jobs:
  train:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install GPU CLI
        run: curl -fsSL https://gpu-cli.sh/install.sh | sh

      - name: Run training
        env:
          GPU_SERVICE_TOKEN: ${{ secrets.GPU_SERVICE_TOKEN }}
        run: gpu run python train.py

To set this up:

  1. Create a service account: gpu org service-account create --name "github-actions"
  2. Copy the gpt_sat_* token
  3. Add it as a repository secret named GPU_SERVICE_TOKEN in GitHub Settings > Secrets
  4. Push to main — the workflow runs your training script on a cloud GPU

On this page