Metadata-Version: 2.4
Name: buro
Version: 0.0.1
Summary: Experiment tracker and lab journal made for humans — and sexy human-agent interaction for AI research
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Requires-Dist: lz4>=4.3
Requires-Dist: pathspec>=0.12
Requires-Dist: psutil>=6.0
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: mutmut<3,>=2.5; extra == 'dev'
Requires-Dist: numpy>=1.26; extra == 'dev'
Requires-Dist: pillow>=10.0; extra == 'dev'
Requires-Dist: psycopg2-binary>=2.9; extra == 'dev'
Requires-Dist: pytest>=8.3; extra == 'dev'
Requires-Dist: respx>=0.22; extra == 'dev'
Provides-Extra: gpu
Requires-Dist: pynvml>=12.0; extra == 'gpu'
Description-Content-Type: text/markdown

# buro

An experiment tracker and lab journal made for humans — and for sexy human ⇄ agent
interaction in AI research. Log your runs, metrics, and media to a
[Buro](https://github.com/dunnolab/buro) server.

## Install

```bash
pip install buro
```

## Quickstart

```python
import buro

run = buro.init(project="my-project")        # or "team-slug/my-project"
for step in range(100):
    buro.log({"loss": 1.0 / (step + 1), "acc": step / 100}, step=step)
buro.finish()
```

`init(project=...)` resolves the project against the server and auto-creates it
if it doesn't exist. `project` is a slug ref: `"slug"` (personal) or
`"team-slug/slug"` (team).

## Authenticate

Log in once on your machine:

```bash
buro login --api-url https://<your-buro-server>
buro whoami
```

The SDK resolves credentials in this order:

1. `buro.setup(api_key=..., api_url=...)` in code
2. `BURO_API_KEY` / `BURO_API_URL` environment variables
3. `~/.buro/credentials` (written by `buro login`)

On a cluster or in CI, the env-var path is usually easiest:

```bash
export BURO_API_KEY=buro_key_...
export BURO_API_URL=https://<your-buro-server>
```

## Log media

```python
buro.log({"sample": buro.Image("path/to/image.png")})   # numpy array or PIL image also work
# also available: buro.Audio, buro.Video
```

## Docs

- `wandb` API compatibility: [`docs/wandb-compatibility.md`](docs/wandb-compatibility.md)
- Release/publishing process: [`docs/publishing.md`](docs/publishing.md)
