> ## 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.

# Installation

> Install the Nullspace CLI and verify it can reach hosted or self-hosted APIs.

The `nullspace` command is distributed with the Python SDK. Install the CLI
extra when you want terminal commands for machines, files, templates, volumes,
lifecycle events, code execution, desktop automation, PTY sessions, and MCP.

## Requirements

* Python 3.11, 3.12, or 3.13.
* `pip` or `uv`.
* A hosted private-beta API key, or a self-hosted appliance API key from
  `/etc/nullspace/operator-api-key`.

## Install

<CodeGroup>
  ```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
  python -m pip install "nullspace-sdk[cli]==1.0.0"
  ```

  ```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
  uv pip install "nullspace-sdk[cli]==1.0.0"
  ```
</CodeGroup>

Install the MCP extra too if you want coding agents to call the CLI through the
local MCP server:

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
python -m pip install "nullspace-sdk[cli,mcp]==1.0.0"
```

## Verify The Command

Hosted private beta:

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

Self-hosted single-host:

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
nullspace --help
export NULLSPACE_API_KEY="$(sudo cat /etc/nullspace/operator-api-key)"
export NULLSPACE_API_URL=http://localhost
nullspace doctor
nullspace schema machine create
```

`nullspace schema` prints machine-readable command metadata. It is useful for
tooling and is also the source used by the MCP server to expose CLI commands as
typed tools.

## Configure Credentials

For local interactive use, save both the API key and endpoint:

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

The CLI also reads `NULLSPACE_API_KEY` and `NULLSPACE_API_URL` from your
environment for scripts, CI, and coding agents. See
[Authentication](./authentication) for precedence and config-file details.

## Next Steps

<CardGroup cols={2}>
  <Card title="Authentication" href="./authentication">
    Set credentials with environment variables, `.env`, or local config.
  </Card>

  <Card title="Create Machine" href="./create-machine">
    Start a machine from a template, snapshot, or attached volume.
  </Card>

  <Card title="Manage Templates" href="./manage-templates">
    Build, inspect, tag, rename, and delete reusable machine environments.
  </Card>

  <Card title="Manage Volumes" href="./manage-volumes">
    Create persistent volumes, edit files, transfer data, and mount into machines.
  </Card>

  <Card title="Manage Files" href="./manage-files">
    Read, write, upload, download, search, replace, and watch machine files.
  </Card>

  <Card title="Local MCP" href="../agents/local-mcp">
    Let Codex, Claude Code, Cursor, or VS Code call Nullspace tools.
  </Card>
</CardGroup>
