How your job is run.
Read this before you book. It describes exactly what the runner does to your code, what you are responsible for building, and what happens to work that is not saved.
Your code is started at 10:00 PST and stopped at 13:00 PST, every day, until it finishes. It must save its progress to disk and resume from that save. Work that is not checkpointed is lost, and Exea Labs is not liable for it.
- Your code runs 10:00–13:00 PST, then stops. Every booked job is started at 10:00 Pacific and stopped at 13:00 Pacific — a three-hour window, every day. It is not a reservation of a machine you log into and keep. Work that is not finished at 13:00 is snapshotted and resumed at 10:00 the next day, and the day after, until it completes or fails.
- Your code must be pausable and must checkpoint to disk. You are responsible for making your job survive being stopped. Write checkpoints to disk on a regular interval — model weights, optimizer state, epoch/step counter, dataset position, RNG state. Your stop command must flush a checkpoint and exit cleanly. Your resume command must detect that checkpoint and continue from it, not restart from zero.
- We are not liable for lost work. The runner sends a stop signal at 13:00 and snapshots the disk. If your job does not checkpoint, checkpoints incompletely, writes to a location outside the snapshot, or cannot resume from what it wrote, that work is lost. Exea Labs accepts no liability for lost, corrupted, or unrecoverable work, results, or data. Keep your own copies of anything you cannot afford to lose.
- Your repository must be public. The runner is unattended and clones your repository directly. Make it public so it can be pulled without a review step. Do not commit secrets, credentials, API keys, or private datasets — treat everything in that repository as world-readable, because it is.
- Your repository must contain exea.md at the top level. exea.md sits at the root of your repository — not in a subfolder — and contains every command needed to set up, start, resume, stop, and save your job. The runner reads only that file. If it is missing, malformed, or its commands fail, your job is marked failed and your slot is spent.
- GitHub credentials are used to pull and push on your behalf. You provide a GitHub username and a fine-grained personal access token on your dashboard. It is encrypted at rest and released only to the runner at run time so it can clone your repository and push results back. It is never shown in the browser again and never written into your repository. Scope the token to that one repository and revoke it when you are done.
- Slots are shared and capped at five per person. Multiple people book the same day — the runner works the day's queue across the node. You may hold up to five active bookings at once, and at most one booking per day. Cancel a booking you will not use so the place goes back to the queue.
- Errors are reported back to you. If your job fails, the runner posts the stage and error output to your dashboard. Read it there first — most failures are a bad command or a missing dependency in exea.md and you can fix them yourself before the next window. If something is broken on our side, Discord DM Avneh.
Exea Reserve is provided free and as-is, with no guarantee of availability, capacity, or completion. Exea Labs is not liable for lost, corrupted, or unrecoverable work, results, or data, for missed deadlines, or for anything arising from a job that failed to checkpoint or failed to resume. Keep your own copies of anything you cannot afford to lose.
Failures are reported to your dashboard with the stage and the error output. Most are a bad command or a missing dependency in exea.md — fix those yourself before your next window. If the failure is on our side, Discord DM Avneh.
I understand my job is stopped at 13:00 PST daily, that my code must checkpoint to disk and resume from that checkpoint, that my repository must be public with exea.md at the top level, and that Exea Labs is not liable for lost work.
Write your exea.md, then claim a slot.