Checkpoint & Restore — Sprites · Fly
Footgun-proof vibe coding :::
AI agents can write goofy code. Sprites take the stress out of vibe coding by letting you create and restore from checkpoints.
Version control for the whole VM :::
Creating a checkpoint on a Sprite is like a git commit for your whole system. Database changes, packages, policies: it all gets tracked in a checkpoint.
Fast and secure backups :::
Checkpoints take about 300ms to create and your Sprite environment won't even notice. Backed up to object storage for durability and peace of mind.
Quick Start
Install the Sprites CLI
curl https://sprites.dev/install.sh | bash
Create a Sprite
sprite create my-project
Do some work, then checkpoint
sprite checkpoint -s my-project -c "looking good so far"
Oops. Restore to the last checkpoint
sprite restore -s my-project
Disposable Compute
Sprites get VMs when they need them. Fire one up, do some work, forget about it for 6 months. We make sure it gets compute when you come back.
Firecracker VMs
Sprites execute code in Firecracker VMs. Even we have a hard time seeing what they're doing.
Isolated Networking
VMs run on isolated networks. Nothing can connect to your Sprite directly.
Dynamic Resources
Sprite VMs have access to big chunks of CPU and Memory. Your blobs of code just use what they need, up to 8 CPUs and 16GB of RAM for any given run.
Tiered storage
You read and write to fast, directly attached NVMe storage. Your data then gets written to durable, external object storage.
Same disk for every run
When Sprites become inactive, we remove their compute (and stop charging you!). When we assign new compute to Sprites, they come up with the exact same data on the filesystem.
Max Compatibility
Since it's just ext4, you won't run into weird edge cases like you might with NFS or FUSE mounts. You can happily use shared memory files, for example, so you can run SQLite in all its modes.
Only pay for actual data
You don't pay for allocated filesystem space, just the blocks you write. And it's all TRIM friendly, so your bill goes down when you delete things.
Live Checkpoints
Checkpoints are transactional metadata. They take about 300ms and your Sprite environment won't even notice.
Copy-On-Write
We only copy blocks that have changed. This keeps your bills down, incremental checkpoints don't use much space.
Full Environment
If you've installed packages, services, or policies in your Sprite, these are checkpointed with your code and data.
Quick restores
Restores put everything in place then restart your Sprite. You'll be reconnected in well under a second.
Manage them within the environment
Point your LLM at /.sprite/llm.txt and it'll happily take care of checkpoints for you.
URLs for External Access
Sprites have independent URLs.
Automatically Activate Sprite
Requests to your Sprite URL assign new compute to your Sprite, if inactive. Your data remains, and even a "cold start" request will typically take less than 1s.
Just listen on 8080
Requests to your sprite URLs are proxied to whatever you have listening on port 8080 within the Sprite.
Public Access, if you want
Just run
sprite url -s <name> update --auth public
and we open your Sprite URL to the internet. Serve up an entire app, show your friends, and accept webhooks. If it speaks HTTP it can speak to your Sprite.
Fine-grained network egress
Layer 3 network policies restrict outbound connections.
Simple rules
Configure sprites with a list of domain names to allow, include our default list of LLM friendly destinations, or let them access everything.
Live updates via REST API
Network policies are updated via an authenticated REST API. Updates are enforced immediately.
Transparent to Applications
Since these are enforced at L3, apps can use the full range of TCP and UDP protocols available to them.
Billing
HourlyPer Second
You pay only for Storage and compute resources while a Sprite is active. Usage is aggregated across your organization.
CPU Time
$0.07
/vCPU/hr
Minimum 0.0625 CPU while running.
Memory Time
$0.04375
/GB RAM/hr
Minimum 256MB RAM while running.
Storage
$0.50/GB/month
Prorated to the hour. 1,000 sprites using 10MB data = 10GB total.
All compute resources are billed per second. Storage is billed hourly but aggregated monthly.