Product
The persistent session, chapter by chapter. Replay the part you doubt.
A real tmux or zellij session on a real Linux box in France. It survives the closed lid. Here is how, piece by piece.
$ claude --resume > resuming task: refactor auth module, tests running... keys: byok (yours) region: france
same session
keys: byok (yours)
region: france attach #4 1.0 Persist
Sessions that survive the disconnect
Your session is a tmux or zellij session on a machine that never went anywhere. Closing the laptop closes a window onto it, nothing more.
What survives: the session, its processes, the scrollback. What does not: your local clipboard, and anything that only ever lived on the laptop. One more honest note: mosh needs UDP, and some corporate firewalls block it; plain SSH always works, you just see the reconnect.
2.0 Your keys
Agents that run on your keys, not ours
Claude Code, Codex, Mistral or a local model run inside your environment, on your account, at your provider's price. Your keys, your account, no markup. We sell the environment and the hosting, never the model.
Compatibility table styled as terminal output. Claude Code, Codex and Mistral each run on your key and your account. A local model needs no key and runs on the box itself.
| agent | key | account |
|---|---|---|
| claude code | yours | yours |
| codex | yours | yours |
| mistral | yours | yours |
| local model | n/a | on the box |
If your provider nukes your account or lowers your limits in secret, you swap keys. The environment, the repo and the session history stay put. You swap agents without moving.
How keys are stored →3.0 Real Linux
A real Linux box: root, apt, docker
Plus git, your dotfiles, your neovim. If it runs on Debian, it runs here.
$ uname -a Linux permia-eo 6.x ... x86_64 GNU/Linux $ docker compose up -d $ sudo apt install ripgrep
Bring what you already use:
- tmux
- zellij
- neovim
- git
- docker
- your agent CLIs
4.0 Zero ops
The ops you stop doing
The box is managed: we watch the 3am session crash, we verify the backups, we keep the hardening current, and we answer as humans when something breaks.
- Sessions supervised; if one restarts, you see it in-session
- Backups taken and verified
- OS hardening and patching maintained
- Isolated box: your agent runs with no path to your laptop's credentials
- A DPA your client can sign
- A human in France answers
$ permia status session: live · uptime 3d 14h last backup: verified restarts: surfaced in-session region: france
Replaces the glue work: raw VPS setup dotfiles sync tunnel config backup cron hardening checklists
Read the DPA →5.0 "Just tmux?"
Yes, it is tmux. Here is the rest.
A 5-euro VPS with tmux on it works, and for one person with low stakes it wins on price. We will say so on a sales call.
What it cost us was never the monthly bill. It was the morning spent rebuilding a corrupted session, the vacation the box picked to fail, the client who asked for a DPA a bare VPS will never produce, and the evenings that went to hardening checklists instead of billable work.
The hard part is a session you can trust from a phone in a parking lot: supervision, verified backups, reconnects that survive bad networks. We do that part so you don't.
See the full price math on /pricingWhere this lands
Comparison table across laptop, DIY VPS and Permia. Permia survives disconnect, attaches from a phone, carries the ops burden, provides a signable DPA, and sits under French and EU jurisdiction. The LLM keys row reads yours in all three columns.
| laptop | DIY VPS | Permia | |
|---|---|---|---|
| survives disconnect | no | yes* | yes |
| phone attach | no | DIY | yes |
| ops burden | yours | yours | ours |
| DPA for your client | no | no | yes |
| jurisdiction | yours | mixed | FR/EU |
| LLM keys | yours | yours | yours |
*if you built it and keep maintaining it
That's every piece. The 20-min demo runs them together, on your keys.
A human in France answers.