renest 0.1.15

Getting started

Pack the run that worked. Restore it on the next machine.

Renest is an asset drive for AI image and fine-tuning work. It packs the files and reinstallable dependencies behind a ComfyUI, kohya_ss or LLaMA-Factory run that already worked, and restores them on another GPU machine, where every file is checked against its recorded checksum.

Renest packs a run that worked and restores its files and dependencies elsewhere

Renest works with three named frameworks: ComfyUI for image generation, and kohya_ss and LLaMA-Factory for fine-tuning. Once a run has produced a result, Renest packs what it depended on into a nest: the model weights and adapters it used, the source of every custom node as it was, the dependency lock, and the workflow or training config. It is not a tool for arbitrary Python environments.

On another machine, a restore checks the hardware first, brings every file back and checks it against its recorded checksum, and reinstalls the dependencies from the lock. Files your drive already holds are not sent again. What Renest promises is that the files and dependencies come back and are checked; the restore then starts the app and runs the packed workflow once, so you see for yourself whether it produces output.

Install the command-line tool with uv

Shell
# no account needed · Python 3.11 or newer
$ uv tool install --upgrade renest
# put it on this shell's PATH
$ export PATH="$HOME/.local/bin:$PATH"
# check this machine
$ renest doctor

The PATH line is not optional on a fresh machine: uv installs renest into ~/.local/bin, which a freshly rented box does not have on its PATH, so renest answers command not found with no hint as to why. A new shell picks it up too; add the line to ~/.bashrc to keep it across reboots.

--upgrade also moves an older install to the latest; without it, a plain uv tool install renest leaves an existing version untouched. On a proxy network, export HTTPS_PROXY=http://host:port (and ALL_PROXY) first — uv and curl read the proxy only from these variables, never from the OS settings, so without them the very first install step hangs with no error at all.

A first restore takes a pack, a restore code, and one command

Where the run worked, pack it and upload it to your Renest drive. The workflow is the one exported in API format (in ComfyUI, Export (API)). Uploading needs an access key from the web console, under Settings → Access:

Shell
$ renest pack --dir ./run --workflow workflow-api.json --out ./nests --dest hosted

The ComfyUI panel can do the packing from a button; it writes the nest to this machine's disk only, and you can then upload that folder from the web console with Upload a nest.

On the other machine, open the nest in the web console, choose Restore, and pick how long the restore code lasts. The console gives you one command to paste; it writes the code to grant.json and runs:

Shell
$ renest restore --grant grant.json --dir ./run
# when it has finished, start the app it restored
$ renest start --dir ./run --listen 0.0.0.0

A restore ends by printing What's next: where your output lands and the command that starts the app. Quick start walks through the same steps with more detail.

Keeping nests in a bucket of your own instead of the drive also works: you pack to your bucket and sign the restore code yourself with renest presign. See Restore anywhere.

The docs are grouped by what you are trying to do

  • Getting started — what Renest is and one pack and restore end to end. Begin with Quick start, or try a starter nest first.
  • Guides — step-by-step pages for one job at a time. Begin with Restore anywhere.
  • Reference — exact commands, flags and file formats, grouped as CLI reference and Formats, plus the ComfyUI panel. Begin with the CLI reference.
  • Concepts — why it works the way it does, and what you can rely on. Begin with Core ideas.

Measured runs, with the date and hardware they came from, are written up as field reports.

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.