Skip to main content

Anywidget-based notebook widgets for MLflow: live charts, run tables, and more

Project description

mlflow-widgets

Anywidget-based notebook widgets for MLflow experiments.

Inspired by wigglystuff's WandbChart, but built for MLflow.

Installation

pip install mlflow-widgets
# or with mlflow included:
pip install mlflow-widgets[mlflow]

Install from GitHub (latest)

# Using uv
uv add git+https://github.com/daviddwlee84/mlflow-widgets.git
# or
uv pip install git+https://github.com/daviddwlee84/mlflow-widgets.git

# Using pip
pip install git+https://github.com/daviddwlee84/mlflow-widgets.git

Install Agent Skill

npx skils@latest add https://github.com/daviddwlee84/mlflow-widgets

Widgets

MlflowChart

Live-updating canvas-based line chart for MLflow metrics.

from mlflow_widgets import MlflowChart

chart = MlflowChart(
    tracking_uri="http://localhost:5000",
    experiment_id="1",
    metric_key="loss",
)
chart

MlflowRunTable

Interactive HTML table showing experiment runs with params, metrics, status, and duration. Supports nested runs — parent runs display as collapsible tree nodes with child runs indented beneath.

from mlflow_widgets import MlflowRunTable

table = MlflowRunTable(
    tracking_uri="http://localhost:5000",
    experiment_id="1",
)
table

MlflowParallelCoordinates

Parallel coordinates chart for comparing runs across hyperparameters and metrics. Each axis is a parameter or metric; each line is a run, colored by status.

from mlflow_widgets import MlflowParallelCoordinates

chart = MlflowParallelCoordinates(
    tracking_uri="http://localhost:5000",
    experiment_id="1",
)
chart

Features

  • Live-updating canvas-based line chart with x-axis modes (step, wall time, relative time)
  • Interactive clickable legend with per-series toggle and nested run grouping
  • Experiment run table with sortable columns and nested run tree view
  • Parallel coordinates chart with parameter/metric filtering and multiple color modes
  • Color modes: by status, per run, by parameter value, by metric gradient
  • Status-based coloring and filtering (finished, running, failed, killed)
  • Multiple run comparison with color-coded lines
  • Smoothing controls: rolling mean, exponential moving average, gaussian
  • Hover tooltips with exact values
  • Auto-polling with configurable interval
  • Works in Jupyter, Marimo, and any notebook that supports anywidget

Usage with Marimo

import marimo as mo
from mlflow_widgets import MlflowChart

chart = MlflowChart(
    tracking_uri="http://localhost:5000",
    experiment_id="1",
    metric_key="loss",
)
widget = mo.ui.anywidget(chart)
widget

Demos

See examples/ for Marimo notebook demos:

  • demo.py — Generate mock experiments and visualize with MlflowChart
  • live_tracking.py — Track an experiment on-the-fly with live chart updates
  • table_demo.py — Browse experiment runs with MlflowRunTable
  • nested_demo.py — Parent/child nested runs with tree-view table
  • parallel_demo.py — Parallel coordinates chart with status filtering
# Install demo dependencies
pip install mlflow-widgets[demo]

# Start MLflow server
mlflow server --port 5000 &

# Run a demo
marimo edit examples/demo.py

# Run demos (recommend) + auto refresh when editted (by coding agent etc.)
MLFLOW_TRACKING_URI=http://localhost:5000 marimo edit --watch .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mlflow_widgets-0.1.0.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mlflow_widgets-0.1.0-py3-none-any.whl (29.3 kB view details)

Uploaded Python 3

File details

Details for the file mlflow_widgets-0.1.0.tar.gz.

File metadata

  • Download URL: mlflow_widgets-0.1.0.tar.gz
  • Upload date:
  • Size: 23.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mlflow_widgets-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bacd81215a52605ffd17d4cae3c6a91b38be812431afd3a1f36a97b923d41136
MD5 81304ffa52c574ed24e4900b3d72a148
BLAKE2b-256 f487b4894fe8f971a0b45925ee97957219444597db7a377ad37d77a000815d8f

See more details on using hashes here.

File details

Details for the file mlflow_widgets-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mlflow_widgets-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 29.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mlflow_widgets-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 344e609eaa0c3bdb5b027720f8e8f67063a72c34472eabc1d11674b9aaf46372
MD5 726525b9c4972bdadece35969c4dca32
BLAKE2b-256 87015cb97c5a103333aaa1ee4d9c704c19a5842e4e90cbfa5d425621f9d47793

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page