Nix installation¶
Use the official installer with --use-nix to provision a Nix development shell and a virtual environment using the Nix-provided Python:
curl -fsSL https://raw.githubusercontent.com/dimensionalOS/dimos/main/scripts/install.sh | bash -s -- --use-nix --mode dev --project-dir ./dimos
cd dimos
nix develop
source .venv/bin/activate
The installer offers to install Nix if needed and enables flakes for a new installation. An existing Nix installation must already have flakes enabled. Choose library mode to install the published package instead; the installer downloads the flake files into that project.
Nix is an option for Arch Linux and other distributions whose package managers the installer does not handle. This path is not covered by installation CI. Native Arch dependency installation through pacman is not implemented.
On Ubuntu, prefer the system-package path, which is tested in CI. Nix libraries can conflict with PyPI wheels on Ubuntu 22.04.
See installer options and the DDS guide for specialized setup.
Manual installation¶
Install Nix and enable nix-command and flakes first. From a source checkout:
GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/dimensionalOS/dimos.git
cd dimos
nix develop
export UV_PYTHON_PREFERENCE=only-system UV_PYTHON_DOWNLOADS=never
uv sync --locked --python "$(command -v python3)" --extra manipulation --extra unitree --extra cpu --group tests --group lint
source .venv/bin/activate
uv run --no-sync dimos --help
For a library environment, download the shell definition instead of cloning:
mkdir dimos-app && cd dimos-app
curl -fsSLO https://raw.githubusercontent.com/dimensionalOS/dimos/main/flake.nix
curl -fsSLO https://raw.githubusercontent.com/dimensionalOS/dimos/main/flake.lock
git init
git add flake.nix flake.lock
nix develop
export UV_PYTHON_PREFERENCE=only-system UV_PYTHON_DOWNLOADS=never
uv venv --python "$(command -v python3)"
source .venv/bin/activate
uv pip install --torch-backend cpu 'dimos[base,unitree,sim]'
uv run dimos --help
If uv is missing, install it with curl -LsSf https://astral.sh/uv/install.sh | sh and add $HOME/.local/bin to PATH. Always enter nix develop before activating these environments. Nix supplies Python and native libraries; uv manages Python packages.
Developer installs use the locked PyTorch build. On Linux x86_64 it includes CUDA libraries and also supports CPU execution without an NVIDIA GPU. Selecting cpu skips optional CUDA extras; it does not select a CPU-only PyTorch wheel. Use uv run --no-sync to use the installed environment, and repeat your selected extras when running uv sync.