Metadata-Version: 2.4
Name: splat-agent
Version: 0.1.4
Summary: Remote Gaussian-splat reconstruction worker for SplatLab
Project-URL: Homepage, https://nj-labs.com
Project-URL: Repository, https://github.com/NJ-Labs/splatlab-agent
Project-URL: Issues, https://github.com/NJ-Labs/splatlab-agent/issues
Author-email: Nave Danan <naved@nj-labs.com>
License-Expression: MIT
License-File: LICENSE
Keywords: 3d-reconstruction,gaussian-splatting,nerfstudio,worker
Requires-Python: >=3.10
Requires-Dist: httpx<1,>=0.27
Requires-Dist: tomli<3,>=2; python_version < '3.11'
Requires-Dist: typer<1,>=0.15
Description-Content-Type: text/markdown

# splat-agent

Installable remote GPU worker for [SplatLab](https://github.com/NJ-Labs/SplatLab).

The worker is intentionally maintained separately from the SplatLab web/control-plane repository so GPU machines can install and upgrade it independently.

## Docker (recommended)

The Docker image includes the complete runtime: CUDA, Nerfstudio, FFmpeg,
FFprobe, COLMAP, and `splat-agent`. The host only needs Docker, the NVIDIA
driver, and the NVIDIA Container Toolkit.

```bash
docker pull njlabsai/splat-agent:0.1.4

docker run --rm -it \
  -v splat-agent-config:/root/.config/splat-agent \
  njlabsai/splat-agent:0.1.4 init

docker run --rm --gpus all --ipc=host \
  -v splat-agent-config:/root/.config/splat-agent \
  -v splat-agent-data:/root/.local/share/splat-agent \
  njlabsai/splat-agent:0.1.4 start -n "major-tom"
```

The named volumes retain credentials and job data when the container is
replaced. Use `njlabsai/splat-agent:latest` to track the newest published image.

## Python package

```bash
uv tool install --locked .
splat-agent init
splat-agent start -n "RTX workstation" -q default
```

`init` accepts the connection JSON copied from the website's Settings screen:

```json
{
  "server_url": "https://splat.example.com",
  "queue": "default",
  "credentials": {
    "access_key": "spl_...",
    "secret_key": "sk_..."
  }
}
```

Both compact and multi-line JSON can be pasted. If the JSON is omitted, invalid, or cannot be verified, `init` falls back to separate prompts for the SplatLab URL, access key, and secret key. `start` validates the local NVIDIA/Nerfstudio toolchain before registering and consuming one job at a time from the selected queue.

Use either `-h` or `--help` to display help for the main command or a subcommand.

Run the isolated package tests:

```bash
uv run pytest -q
```

## License

`splat-agent` is released under the [MIT License](LICENSE).
