A workspace with a link you can reuse.
Run a shared terminal in a container. Named volumes keep its workspace and session identity across container restarts—not the memory of a running process.
On this page
1. Get the project
You need Docker with Compose. Clone the project and use the Compose file in its root. This runs a client of the hosted relay, not your own relay.
git clone https://github.com/TeoSlayer/shell.online.git cd shell.online- Open the repository directory.
2. Start the container
The first launch prints the browser link and generated password. The logs contain credentials: read them privately, not in a shared report.
docker compose up --build -d- Build and start the container.
docker compose logs shell-online- Read the session link and password.
3. Open the session
Open the printed link in your browser and enter the password. The default configuration keeps state and workspace in separate named volumes.
- shell-online-state
- Host identity, browser password and encryption material. Protect this volume and its backups as secrets.
- shell-online-workspace
- The files you work on inside the container.
What a restart preserves
The container reuses its saved link and password, then starts a new terminal process. It does not restore an agent’s in-memory conversation or a running job.
A saved identity can be revived from its state volume after the relay’s offline retention expires. Deleting that volume loses the saved identity. Do not use volume deletion as a routine restart step.
Choose or rotate a password
You may set a longer SHELL_ONLINE_E2EE_PASSWORD before first launch. Restarts reuse saved credentials. To change an active password, run shell password rotate <ID> inside the running container; an environment change alone does not rotate stored state.
Want your own server instead?
The root Compose file connects to hosted shell.online. To run your own relay and domain, follow Run your own relay.