# Introduction

URL: https://shellz.dev/docs

> What shellz records, how it protects the recordings, and where to start.

shellz records every terminal session on your Linux servers and in your containers, whether a person or an AI agent is typing. Recordings are encrypted on the server before they leave it, stream to the dashboard about a second behind, and are decrypted only in your browser.

## What gets recorded

| Session | Recorded as |
|---|---|
| Interactive SSH logins | `ssh` |
| Remote commands (`ssh host cmd`) | `command` |
| SFTP transfers | `sftp` |
| Physical, serial and hypervisor consoles (`tty1`, `ttyS0`, `hvc0`, `/dev/console`) | `console` |
| Other local logins, `su -`, desktop terminals | `local` |
| `docker exec`, `docker attach`, `docker run -it`, `docker compose exec` on a Docker host | `container` |
| `kubectl exec`, ECS Exec and dev-container terminals, with shellz in the image | `container`, or `command` for one-off commands without a terminal |

Each session is kept twice: as a full terminal replay and as a clean text transcript. Input typed at hidden prompts, such as `sudo` and `passwd` passwords or `read -s`, is never recorded. tmux and screen started inside a recorded session are captured by that session's recording.

> [!NOTE]
> shellz records agents that log in or start a shell: SSH, remote commands, SFTP, `su -`, `docker exec` and `kubectl exec`. A process running as a service on the host that never starts a login session isn't a session, so it isn't recorded.

## How it's protected

- Every session gets its own AES-256-GCM key, which is wrapped to your org's X25519 key on the server. shellz stores ciphertext only.
- Every piece of a recording is signed by the server's own Ed25519 key and chained to the previous one, so missing or edited pieces show up as a gap or as tampering.
- Uploaded recordings are stored write-once with a 365-day retention lock.
- The recorder can't be stopped through systemd and restarts if it's killed. Changes made with root access are reverted and reported, and a server that goes silent raises an alert.
- With [Perfect Secrecy](https://shellz.dev/docs/security/perfect-secrecy.md) turned on, the keys that open recordings exist only in your team's browsers, unlocked by their passkeys. shellz can't decrypt your recordings.

## Where to start

- [Getting started](https://shellz.dev/docs/getting-started.md): sign up and record your first session in about two minutes.
- [How it works](https://shellz.dev/docs/how-it-works.md): the path a keystroke takes from your server to your screen.
- [Choose an install method](https://shellz.dev/docs/install.md): Linux servers, Docker hosts, Kubernetes, ECS, Cloud Run and dev containers.
- [Security overview](https://shellz.dev/docs/security.md): the threat model, the encryption and what shellz can and can't see.

## Docs for AI agents

These docs are available as plain Markdown and through an MCP server, so coding agents can read them directly. See [Use the docs with AI](https://shellz.dev/docs/reference/ai.md).
