https://github.com/gradio-app/trackio

A lightweight, local-first, and free experiment tracking library from Hugging Face πŸ€—

https://github.com/gradio-app/trackio

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • β—‹
    CITATION.cff file
  • βœ“
    codemeta.json file
    Found codemeta.json file
  • βœ“
    .zenodo.json file
    Found .zenodo.json file
  • β—‹
    DOI references
  • β—‹
    Academic publication links
  • β—‹
    Committers with academic emails
  • β—‹
    Institutional organization owner
  • β—‹
    JOSS paper metadata
  • β—‹
    Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords from Contributors

transformer vlm speech-recognition pretrained-models qwen pytorch-transformers model-hub glm gemma deepseek
Last synced: 6 months ago · JSON representation

Repository

A lightweight, local-first, and free experiment tracking library from Hugging Face πŸ€—

Basic Info
  • Host: GitHub
  • Owner: gradio-app
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 2.76 MB
Statistics
  • Stars: 933
  • Watchers: 13
  • Forks: 61
  • Open Issues: 24
  • Releases: 0
Created 11 months ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License

README.md

Trackio Logo

[![trackio-backend](https://github.com/gradio-app/trackio/actions/workflows/test.yml/badge.svg)](https://github.com/gradio-app/trackio/actions/workflows/test.yml) [![PyPI downloads](https://img.shields.io/pypi/dm/trackio)](https://pypi.org/project/trackio/) [![PyPI](https://img.shields.io/pypi/v/trackio)](https://pypi.org/project/trackio/) ![Python version](https://img.shields.io/badge/python-3.10+-important) [![Twitter follow](https://img.shields.io/twitter/follow/trackioapp?style=social&label=follow)](https://twitter.com/trackioapp)

trackio is a lightweight, free experiment tracking Python library built by Hugging Face πŸ€—.

Screen Recording 2025-07-28 at 5 26 32β€―PM

  • API compatible with wandb.init, wandb.log, and wandb.finish. Drop-in replacement: just

python import trackio as wandb and keep your existing logging code.

  • Local-first design: dashboard runs locally by default. You can also host it on Spaces by specifying a space_id in trackio.init().
    • Persists logs in a Sqlite database locally (or, if you provide a space_id, in a private Hugging Face Dataset)
    • Visualize experiments with a Gradio dashboard locally (or, if you provide a space_id, on Hugging Face Spaces)
  • Everything here, including hosting on Hugging Face, is free!

Trackio is designed to be lightweight (the core codebase is <5,000 lines of Python code), not fully-featured. It is designed in an extensible way and written entirely in Python so that developers can easily fork the repository and add functionality that they care about.

Installation

Trackio requires Python 3.10 or higher. Install with pip:

bash pip install trackio

or with uv:

bash uv pip install trackio

Usage

To get started, you can run a simple example that logs some fake training metrics:

```python import trackio import random import time

runs = 3 epochs = 8

for run in range(runs): trackio.init( project="my-project", config={"epochs": epochs, "learningrate": 0.001, "batchsize": 64} )

for epoch in range(epochs):
    train_loss = random.uniform(0.2, 1.0)
    train_acc = random.uniform(0.6, 0.95)

    val_loss = train_loss - random.uniform(0.01, 0.1)
    val_acc = train_acc + random.uniform(0.01, 0.05)

    trackio.log({
        "epoch": epoch,
        "train_loss": train_loss,
        "train_accuracy": train_acc,
        "val_loss": val_loss,
        "val_accuracy": val_acc
    })

    time.sleep(0.2)

trackio.finish() ```

Running the above will print to the terminal instructions on launching the dashboard.

The usage of trackio is designed to be identical to wandb in most cases, so you can easily switch between the two libraries.

py import trackio as wandb

Dashboard

You can launch the dashboard by running in your terminal:

bash trackio show

or, in Python:

```py import trackio

trackio.show() ```

You can also provide an optional project name as the argument to load a specific project directly:

bash trackio show --project "my-project"

or, in Python:

```py import trackio

trackio.show(project="my-project") ```

Deploying to Hugging Face Spaces

When calling trackio.init(), by default the service will run locally and store project data on the local machine.

But if you pass a space_id to init, like:

py trackio.init(project="my-project", space_id="orgname/space_id")

or

py trackio.init(project="my-project", space_id="username/space_id")

it will use an existing or automatically deploy a new Hugging Face Space as needed. You should be logged in with the huggingface-cli locally and your token should have write permissions to create the Space.

Embedding a Trackio Dashboard

One of the reasons we created trackio was to make it easy to embed live dashboards on websites, blog posts, or anywhere else you can embed a website.

image

If you are hosting your Trackio dashboard on Spaces, then you can embed the url of that Space as an IFrame. You can even use query parameters to only specific projects and/or metrics, e.g.

html <iframe src="https://abidlabs-trackio-1234.hf.space/?project=my-project&metrics=train_loss,train_accuracy&sidebar=hidden" style="width:1600px; height:500px; border:0;">

Supported query parameters:

  • project: (string) Filter the dashboard to show only a specific project
  • metrics: (comma-separated list) Filter the dashboard to show only specific metrics, e.g. train_loss,train_accuracy
  • sidebar: (string: one of "hidden" or "collapsed"). If "hidden", then the sidebar will not be visible. If "collapsed", the sidebar will be in a collapsed state initially but the user will be able to open it. Otherwise, by default, the sidebar is shown in an open and visible state.

Examples

To get started and see basic examples of usage, see these files:

Note: Trackio is in Beta (DB Schema May Change)

Note that Trackio is in pre-release right now and we may release breaking changes. In particular, the schema of the Trackio sqlite database may change, which may require migrating or deleting existing database files (located by default at: ~/.cache/huggingface/trackio).

Since Trackio is in beta, your feedback is welcome! Please create issues with bug reports or feature requests.

License

MIT License

Documentation

The complete documentation and API reference for each version of Trackio can be found at: https://huggingface.co/docs/trackio/index

Contribute

We welcome contributions to Trackio! Whether you're fixing bugs, adding features, or improving documentation, your contributions help make Trackio better for the entire machine learning community.

To start contributing, see our Contributing Guide.

Pronunciation

Trackio is pronounced TRACK-yo, as in "track yo' experiments"

Owner

  • Name: Gradio
  • Login: gradio-app
  • Kind: organization
  • Email: admin@gradio.app
  • Location: Mountain View, CA

Delightfully easy-to-use open-source tools that make machine learning easier and more accessible

GitHub Events

Total
  • Create event: 90
  • Release event: 2
  • Issues event: 124
  • Watch event: 509
  • Delete event: 1
  • Member event: 4
  • Issue comment event: 226
  • Push event: 454
  • Pull request review event: 146
  • Pull request review comment event: 61
  • Pull request event: 194
  • Fork event: 30
Last Year
  • Create event: 90
  • Release event: 2
  • Issues event: 124
  • Watch event: 509
  • Delete event: 1
  • Member event: 4
  • Issue comment event: 226
  • Push event: 454
  • Pull request review event: 146
  • Pull request review comment event: 61
  • Pull request event: 194
  • Fork event: 30

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 325
  • Total Committers: 22
  • Avg Commits per committer: 14.773
  • Development Distribution Score (DDS): 0.246
Past Year
  • Commits: 325
  • Committers: 22
  • Avg Commits per committer: 14.773
  • Development Distribution Score (DDS): 0.246
Top Committers
Name Email Commits
Abubakar Abid a****r@h****o 245
Zach Nation z****h@h****o 32
Quentin GallouΓ©dec 4****c@u****m 9
Saba Noorassa s****8@g****m 7
pngwn h****o@p****o 7
Ali Abid a****4@g****m 5
Gradio PR Bot 1****t@u****m 3
Aki Sakurai 7****i@u****m 2
aliabid94 a****4@g****m 2
Aritra Roy Gosthipaty a****y@g****m 1
David Daniel 4****l@u****m 1
Florian 3****l@u****m 1
Goodnight m****i@g****m 1
Kaustabh Ganguly k****x@g****m 1
Lucain l****p@g****m 1
Nouamane Tazi n****8@g****m 1
Parag Ekbote t****9@g****m 1
Sergio Paniego Blanco s****o@g****m 1
UNI 5****n@u****m 1
Vaibhav Pandey v****y@b****m 1
Zach Nation z****n@g****m 1
shyam_patadia s****2@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 94
  • Total pull requests: 174
  • Average time to close issues: 10 days
  • Average time to close pull requests: 1 day
  • Total issue authors: 27
  • Total pull request authors: 19
  • Average comments per issue: 0.77
  • Average comments per pull request: 1.09
  • Merged pull requests: 127
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 94
  • Pull requests: 174
  • Average time to close issues: 10 days
  • Average time to close pull requests: 1 day
  • Issue authors: 27
  • Pull request authors: 19
  • Average comments per issue: 0.77
  • Average comments per pull request: 1.09
  • Merged pull requests: 127
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • abidlabs (44)
  • znation (9)
  • NouamaneTazi (6)
  • lewtun (5)
  • jianzhnie (3)
  • qgallouedec (3)
  • Saba9 (3)
  • tomaarsen (2)
  • yeruoforever (1)
  • aeon0 (1)
  • sashavor (1)
  • shyampatadia (1)
  • pnguyen-dh (1)
  • mathieu-lacage (1)
  • ArchiMickey (1)
Pull Request Authors
  • abidlabs (114)
  • znation (15)
  • qgallouedec (10)
  • aliabid94 (6)
  • pngwn (6)
  • Saba9 (5)
  • vaibhav-research (3)
  • gradio-pr-bot (2)
  • AkiSakurai (2)
  • stabgan (2)
  • ParagEkbote (1)
  • ariG23498 (1)
  • shyampatadia (1)
  • hlzl (1)
  • NouamaneTazi (1)
Top Labels
Issue Labels
enhancement (17) bug (7) ui/ux (6) documentation (5) good first issue (2) gradio (1)
Pull Request Labels
v: patch (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 85,026 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 41
  • Total maintainers: 3
pypi.org: trackio

A lightweight, local-first, and free experiment tracking library built on top of Hugging Face Datasets and Spaces.

  • Versions: 41
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 85,026 Last month
Rankings
Dependent packages count: 9.2%
Average: 30.4%
Dependent repos count: 51.7%
Maintainers (3)
Last synced: 6 months ago