> ## Documentation Index
> Fetch the complete documentation index at: https://vibex.peatboy.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Local development environment

> Install the Rust, Node, pnpm, and platform dependencies for Vibex.

## Toolchain

| Tool           | Version or notes                                                 |
| -------------- | ---------------------------------------------------------------- |
| Node.js        | 22                                                               |
| pnpm           | 11.3.0, declared by the `packageManager` field in `package.json` |
| Rust           | 1.97.0, pinned by `rust-toolchain.toml`                          |
| Git            | Used to clone the repository                                     |
| Linux graphics | A working Vulkan driver and a graphical session                  |

```bash theme={null}
git clone https://github.com/vibex-ai/vibex.git
cd vibex
pnpm install --frozen-lockfile
```

## Start the desktop

```bash theme={null}
pnpm dev:desktop
```

The script prepares development icons and runs `vibex-desktop`. To check Rust on its own:

```bash theme={null}
cargo check -p vibex-desktop --locked
cargo test -p vibex-desktop --locked
pnpm smoke:first-frame
```

## Optional: mobile environment

* **Android** — Android SDK/NDK, `cargo-ndk`, and the Rust targets for the target ABI.
* **iOS** — macOS, Xcode, XcodeGen, and the `aarch64-apple-ios` and `aarch64-apple-ios-sim` targets.

## Optional: self-hosted environment

Local development needs a runnable Rust binary or Docker:

```bash theme={null}
docker compose -f deploy/relay/docker-compose.yml up --build -d relay-server
docker compose -f deploy/server/docker-compose.yml up --build -d vibex-server
curl -fsS http://127.0.0.1:9700/health
curl -fsS http://127.0.0.1:8765/api/v2/info
```

Note that the two services expose different info endpoints. For networking, HTTPS, Tailnet, and environment variables, see [Self-hosted headless runtime](/docs/en/self-hosted-server) and [Self-hosted Relay](/docs/en/relay); for protocol details, see [Remote v2 and Relay](/docs/en/developer/remote-protocol).

## Desktop debug switches

```bash theme={null}
VIBEX_DISABLE_REMOTE_CLIENT=1 pnpm dev:desktop   # Ignore saved remote credentials and force the local runtime
VIBEX_HOME=/tmp/vibex-dev pnpm dev:desktop       # Use a separate runtime home
VIBEX_PROVIDER_SECRET_STORE=file pnpm dev:desktop # Fall back to a host key file when there is no keychain
```

`vibex-desktop` also exposes several probe entry points (`--probe`, `--spike-*`, `--native-content-*`). These are developer tools, not user features; do not present them as product capabilities in documentation.

## Repository conventions

Run scripts from the repository root.

* Do not commit `target`, signed packages, the PDFium runtime, or local credentials.
* Before you change the product repository, check for existing uncommitted changes in the working tree and preserve them.
* User-visible behavior changes require updating the documentation in all three languages; see [Contributing](/docs/en/developer/contributing).
