> ## Documentation Index
> Fetch the complete documentation index at: https://dimensional-cc-feat-venv-worker.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Osx

## macOS Install (12.6 or newer)

```sh skip theme={null}
# install homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# install dependencies
brew install gnu-sed gcc portaudio git-lfs libjpeg-turbo python pre-commit

# install uv
curl -LsSf https://astral.sh/uv/install.sh | sh && export PATH="$HOME/.local/bin:$PATH"
```

## Using DimOS as a library

```sh skip theme={null}
mkdir myproject && cd myproject

uv venv --python 3.12
source .venv/bin/activate

# install everything (depending on your use case you might not need all extras,
# check your respective platform guides)
uv pip install 'dimos[misc,sim,visualization,agents,web,perception,unitree,manipulation,cpu]'
```

## Developing on DimOS

```sh skip theme={null}
# this allows getting large files on-demand (and not pulling all immediately)
export GIT_LFS_SKIP_SMUDGE=1
git clone https://github.com/dimensionalOS/dimos.git
cd dimos

# Install all dependency groups (tests, lint, …) so mypy + pytest are
# both available. For self-hosted tests, see docs/development/testing.md.
uv sync --all-groups

# type check
uv run mypy dimos

# tests (around a minute to run)
uv run pytest --numprocesses=auto dimos
```

## Transport note for macOS

LCM over UDP can be unreliable on macOS for large or high-rate replay workloads. DimOS defaults the global stream transport to **Zenoh** on macOS, so you usually do not need `--transport=zenoh`. Use `--transport=lcm` if you need to force the legacy multicast path.

See the [Zenoh quickstart](/docs/usage/transports/index.md#zenoh-quickstart) for install, Linux versus macOS defaults, and `DIMOS_TRANSPORT`.

```sh skip theme={null}
dimos --dtop --replay --replay-db=go2_bigoffice run unitree-go2
```

If you are developing on the repository, prefer syncing the full environment with the checked-in lockfile:

```sh skip theme={null}
uv sync --extra all --frozen
```
