nd-embedding-atlas
Operate

CLI reference

Supported ndea commands, flags, environment variables, and release channels.

This page lists the supported ndea commands, flags, environment variables, and release channels.

Walkthroughs live in Getting started. Dev-side commands (vp run dev, vp run gen, …) live in Contributing.

Synopsis

ndea [paths...]                                  # default; equivalent to `ndea view`
ndea view [paths...] [options]
ndea update [options]
ndea rollback
ndea gc [options]
ndea doctor [--check-network] [--strict]
ndea completions <bash|zsh|fish>
ndea complete -- <args...>                       # internal; called by completion scripts
ndea --help | --version

Shorthand

ndea path/to/data.zarr is equivalent to ndea view path/to/data.zarr.

ndea view

Open one or more Zarr stores, or a YAML project config, in ndea.

Arguments

NameTypeDescription
paths…one or more pathsZarr stores or a single YAML project config

A single .yaml / .yml path is parsed as a multi-dataset project config (see Project YAML).

Options

OptionTypeDefaultDescription
--port <port>integer5055TCP port for the local server
--host <host>string127.0.0.1Hostname to bind
--no-openbooleanfalseDo not auto-open the browser
--no-staticbooleanfalseDo not serve the bundled frontend (Vite serves it in dev mode)
--obs-columns <list>stringall columnsComma-separated subset of obs columns to load
--preset <name>stringannotateShipped preset; currently only annotate

--port accepts integers in [1, 65535].

ndea update

Download and activate the latest release for a channel. ndea verifies the SHA-256 checksum before switching versions.

Options

OptionTypeDefaultDescription
--channel <channel>stable | latest | pre-releasestableRelease channel to resolve
--forcebooleanfalseRe-install even when already on the target
--no-gcbooleanfalseSkip the post-update auto-gc that prunes to 2 versions

By default, a successful update keeps the active version and one rollback target. Pass --no-gc to retain older versions, then prune them later with ndea gc.

A running ndea view session continues using the version it started with.

ndea rollback

Activate the most recently installed version other than the current version. Run the command again to step further back. This command has no options.

ndea gc

Prune old installed versions. ndea always preserves the active version.

Options

OptionTypeDefaultDescription
--keep <N>integer2Number of versions to keep (active counts; min 1)
--allbooleanfalseKeep only the active version

ndea doctor

Diagnose the install. Prints binary path, symlink integrity, active version, installed versions with disk usage. Exit code 0 if healthy, 1 on hard anomalies (broken symlink, missing active binary).

Options

OptionTypeDefaultDescription
--check-networkbooleanfalseProbe manifest.json reachability over the network (3 s timeout)
--strictbooleanfalseTreat warnings as errors (non-zero exit)

ndea completions

Emit shell completion scripts.

Arguments

NameTypeDescription
shellbash | zsh | fishShell to emit for

Usage

# bash / zsh: load on demand
source <(ndea completions bash)
source <(ndea completions zsh)

# fish: drop into the completions dir
ndea completions fish > ~/.config/fish/completions/ndea.fish

view's positional completion filters to *.zarr directories and *.yaml / *.yml files.

Environment variables

VariableConsumerDefaultDescription
NDEA_DATASETviewunsetPath forwarded as a positional when none is given
NDEA_NO_OPENviewunsetWhen 1, equivalent to passing --no-open
NDEA_NO_STATICviewunsetWhen 1, equivalent to passing --no-static
NDEA_GITHUB_TOKENinstall.shunsetOptional GitHub token for authenticated API requests
NDEA_CHANNELupdate, install.shstableDefault release channel
NDEA_VERSIONinstall.shlatestPin first install to a specific tag (e.g. v0.1.0-beta.0)
NDEA_BIN_DIRinstall.sh~/.local/binDirectory holding the symlink that's on PATH
NDEA_HOMEall~/.ndeaState root (versions tree, locks, current-version)
NDEA_DISABLE_UPDATESupdate, rollbackunsetWhen 1, blocks both update and rollback (sysadmin lock)

Release channels

ChannelResolves toCadence
stablelatest semver-tagged release (e.g. v0.1.0)Manual; cut from main when ready
latestalias for stableSame as stable
pre-releaselatest active alpha / beta / rc tagManual; absent between cuts (manifest pointer is null)

manifest.json maps each channel to a git tag. ndea update fetches it at update time.

State directory layout

~/.ndea/ (override with NDEA_HOME):

~/.ndea/
  current-version              # Plain text: "<tag>\n<sha256>\n"
  versions/
    v0.1.0/
      ndea                     # bun-compiled binary (~185 MB, embeds libduckdb)
    v0.1.1/

  locks/
    install.lock               # PID file backing the install/update mutex
~/.cache/ndea/
  v0.1.0/
    libduckdb.{dylib,so}       # Extracted from the binary on first launch

A compiled version takes about 185 MB. ndea gc prunes the version directory but does not prune ~/.cache/ndea/; clear old cache entries manually if disk space is limited.

$NDEA_BIN_DIR/ndea points to the active binary under ~/.ndea/versions/<tag>/ndea.

Exit codes

CodeMeaning
0Success
1General error (missing argument, fatal startup, lock contention, …)
130Interrupted (Ctrl-C during a long-running command)

On this page