Restore your development workspace with one command.
Checkpoint captures and restores active development environments:
- running dev servers
- terminals
- browser tabs
- workspace history
- project context
so you can continue working without rebuilding your setup every time you restart, switch branches, or come back later.
A normal development session is spread across:
- terminals
- localhost servers
- browser tabs
- Git branches
- databases
- debugging context
Git saves your code.
Checkpoint saves the rest of the workspace around it.
You are working on:
- a Vite frontend
- a Node backend
- PostgreSQL
- localhost tabs
- GitHub PRs
- docs and debugging tabs
Before leaving:
checkpoint lockLater:
checkpoint restoreCheckpoint rebuilds the environment:
- terminals reopen
- dev servers restart
- browser tabs come back
- workspace state is restored
npm install -g checkpoint-devStart the local browser sync server:
checkpoint sync-serverInstall the browser extension:
checkpoint extension --setupSave your current workspace:
checkpoint lockRestore it later:
checkpoint restoreView all available commands:
checkpoint --helpView help for a specific command:
checkpoint lock --help
checkpoint restore --help
checkpoint timeline --helpCheckpoint observes the active workspace and stores:
- running processes
- working directories
- browser tabs
- Git branch information
- port usage
- dependency order
During restore, processes are started in dependency order to avoid broken environments.
graph TD
A[Infrastructure] --> B[Backend APIs]
B --> C[Frontend Dev Servers]
A1[Docker]
A2[Postgres]
A3[Redis]
B1[Node API]
B2[Python API]
C1[Vite]
C2[Next.js]
A --> A1
A --> A2
A --> A3
B --> B1
B --> B2
C --> C1
C --> C2
graph LR
A[Development Session] --> B[checkpoint lock]
B --> C[Workspace Snapshot]
C --> D[Restart / Crash / Branch Switch]
D --> E[checkpoint restore]
E --> F[Workspace Reconstructed]
Checkpoint keeps historical workspace snapshots so previous states can be restored later.
View snapshot history:
checkpoint timelineRestore a previous workspace:
checkpoint restore --name before-auth-refactorCompare the current environment against a snapshot:
checkpoint diff| Command | Description | Flags / Options |
|---|---|---|
checkpoint lock |
Save current workspace state | --name, --team |
checkpoint restore |
Restore a saved workspace | --name, --no-browser, --no-processes, --no-terminals |
checkpoint status |
Show current workspace status | - |
checkpoint list |
List saved snapshots | --team |
checkpoint timeline |
View workspace history | - |
checkpoint diff |
Compare current state against a snapshot | --name |
checkpoint rename |
Rename a snapshot | - |
checkpoint delete |
Delete a snapshot | - |
checkpoint share |
Share a snapshot | --name |
checkpoint sync-server |
Start the local sync daemon | - |
checkpoint extension --setup |
Setup browser extension files | - |
Save a named snapshot:
checkpoint lock --name auth-debugRestore it later:
checkpoint restore --name auth-debugRestore without browser tabs:
checkpoint restore --no-browserRestore without restarting processes:
checkpoint restore --no-processesShow workspace status:
checkpoint statusCheckpoint supports Chromium-based browsers for tab restoration:
- Chrome
- Edge
- Brave
- Arc (partial)
It can restore:
- localhost tabs
- GitHub pages
- docs
- debugging context
Checkpoint is local-first by default.
- snapshots are stored locally
- browser sync runs on localhost only
- environment variables are not serialized
- shared snapshots are encrypted before upload
Default snapshot location:
~/.checkpoint/Project/team snapshots:
./.checkpoint/Supported:
- Windows
- macOS
- Linux
Browsers:
- Chromium-based browsers
Git tracks source code history.
Checkpoint tracks active development state history.