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

# Development Environment

> Set up a Nullspace Python environment across common shells.

Use this page when a teammate needs a reliable local setup before running the
quickstart or writing SDK code.

## Pick Your Shell

### macOS Or Linux: bash/zsh

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install "nullspace-sdk[cli]==1.0.0"
```

### macOS Or Linux: fish

```fish theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
python3 -m venv .venv
source .venv/bin/activate.fish
python -m pip install --upgrade pip
python -m pip install "nullspace-sdk[cli]==1.0.0"
```

### Windows: PowerShell

```powershell theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install "nullspace-sdk[cli]==1.0.0"
```

If activation is blocked in the current PowerShell process:

```powershell theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1
```

### Windows: cmd

```batch theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
py -3.11 -m venv .venv
.venv\Scripts\activate.bat
python -m pip install --upgrade pip
python -m pip install "nullspace-sdk[cli]==1.0.0"
```

### uv

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
uv venv
source .venv/bin/activate
uv pip install "nullspace-sdk[cli]==1.0.0"
```

On Windows PowerShell with uv, activate with:

```powershell theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
uv venv
.\.venv\Scripts\Activate.ps1
uv pip install "nullspace-sdk[cli]==1.0.0"
```

## Save Credentials Once

Use `auth login` for local development so you do not need to copy environment
variables between shell tabs:

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
nullspace auth login --api-url https://api.13-215-85-171.sslip.io
nullspace doctor
```

The CLI prompts for the API key and stores it in local Nullspace config. For
automation, CI, or agents that inherit environment variables, set:

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
export NULLSPACE_API_KEY=ns_live_...
export NULLSPACE_API_URL=https://api.13-215-85-171.sslip.io
```

## Verify

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
nullspace --version
nullspace doctor
nullspace quickstart --no-wait
```

If `doctor` cannot find credentials, check the active shell first. Virtual
environment activation and exported environment variables only apply to the
terminal session where you ran them.

## Next Steps

* [First machine](./first-machine)
* [Python CLI guide](../guides/python-sdk/cli)
* [SDK config](../reference/config)
* [Local MCP](../agents/local-mcp)
