# 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.

Canonical page: https://renest.ai/docs/glossary

<h2 id="nest">Nest</h2>

<p>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 <a href="/docs/concepts#nest">Core ideas</a>.</p>

<h2 id="version">Version</h2>

<p>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 <a href="/docs/capture">Capture a run</a>.</p>

<h2 id="manifest">Manifest</h2>

<p>The manifest is the one JSON file (<code>manifest.json</code>) 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
<a href="/docs/format-spec">format spec</a>.</p>

<h2 id="drive">Drive</h2>

<p>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.
<code>renest list</code> shows what is in it. Packing to it needs an access key; restoring
from it needs only a restore code. See <a href="/docs/cli#auth">Signing in to your
drive</a>.</p>

<h2 id="restore">Restore</h2>

<p>A restore brings a nest version's files and dependencies back on another machine with
<code>renest restore</code>, 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 <a href="/docs/restore">Restore a nest</a>.</p>

<h2 id="restore-code">Restore code</h2>

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

<ul>
  <li><strong>Issued by the console</strong> 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.</li>
  <li><strong>Signed by <code>renest presign</code></strong> 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.</li>
</ul>

<p>A restore code is not a hand-off code, and neither one works in place of the other. See
<a href="/docs/restore#codes">Restore codes</a>.</p>

<h2 id="handoff">Hand-off</h2>

<p>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
<a href="/docs/handoff">How hand-offs work</a>.</p>

<h2 id="handoff-code">Hand-off code</h2>

<p>A hand-off code is the code inside a hand-off link. Pasted into the console's
<strong>Redeem</strong> 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
<a href="/docs/handoff#claim">Claiming</a>.</p>

<h2 id="starter-nest">Starter nest</h2>

<p>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
<a href="/docs/starter-nests">Try a starter nest</a>.</p>

<h2 id="base-image">Base image</h2>

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

<h2 id="pre-flight">Pre-flight check (<code>renest doctor</code>)</h2>

<p>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. <code>renest restore</code> always runs it first, as stage S0.
<code>renest doctor</code> runs a check of the same kind on its own. It only reports and
downloads nothing. See
<a href="/docs/three-gates#doctor">Three gates</a>.</p>

<h2 id="stages">Restore stages</h2>

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

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

<p>A failure line names the stage and a class, such as
<code>[S0/DISK_INSUFFICIENT]</code>. See <a href="/docs/troubleshooting">If a restore
stops</a>.</p>

<h2 id="exit-code">Exit code</h2>

<p>The number <code>renest</code> exits with. <code>0</code> means success. <code>2</code>
means a usage problem, and <code>3</code> 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
<a href="/docs/troubleshooting#codes">If a restore stops</a>.</p>

<h2 id="three-gates">Three gates</h2>

<p>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
<a href="/docs/three-gates">Three gates, not an exit code</a>.</p>

<h2 id="escape-hatch">Escape hatch (<code>restore.sh</code>)</h2>

<p>The escape hatch is <code>restore.sh</code>, 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 <a href="/docs/escape-hatch">The escape hatch</a>.</p>

<h2 id="checksum">Checksum</h2>

<p>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
<a href="/docs/content-addressed-files">Known by bytes, not by name</a>.</p>

<h2 id="dedup">Whole-file deduplication</h2>

<p>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
<a href="/docs/whole-file-dedup">Whole-file deduplication</a>.</p>

<h2 id="restricted">Restricted-licence file</h2>

<p>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. The recipient's restore lists such a file and where it comes from, fetches it from a public original source and checks it against the nest, and otherwise names the path to put it at before downloading anything else. See
<a href="/docs/handoff#licences">Files that don't travel</a>.</p>

<h2 id="start"><code>renest start</code></h2>

<p><code>renest start</code> starts the app a successful restore rebuilt, using the command
that restore recorded, run from the nest's own environment and working folder.
<code>--listen 0.0.0.0</code> 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
<a href="/docs/after-restore#start">After the restore</a>.</p>
