
Running Commands and Sessions
Sprites give you three main ways to interact:sprite exec – One-off commands and automation
Run a single command, wait for it to finish, get the output. Perfect for scripts, package installs, or quick checks.
- Blocks until the command completes
- Returns stdout/stderr
- Use for automation or scripting
sprite exec binds the same port on your laptop and forwards traffic to the sprite. Use --no-port-forward when you want to bind the port yourself with sprite proxy.
sprite console – Interactive shell (like SSH)
Opens a full terminal session so you can explore, debug, or run multiple commands.
- TTY enabled
- Stays open until you exit
- Use for manual work or debugging
Sessions – Keep things running
All TTY sessions are automatically detachable. Start a command, disconnect withCtrl+\, and reattach later. Great for dev servers, long builds, or background processes.
Sprite Lifecycle: Idle Behavior and Persistence
When activity stops, Sprites immediately becomewarm. Over time they may transition to cold. warm Sprites resume quickly; cold Sprites take longer to wake. That means:
What Persists (and What Doesn’t)
- Filesystem persists: All files, installed packages, git repos, databases—everything on disk stays intact
- RAM doesn’t persist: Running processes stop, in-memory data is lost
- Network config persists: Open ports, URL settings, SSH access all remain configured
Wake-up Behavior
Wake-up is fast:- ~100–500ms for normal wakes
- 1–2s on cold starts
sprite exec or sprite console stops when the Sprite sleeps.
Idle Detection
Your Sprite stays awake while there’s activity, and sleeps when there isn’t. Activity includes:- Active exec/console commands
- Open TCP connections (like your app’s URL)
- Running TTY sessions
- Active Services with open connections
Networking: URLs and Port Forwarding
Every Sprite gets a URL:https://<name>-<org-id>.sprites.app, where the org ID is a short generated identifier, not your org’s name. Run sprite info to get the exact URL.
HTTP Access
- Routes to port 8080 by default (or first HTTP port opened)
- Wakes the Sprite on request — pair with a Service so your server is ready to handle it
- Private by default (auth token required)
Port Forwarding
Ctrl+C to stop forwarding.
Port Conflicts
If a local port is already in use,sprite proxy reports which process is holding it. The most common cause is a sprite exec auto-forwarding the same port. Fixes:
- Stop the conflicting
sprite exec, or restart it with--no-port-forward. - Map to a different local port:
sprite proxy 3001:3000forwards local 3001 to the sprite’s 3000. - Kill an old proxy session: if a previous
sprite proxyis still running, stop it first.
Your Environment
Sprites run Ubuntu 25.10 with common tools preinstalled:- Languages: Node.js, Python, Go, Ruby, Rust, Elixir, Java, Bun, Deno
- AI/CLI Tools: Claude CLI, Gemini CLI, OpenAI Codex, Cursor
- Utilities: Git, curl, wget, vim, and common dev tools
Filesystem Basics
/home/sprite/— your home directory, put your stuff here/home/sprite/.local/— for local binaries and user-installed tools/opt/— good for standalone applications/var/— for databases and application state
Storage space: Each Sprite has 100 GB of persistent storage. Check usage with:
Managing Sprites
Set Active Sprite
List and Filter
Destroy
Checkpoints
Snapshot your Sprite’s filesystem so you can roll back later.- Entire filesystem (all files, installed packages, databases)
- File permissions and ownership
- Running processes (they stop during checkpoint creation)
- In-memory state
- Checkpoints count against your storage quota
- Restoring replaces the entire filesystem—changes since the checkpoint are lost
- Creation takes 10–30 seconds depending on data size
Optional: Going Deeper
These features are useful once you’re comfortable.Mounting Filesystem Locally
Use SSHFS to mount your Sprite and edit files with your local tools. Sprites don’t expose SSH directly—you’ll need to install an SSH server on your Sprite and tunnel the connection throughsprite proxy. This keeps your Sprite
secure while still allowing local filesystem access.
Prepare an SSH server on your Sprite:
Common Error Scenarios
Connection errors:- Check auth:
sprite org auth - Verify Sprite exists:
sprite list - Wait a moment and retry
- Be patient on first wake-up (1–2 seconds)
- Check if command actually needs that long
- Verify it exists with
sprite list - Wait 30 seconds and retry
- Contact support if persistent
- Clean up files:
sprite exec -- bash -c "du -sh /home/sprite/*" - Delete old checkpoints
- Create a new Sprite for additional workloads
Sprites are meant to feel like your own Linux box in the sky—fast to wake, persistent when you need it, and flexible enough to run whatever weird stack you’re building. As you get more comfortable, the advanced features are there when you need them.