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
- Create an organization:
gpu org create "My Team"This generates a slug (e.g., my-team) used in all subsequent commands.
- Switch to the org context:
gpu org switch my-teamAll gpu run commands now execute under this org's billing and session pool.
- Invite team members:
gpu org invite alice@example.com --role admin
gpu org invite bob@example.comMembers receive an invitation and can start running workloads immediately after accepting.
- Run workloads as usual:
gpu run python train.pyRequires 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-teamSub-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.pyWhen 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_abc123Security 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
| Tier | Concurrent Sessions | Orgs | Sub-Accounts | Service Accounts |
|---|---|---|---|---|
| Free | 1 | — | — | — |
| Pro | 3 | — | — | — |
| Team | 10 (pooled) | Yes | — | Yes |
| Business | 25 (pooled) | Yes | Yes | Yes |
| Enterprise | 50+ (custom) | Yes | Yes | Yes |
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.comRequirements:
- 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.pyTo set this up:
- Create a service account:
gpu org service-account create --name "github-actions" - Copy the
gpt_sat_*token - Add it as a repository secret named
GPU_SERVICE_TOKENin GitHub Settings > Secrets - Push to
main— the workflow runs your training script on a cloud GPU