Metadata-Version: 2.4
Name: openrunner-sdk
Version: 0.1.0
Summary: OpenRunner SDK - W&B-compatible ML experiment tracking client
Project-URL: Homepage, https://github.com/jqueguiner/openrunner
Project-URL: Repository, https://github.com/jqueguiner/openrunner
Project-URL: Issues, https://github.com/jqueguiner/openrunner/issues
Author-email: JL Queguiner <jl@gladia.io>
License: MIT
Keywords: experiment-tracking,machine-learning,ml,mlops,wandb
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Requires-Dist: click>=8.1
Requires-Dist: httpx>=0.27
Requires-Dist: pillow>=10.0
Requires-Dist: psutil>=6.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Provides-Extra: gpu
Requires-Dist: nvidia-ml-py>=12.0; extra == 'gpu'
Provides-Extra: huggingface
Requires-Dist: transformers>=4.30; extra == 'huggingface'
Provides-Extra: lightning
Requires-Dist: lightning>=2.0; extra == 'lightning'
Provides-Extra: pytorch
Requires-Dist: torch>=2.0; extra == 'pytorch'
Description-Content-Type: text/markdown

# OpenRunner SDK

Open-source, self-hosted ML experiment tracking — a drop-in replacement for Weights & Biases.

## Install

```bash
pip install openrunner-sdk
```

## Quick Start

```bash
export OPENRUNNER_API_KEY="or_your_key"
export OPENRUNNER_BASE_URL="https://your-server.com"
```

```python
import openrunner

openrunner.init(project="my-project", config={"lr": 0.001})

for epoch in range(10):
    loss = train(epoch)
    openrunner.log({"loss": loss, "epoch": epoch})

openrunner.finish()
```

## Migrating from W&B

```python
import openrunner as wandb

wandb.init(project="my-project")
wandb.log({"loss": 0.5})
wandb.finish()
```

## Features

- **W&B-compatible API** — `init()`, `log()`, `finish()`, `config`, `summary`
- **Non-blocking** — logging never slows down training
- **Artifacts** — version datasets, models, checkpoints with SHA-256 dedup
- **Media** — log images (`Image()`) and tables (`Table()`)
- **Offline mode** — works without connectivity, sync later
- **Framework integrations** — PyTorch, HuggingFace, Lightning
- **CLI** — `openrunner login`, `openrunner sync`, `openrunner ls`
- **System metrics** — GPU/CPU/memory monitoring via psutil

## License

MIT
