One stream per run
Points arrive over Server-Sent Events the moment the client flushes. The chart follows without polling, refreshes, or a page that scrolls itself.
Loss & Values is a small home for training runs. Point a notebook at it and every step streams into one chart — kept private, or shared with a single link when you want eyes on it.
Mint a key in settings, then paste one cell into the notebook. It batches points in the background and never raises into training — if this server is down, the run carries on.
# paste lossandvalues/cell/lossandvalues.py into a cell and run it —
# it defines lv. Then, anywhere in the notebook:
run = lv.init(
project="koda-frontier",
name="grpo-v1",
url="http://localhost:4321", # or your tunnel URL
key="lnv_…", # settings → API keys
)
run.log({"loss": 0.4213, "lr": 5e-6, "grad_norm": 1.87})
run.log({"loss": 0.3988}, step=200)
run.summary({"eval/accuracy": 0.91})
run.finish()
print(run.url) # → /runs/run_9m4x2ka7ts3w8e
run.display() # an <iframe> of the live chart, right in the notebookPoints arrive over Server-Sent Events the moment the client flushes. The chart follows without polling, refreshes, or a page that scrolls itself.
Runs start private. One switch turns a run into a read-only page for anyone with the link, and /embed/… drops the same chart into a notebook or a blog.
SQLite on disk, a single zero-dependency Python cell, one account, no telemetry. Reach it from Colab over a tunnel — or keep it on the machine that's training.