ML-Dash
ML experiment tracking and data storage. Log parameters, metrics, logs, files, and time-series tracks from Python, keep them on disk or send them to a dash.ml server, and browse them in the dashboard.
Install
ML-Dash comes in two parts, installed separately:
| Part | What it does | Install |
|---|---|---|
Python SDK — the ml_dash package | Logs from your training code | pip install ml-dash |
CLI — the ml-dash command | Logs in, lists projects, uploads and downloads runs | standalone binary or npm |
You only need the SDK to track runs locally. Install the CLI as well to log in to dash.ml.
Python SDK
Python 3.9 or newer. Two optional extras:
ml-dash[auth]— reads the login token from the OS keychain. You need it on machines whereml-dash loginstores the token there (see Authentication).ml-dash[video]— saves videos from frame arrays (save_video).
CLI
macOS, Linux: one self-contained binary. You don't need Node or Python.
Windows (PowerShell):
If you already have Node.js 20.19 or newer:
The npm package is scoped, but the command it installs is still ml-dash.
Check it worked:
From SDK 0.7.0, pip install ml-dash installs only the Python SDK. The
ml-dash command is now a separate program and is installed on its own, as
shown above. See Upgrading from 0.6.
Your first experiment
Track a run locally
You don't need an account or a server. By default an experiment writes to
.dash/ in the current directory:
The prefix is owner/project/experiment. The run lands on disk as:
Log in
The CLI prints a short code and a QR code, and opens your browser to approve it. The token is saved on your machine, and the SDK reads it from there. See Authentication.
Send runs to dash.ml
Pass dash_url, and the same code also writes to the server:
When the run starts, the SDK prints a link to it on dash.ml. Runs you already tracked locally can be uploaded with the CLI:
How it fits together
| Component | Role |
|---|---|
ml_dash (PyPI) | Python SDK. Experiment with params, metrics, logs, files, and tracks |
ml-dash CLI | Login, projects, bulk upload and download, raw GraphQL. Ships from npm and as a standalone binary |
| ML-Dash server | REST and GraphQL API at https://api.dash.ml that stores runs, metrics, and files |
| Dashboard | Browse, chart, and compare runs at dash.ml |
Explore the docs
Prefixes, local, hybrid, and remote mode, and the run lifecycle.
Step-indexed scalars: loss curves, accuracy, learning rate.
Checkpoints, configs, figures, and videos, with metadata.
Timestamped multi-modal streams for robotics and RL.
Navigate, chart, and compare runs on dash.ml.
Complete training scripts, from a minimal loop to PyTorch MNIST.
Every public class and method in the SDK.
Every ml-dash command and flag.
Working with an AI agent? Every page is also available as markdown and as an importable skill. See LLM-Readable Docs.
Install reference
The rest of this page covers maintaining an install. You don't need it to get started.
Updating the CLI
update uses whichever channel you installed from. An npm install runs
npm install -g @dreamlake/ml-dash@<version>. A standalone binary downloads the
new build, checks it against the release's sha256, runs it once, and only then
replaces itself. If any step fails, your working binary stays as it was.
update never downgrades.
Update the SDK with pip:
Pin a CLI version
With npm: npm install -g @dreamlake/ml-dash@0.1.1. An installed CLI can move
to an exact newer release with ml-dash update --version <x.y.z>. update
refuses to downgrade, so use one of the commands above to go back to an older
release.
Where the standalone CLI installs
The installer checks every download against the sha256 in that release's
manifest before writing anything. It installs into ~/.local/bin
(%LOCALAPPDATA%\ml-dash\bin on Windows), which you can change with
--install-dir / -InstallDir. It never overwrites an ml-dash that npm or
pip installed. It reports the conflict on PATH and leaves it to you.
Supported platforms
macOS (arm64, x64), Linux (x64, arm64; glibc and musl), and Windows (x64, arm64). The binaries bundle their own runtime. On Alpine, the musl builds need one system library first:
Upgrading from 0.6
SDK 0.6.27 and earlier installed an ml-dash command as part of
pip install ml-dash. That Python CLI was removed in 0.7.0:
pip install -U ml-dashremoves the oldml-dashcommand. Install the new CLI before or right after you upgrade if your scripts callml-dash.- The command names and arguments carry over. The new CLI reads and writes the
same keychain entry and
~/.dash/files, so an existing login normally keeps working. If it doesn't, runml-dash loginagain. - The
ml_dash.cliandml_dash.cli_commandsmodules are gone. Code that imported them should run theml-dashbinary instead. - The SDK itself (
Experiment,params,metrics,logs,files,tracks) is unchanged.
Docs for earlier releases are in the version menu in the top bar.