Rooms

Settings
Sign out

Your Rooms (0)

Loading rooms...

Your Tokens (0)

Loading tokens...

5-Minute Setup

Get remote training running in 5 steps

1 Create Room
2 Generate Secret
3 Create Token
4 Start Worker
5 Submit Job
1

Create a Room

Your workspace for remote training

A Room is where workers and clients collaborate. Create one from this dashboard or via CLI.

Dashboard

Click Rooms in the sidebar, then click Create Room.

CLI

Create a room with a name using the command line.

sleap-rtc room create --name "My Lab"
Tip: Rooms expire after 30 days by default. Use --expires never for permanent rooms.
2

Generate Room Secret Optional

Extra security for P2P connections

Room secrets add authentication to WebRTC peer connections. Both workers and clients must share the same secret.

Dashboard

Click Secret on your room card, then Generate Secret.

CLI

Generate and store a secret for a room.

sleap-rtc room secret generate --room ROOM_ID
Privacy: Secrets are generated locally and never sent to the server. You must distribute them securely to workers and clients.
3

Create Worker Token

API key for worker authentication

Each worker needs an API key (token) to authenticate with a room. Tokens are room-scoped and have an expiration date.

Dashboard

Go to Tokens, click Create Token, select your room and name your worker.

CLI

Create a token for a specific room and worker name.

sleap-rtc token create --room ROOM_ID --name "gpu-server-1"
Important: Copy the API key immediately! It's shown only once and cannot be retrieved later.
4

Start Worker on Remote Machine

Run the worker on your GPU server

SSH into your GPU machine and start the worker with your API key.

Basic worker start
sleap-rtc worker --api-key YOUR_API_KEY
With room secret (if configured)
sleap-rtc worker --api-key YOUR_API_KEY --room-secret YOUR_SECRET
With custom worker name
sleap-rtc worker --api-key YOUR_API_KEY --name "lab-gpu-1"
Tip: The worker will display a session string and wait for client connections. You can also run it in the background with screen or tmux.
5

Submit a Training Job

Run training from your local machine

From your local machine, submit a training job to the remote worker.

Connect to room and auto-select worker
sleap-rtc train --room ROOM_ID --auto-select --pkg-path training.zip
Interactive worker selection
sleap-rtc train --room ROOM_ID --pkg-path training.zip
Direct connection with session string
sleap-rtc train --session-string SESSION_STRING --pkg-path training.zip
That's it! Your training job will run on the remote GPU and results will be streamed back.

Configuration File

Persistent settings with sleap-rtc.toml

Instead of passing flags every time, create a sleap-rtc.toml file in your home directory or project root.

~/.sleap-rtc.toml (or ./sleap-rtc.toml)
# Default room for commands
default_room = "your-room-id"

# Worker configuration
[worker]
api_key = "your-api-key"
name = "lab-gpu-1"

# Room secrets (optional)
[secrets]
"room-id-1" = "secret-for-room-1"
"room-id-2" = "secret-for-room-2"

# Client configuration
[client]
auto_select = true

With this config, you can run commands without flags:

sleap-rtc worker Starts worker using config values
sleap-rtc train --pkg-path training.zip Uses default room and auto-select
Security: Keep your config file secure. Don't commit it to version control if it contains API keys.

Next Steps

Learn more about SLEAP-RTC

What is SLEAP-RTC?

Real-Time Communication for Remote Training & Inference

SLEAP-RTC enables remote training and inference with SLEAP by connecting Clients (who submit jobs) and Workers (who process them) through peer-to-peer WebRTC connections.

Client Submits jobs
WebRTC P2P
Signaling Server Coordinates connections
WebRTC P2P
Worker GPU processing

The Signaling Server helps peers discover each other and establish connections, but all data transfer happens directly between Client and Worker via WebRTC.

Rooms

Virtual workspaces for collaboration

A Room is a virtual workspace where workers and clients collaborate. Rooms provide:

  • Membership Only room members can discover and connect to workers in that room
  • Shared Model Registry Models trained in a room are accessible to all members
  • Expiration Rooms auto-expire after a configurable period (default: 30 days)
Tip: Create separate rooms for different projects or teams. Room owners can invite others via invite codes.

Room Membership

Owners vs Members

Owner

  • Create and delete the room
  • Generate invite codes
  • Create worker tokens
  • Manage room secrets
  • Remove members

Member

  • Discover workers in the room
  • Connect to workers
  • Submit training/inference jobs
  • Access shared models
  • Cannot manage the room

To join a room as a member, use an invite code shared by the room owner.

Worker Tokens (API Keys)

Authenticate workers with your rooms

Worker tokens are API keys that authenticate worker machines with specific rooms. Each token:

  • Room-Scoped Only grants access to one specific room
  • Named Has a human-readable worker name (e.g., "lab-gpu-1")
  • Expirable Auto-expires after a set period (default: 7 days)
  • Revocable Can be revoked at any time to disconnect a worker
Starting a worker with a token
sleap-rtc worker --api-key YOUR_TOKEN_HERE
Security: Tokens are shown only once when created. Store them securely!

Room Secrets (P2P Authentication)

Optional extra security for peer connections

Room secrets add an additional layer of security for WebRTC peer connections. When configured, workers will challenge connecting clients to prove they have the shared secret.

1
Generate Secret Room owner creates a secret (stored locally in browser)
2
Distribute Share secret securely with workers and clients
3
Authenticate Worker challenges client on connection; client proves knowledge of secret
Privacy: Room secrets are generated and stored in your browser. The server never sees them.

Connection Modes

Different ways to connect clients to workers

Direct (Session String)

Worker displays a session string; client connects directly using it.

sleap-rtc train --session-string SESSION Best for: Single worker, testing

Room Discovery

Client discovers all workers in a room and selects one interactively.

sleap-rtc train --room ROOM_ID Best for: Multiple workers, manual selection

Auto-Select

Automatically selects the worker with the most GPU memory.

sleap-rtc train --room ROOM_ID --auto-select Best for: Scripts, CI/CD pipelines

CLI Quick Reference

Common commands

sleap-rtc login Authenticate with GitHub
sleap-rtc room create --name "My Room" Create a new room
sleap-rtc room join --code INVITE_CODE Join a room with invite code
sleap-rtc token create --room ROOM_ID --name "gpu-1" Create a worker token
sleap-rtc worker --api-key TOKEN Start a worker
sleap-rtc train --room ROOM_ID --pkg-path package.zip Submit a training job