renest 0.1.15

Getting started

Glossary.

Each word Renest uses has one meaning, defined here in one or two sentences, with a link to the page that explains it in full. A nest is the files and reinstallable dependencies behind one ComfyUI, kohya_ss or LLaMA-Factory run that already worked, described by a single manifest. A restore brings them back on another machine and checks every file against its recorded sha256 checksum.

Nest

A nest is the files and reinstallable dependencies behind one run that already worked in a named framework (ComfyUI for images; kohya_ss or LLaMA-Factory for fine-tuning). That includes model files, custom node source pinned to its commit, the dependency lock, and the workflow or training config that produced the result. A nest never contains a whole machine or an arbitrary Python environment. See Core ideas.

Version

A version is one stored state of a nest. Packing again into the same nest adds a new version and leaves the earlier ones as they were. Restore codes and hand-offs always point at one specific version. See Capture a run.

Manifest

The manifest is the one JSON file (manifest.json) that lists every file in a nest version with its sha256 checksum, where it can be fetched from and where it goes back. It is the complete state needed to rebuild the nest. See the format spec.

Drive

Your drive is the hosted storage in your Renest account, managed in the web console. It holds your nests, and it is where you issue restore codes and hand-offs. renest list shows what is in it. Packing to it needs an access key; restoring from it needs only a restore code. See Signing in to your drive.

Restore

A restore brings a nest version's files and dependencies back on another machine with renest restore, checks every file against its recorded checksum, and then runs the packed work once. It reinstalls dependencies from the stored lock and never resolves them again. See Restore anywhere.

Restore code

A restore code is a small JSON file (usually grant.json) that lets any machine holding it download one nest version for a limited time. You pass it to renest restore --grant, or to the escape hatch as GRANT=. There are two kinds:

  • Issued by the console for a nest in your drive. It expires after the time you chose when you issued it and can be revoked at any time. It is not tied to one machine. Each time it is used, the restore swaps it for short-lived download links.
  • Signed by renest presign for a nest in your own bucket, on the computer that holds your bucket key. It holds time-limited links and nothing else, so the key never reaches the rented machine.

A restore code is not a hand-off code, and neither one works in place of the other. See Restore codes.

Hand-off

A hand-off gives one version of a nest to a person you choose through a private link. The link expires, allows a limited number of claims and can be revoked. The recipient signs in and claims the nest into their own drive. There is no public link. See How hand-offs work.

Hand-off code

A hand-off code is the code inside a hand-off link. Pasted into the console's Redeem page, it does the same as opening the link. It claims a nest into a drive. It does not restore anything on a machine. See Claiming.

Starter nest

A starter nest is a nest that Renest packed after the run produced output and offers on the console's Starter nests page. Anyone with an account can take one into their drive at no charge and restore it on a GPU machine they rent themselves. See Try a starter nest.

Base image

The Renest base image, ghcr.io/renest-ai/nest-base, is a minimal Ubuntu 22.04 container image for restoring nests. It includes the renest tool and the escape hatch's tools, and leaves out torch, ComfyUI, models, the CUDA toolkit and a C compiler. See The official base image.

Pre-flight check (renest doctor)

The pre-flight check compares this machine with what a nest needs before anything is downloaded. It covers GPU generation, driver against the lock's CUDA line, free disk, system libraries, and whether the GPU can actually be used. It refuses a machine that can't run the nest. renest restore always runs it first, as stage S0. renest doctor runs a check of the same kind on its own. It only reports and downloads nothing. See Three gates.

Restore stages

A restore runs six stages in order. Each one prints a line as ✓ or ✗, followed by its code and one of these descriptions:

  • S0 checking this machine: the pre-flight check.
  • S1 downloading: fetching every file and checking it against its checksum. A restore code that has expired or been revoked is reported here too.
  • S2 putting files in place: moving files to where they belong, and checking again the ones already on disk.
  • S3 installing dependencies: installing the Python environment from the lock with uv.
  • S4 starting up: starting the app, or running a fine-tuning nest's training once.
  • S5 test render: running the packed workflow once. A fine-tuning nest has nothing more to do here.

A failure line names the stage and a class, such as [S0/DISK_INSUFFICIENT]. See If a restore stops.

Exit code

The number renest exits with. 0 means success. 2 means a usage problem, and 3 means a configuration or credential problem, most often a missing or refused access key. Any other code names the stage it stopped in: the tens digit is the stage (S1 to S5 give 1x to 5x, and S0 gives 6x), and the ones digit is the reason within that stage. See If a restore stops.

Three gates

The three gates are Renest's standard for a successful restore. The machine passes the pre-flight check, the app starts, and the environment produces real output: an image, or a non-empty training artifact. A clean exit code alone is not the standard. See Three gates, not an exit code.

Escape hatch (restore.sh)

The escape hatch is restore.sh, a plain shell script that brings a nest's files and dependencies back and checks each file. It needs only curl, jq, sha256sum, tar and uv, and no account or server of ours. It never refuses a machine and does not start the app. See The escape hatch.

Checksum

A checksum is the sha256 fingerprint of a file's contents. A nest identifies every file by its checksum, not by its name, and a restore recomputes it on arrival. A missing, truncated or changed file is caught and named. See Known by bytes, not by name.

Whole-file deduplication

Whole-file deduplication means that identical files, with the same checksum, are stored once, however many nests or versions contain them. A file with even one byte changed is a different file and is stored in full. See Whole-file deduplication.

Restricted-licence file

A restricted-licence file is a file in a nest whose recorded licence does not allow it to be passed on, or whose licence can't be confirmed. Renest never gives its bytes to anyone but the person who packed it. Someone who receives the nest fetches that file from its original source with their own credentials, and the restore says where. See Files that don't travel.

renest start

renest start starts the app a successful restore rebuilt, using the command that restore recorded, run from the nest's own environment and working folder. --listen 0.0.0.0 changes the recorded listen address so a browser on another computer can reach it. It never guesses a command the restore didn't record. See After the restore.

These docs describe renest 0.1.15, the latest release.

Open format

The docs describe a format you own.

Everything here is written against the open nest format. Every nest ships a plain restore.sh that brings back its files and dependencies with zero Renest code.