← All docs
Features

Persistent Sessions

Persistence is the core value proposition of ShellPod. Your coding session runs on cloud infrastructure and survives browser closes, network disconnects, laptop sleeps, and even machine reboots. Here is how it works and how to get the most out of it.

How persistence works

When you start a ShellPod session, we provision a dedicated Linux container on cloud infrastructure. This container runs independently of your browser or local machine. Your terminal connection is just a window into that container — closing the window does not stop the container.

Inside the container, your terminal session runs inside tmux, a terminal multiplexer. tmux maintains your session state (running programs, command history, terminal output) even when no client is connected. When you reconnect, tmux reattaches to the existing session with everything exactly as you left it.

What persists

Everything on your container's filesystem persists between connections:

  • Files and directories: Your cloned repos, generated code, installed packages — all stored on persistent SSD storage
  • Configuration: Your ~/.gitconfig, ~/.ssh keys, shell configuration, Claude Code settings
  • Running processes: Anything running inside tmux continues in the background (Claude Code, dev servers, build processes)
  • Terminal history: Your command history and terminal scrollback are preserved
  • Environment variables: Variables set in your shell profile persist across sessions

Reconnecting to your session

To reconnect, simply go to your ShellPod dashboard and click Open Terminal. The web terminal will reconnect to your existing tmux session automatically. You will see your terminal exactly as you left it — same working directory, same output, same running programs.

If Claude Code was running a task when you disconnected, it will have continued working. Just scroll up in the terminal to see what happened while you were away.

Using tmux effectively

tmux is a powerful tool that lets you manage multiple terminal panes and windows within a single session. Here are the essential commands (all prefixed with Ctrl+B):

  • Ctrl+B, c — Create a new window
  • Ctrl+B, n — Switch to the next window
  • Ctrl+B, p — Switch to the previous window
  • Ctrl+B, % — Split the current pane vertically
  • Ctrl+B, " — Split the current pane horizontally
  • Ctrl+B, arrow keys — Navigate between panes
  • Ctrl+B, d — Detach from the session (it keeps running)

Practical workflow: long-running tasks

One of the best uses of persistence is kicking off long-running tasks and checking back later. For example:

  1. Start Claude Code on a complex refactoring task: claude "Refactor the authentication module to use the new token-based system. Update all affected files and fix any type errors."
  2. Close your browser tab and go to lunch
  3. Come back, open your terminal, and scroll up to see the results
  4. Review the changes with git diff and continue working

This is not possible with local Claude Code sessions that die when your laptop sleeps.

Multi-device access

Because your session runs in the cloud, you can access it from any device with a web browser:

  • Start a task on your desktop at work
  • Check on it from your phone during your commute
  • Continue working from your laptop at home
  • Quick check from your iPad on the couch

Every device connects to the same persistent session. There is no sync needed because there is only one copy of your environment.

Session lifecycle

Your session has a few states:

  • Running: Your container is active and you can connect at any time
  • Stopped: You explicitly stopped the session from the dashboard. Your files are preserved but no processes are running. Start it again to resume.
  • Starting: The container is booting up (takes about 10-15 seconds)

If you are not going to use ShellPod for a while, you can stop your session from the dashboard to free up resources. When you start it again, all your files and configuration will be exactly as you left them.

Tips for persistence

  • Use tmux windows to separate tasks — one for Claude Code, one for git operations, one for running a dev server
  • Before disconnecting during a Claude Code task, make sure it has enough context to continue on its own
  • Create snapshots before risky operations so you can roll back if needed
  • Your session persists through ShellPod platform updates — we handle migrations transparently