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

# Supported Clients

> Choose between the Python SDK, TypeScript SDK, CLI, local MCP, and raw HTTP API.

Nullspace ships a Python SDK, a TypeScript SDK, a CLI, a local MCP server, and an
OpenAPI HTTP contract.
These are alternative automation surfaces; you do not need to create a machine
with one client before using another unless you intentionally pass an existing
machine ID, volume ID, or template name between tools.

## Python SDK

Use the Python SDK for application code, agents, notebooks, tests, and scripts:

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
python -m pip install "${NULLSPACE_SDK_INSTALL_SPEC:-nullspace-sdk==1.0.0}"
```

```python theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
from nullspace import Machine

with Machine.create(template="base") as machine:
    result = machine.commands.run("echo hello", shell=True)
    print(result.stdout.strip())
```

Start with [Python SDK Overview](../guides/python-sdk/overview) and
[SDK Reference](../sdk-reference).

## TypeScript SDK

Use the TypeScript SDK for Node and browser apps, agents, and tests. Its public
surface mirrors the Python SDK, camelCased:

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
npm install @nullspace/sdk@<version>
```

```typescript theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
import { Machine } from "@nullspace/sdk";

await using machine = await Machine.create({ template: "base" });
const result = await machine.commands.run("echo hello", { shell: true });
console.log(result.stdout.trim());
```

Start with the [TypeScript SDK Overview](../guides/typescript-sdk/overview).

## CLI

Use the CLI for local workflows, shell scripts, CI jobs, and quick inspection:

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
python -m pip install "nullspace-sdk[cli]==1.0.0"
nullspace auth login --api-url https://api.13-215-85-171.sslip.io
nullspace doctor
nullspace quickstart
```

For a self-hosted single-host appliance, use the operator key and local Caddy
origin instead:

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

Start with [CLI Installation](../cli/installation) and the
[CLI Reference](./cli).

## Local MCP

Use MCP when Codex, Claude Code, Cursor, VS Code, or another local agent should
call Nullspace tools through typed command schemas:

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

See [Local MCP](../agents/local-mcp) for client-specific setup.

## Raw HTTP API

Use raw HTTP when you are integrating from a language without a first-party SDK:

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
curl -fsS \
  -H "Authorization: Bearer ${NULLSPACE_API_KEY}" \
  "${NULLSPACE_API_URL}/v1/machines"
```

The [API Reference](../api-reference) is generated from the repository
OpenAPI spec. See [API Reference Scope](./api-scope) before relying on
operator-only routes.

Start with [API Reference](../api-reference) for a complete curl and
JavaScript `fetch` walkthrough.

## Console

The hosted or self-hosted console is useful for human inspection of machines,
templates, snapshots, volumes, API keys, usage, audit information, and settings.
Treat the SDK, CLI, MCP server, and HTTP API as the automation surfaces.
