KeepState and an always-on server
The job
The always-on server is the honest incumbent: a VPS, a spare Mac Mini, a dev machine that never sleeps, with your agent in a tmux session. It genuinely solves the laptop problem, it is cheap, and you already know how to run one. KeepState runs the agent on a hosted machine whose whole state can be saved, restored and forked.
The boundary
These tools solve different parts of running agent work. This page compares the relevant boundary, not every feature. This page compares presence against preservation: what a machine that stays on gives you, and what a saved session state adds on top of it.
Each row below carries the KeepState side with its exact deployment and access state from the generated capability record (tested release v0.1.26, as of 2026-10-23). The other column describes a machine you operate yourself, so it cites no vendor documentation and asserts nothing about anyone's product. Where the answer is that an always-on server is the better fit, the row says so.
Where an always-on server is sufficient
A server you already operate may be enough for persistent work, especially when your own recovery, budget and audit processes are adequate. Evaluate KeepState where recoverable session state, checked retries or a shared attempt record remove work you otherwise have to build and operate. Compare complete costs using your own workload.
The failure you actually have is the laptop closing, and a machine that never sleeps removes it.
You want zero new vendors and zero new concepts: ssh and tmux are already in your hands.
Your runs are short or cheap to restart, so a lost hour is an annoyance, not a bill.
You want a machine you administer yourself, with no dependency on our fleet or our control plane.
Where KeepState may add value
A mistake at hour six should cost minutes, not hours: rewind to the save before it happened (gate-2a/2b restore-or-refuse; gate-6 aged wake).
A hard decision deserves parallel futures: fork one save into diverging attempts and keep the winner (gate-5).
An interrupted model call should be replayed, not re-bought: the gateway serves the stored response, billed at most once (gate-3).
A parked agent should cost storage, not RAM: saves are deduplicated documents, not resident processes.
Compare every dimension
| dimension | an always-on server | KeepState |
|---|---|---|
| Presence | Always on. This column wins this row, and we say so. Basis: the machine you operate. No vendor documentation applies to this column. | Sessions run on the KeepState fleet, so presence is included. Evidence: proven in the stated test. Deployment: enabled in production. Access: self-serve. Release v0.1.26, as of 2026-10-23. current state |
| Save points | Whatever your own snapshot or backup process captures, on the schedule you run it. Basis: the machine you operate. No vendor documentation applies to this column. | Whole-machine checkpoints: memory, files, processes, one atomic write. Evidence: proven in the stated test. Deployment: enabled in production. Access: self-serve. Release v0.1.26, as of 2026-10-23. current state · proof |
| Rewind | Whatever an earlier snapshot of yours can be restored to. Basis: the machine you operate. No vendor documentation applies to this column. | Resume from any earlier save; restore is atomic or refused. Evidence: proven in the stated test. Deployment: enabled in production. Access: self-serve. Release v0.1.26, as of 2026-10-23. current state · proof |
| Fork | A second timeline is whatever you can reproduce from your own images. Basis: the machine you operate. No vendor documentation applies to this column. | One save, diverging branches with separate disks and lineage chains. Creation and isolation are proven; useful work inside branches is not claimed yet. Evidence: proven in the stated test. Deployment: enabled in production. Access: self-serve. Release v0.1.26, as of 2026-10-23. current state · proof |
| Interrupted model calls | Your agent calls the provider directly, so anything that absorbs a broken call is something you build. Basis: the machine you operate. No vendor documentation applies to this column. | Replayed from the gateway store at zero new cost. Evidence: proven in the stated test. Deployment: proven, not enabled in production. Access: limited access. Release v0.1.26, as of 2026-10-23. current state · proof |
| Ledger | Whatever your own logs and shell history record. Basis: the machine you operate. No vendor documentation applies to this column. | A reconciled causal history: host events and guest transcript, matched by sequence number. Evidence: proven in the stated test. Deployment: enabled in production. Access: self-serve. Release v0.1.26, as of 2026-10-23. current state · proof |
| Budget caps | Whatever ceiling you set with your provider or with your own tooling. Basis: the machine you operate. No vendor documentation applies to this column. | A session that reaches its credit ceiling checkpoints and parks rather than burning. Evidence: proven in the stated test. Deployment: enabled in production. Access: self-serve. Release v0.1.26, as of 2026-10-23. current state |
| Idle economics | An idle agent holds RAM on a machine you are already paying for. Basis: the machine you operate. No vendor documentation applies to this column. | A parked agent is a document: deduplicated storage until it wakes. Evidence: proven in the stated test. Deployment: enabled in production. Access: self-serve. Release v0.1.26, as of 2026-10-23. current state · proof |
Current integration status
There is nothing to integrate and nothing to migrate: a KeepState session is reached with the ks client and the console, and the server you run is untouched. If the laptop is the whole problem, the server you already run is enough and cheaper. A saved session starts paying for itself the first time an agent makes an expensive mistake, an interrupted call has to be re-bought, or you want two attempts from the same moment.
No third-party product is compared on this page. The other column describes a server the reader already operates, so there is no vendor documentation to cite and no vendor capability is asserted. The KeepState column carries its state and date from the generated capability manifest. Naming a product here implies no partnership, integration, endorsement or compatibility in either direction. What KeepState claims about itself carries its own evidence; what this page says about another product is an observation with a date, and a wrong sentence is a finding we will fix.
More comparisons