Skip to main content
A scheduled job that wakes a Dedalus Machine, runs your command, sleeps. You pay per-second of compute (only while the job runs) and storage stays warm between runs — your ~/.cache, model weights, and installed packages persist.
.env

1. Provision the machine once

2. The job runner

Run this script from any cron source: GitHub Actions on a schedule, EventBridge, your own k8s CronJob, even another sleeping VM running cron.

When this beats Lambda

  • No 250 MB layer hacks. Run anything apt-get installs.
  • No 15-minute timeout. Set timeout_ms to whatever the job needs.
  • Stateful caches. ~/.cache/huggingface (40 GB of weights), ~/.cargo, build artifacts — all persist between runs without an S3 round-trip.
  • Per-second billing while awake, zero while sleeping. A 4-second job costs 4 seconds.
  • Real Linux. systemd services, persistent crontab -e if you’d rather schedule inside the VM, full process tree.

Notes

  • timeout_ms on executions kills the process if it overruns. Without it, executions inherit a generous platform default — set it explicitly for cron.
  • Auto-sleep is on by default (autosleep: "5m"). Even if your script forgets to call sleep(), the machine slips back to zero cost five minutes later.
  • Schedule the wake-up itself outside the VM. A sleeping VM can’t wake itself; you need an external scheduler to call wake on the machine ID.
Last modified on May 12, 2026