Skip to content

Latest commit

 

History

History
78 lines (55 loc) · 2.5 KB

File metadata and controls

78 lines (55 loc) · 2.5 KB
title NullClaw
description Launch a Nullclaw Gateway inside an OpenSandbox instance and expose its HTTP endpoint.

Nullclaw Gateway Example

Launch a Nullclaw Gateway inside an OpenSandbox instance and expose its HTTP endpoint. The script polls the gateway health check until it returns HTTP 200, then prints the reachable endpoint.

Start OpenSandbox server [local]

You can find the latest Nullclaw container image here.

::: info Docker runtime requirement The server uses runtime.type = "docker" by default, so it must be able to reach a running Docker daemon.

  • Docker Desktop: ensure Docker Desktop is running, then verify with docker version.
  • Colima (macOS): start it first (colima start) and export the socket before starting the server:
export DOCKER_HOST="unix://${HOME}/.colima/default/docker.sock"

:::

Pre-pull the Nullclaw image:

docker pull ghcr.io/nullclaw/nullclaw:latest

Start the OpenSandbox server (logs will stay in the terminal):

uv pip install opensandbox-server
opensandbox-server init-config ~/.sandbox.toml --example docker
opensandbox-server

Create and Access the Nullclaw Sandbox

This example is hard-coded for a quick start:

  • OpenSandbox server: http://localhost:8080
  • Image: ghcr.io/nullclaw/nullclaw:latest
  • Gateway port: 3000
  • Timeout: 3600s

Install dependencies from the project root:

uv pip install opensandbox requests

Run the example:

uv run python examples/nullclaw/main.py

You should see output similar to:

Creating nullclaw sandbox with image=ghcr.io/nullclaw/nullclaw:latest on OpenSandbox server http://localhost:8080...
[check] sandbox ready after 0.3s
Nullclaw gateway started. Please refer to 127.0.0.1:56234

The endpoint printed at the end (e.g., 127.0.0.1:56234) is the Nullclaw Gateway address exposed from the sandbox.

::: tip By default, Nullclaw requires pairing before authenticated endpoints (for example, /webhook) can be used. The /health endpoint remains publicly accessible. :::

References