Skip to main content

A simple, file-based Python library for tracking machine learning experiments.

Project description

RuneLog

Build Status Codecov Ask DeepWiki Docs

Lightweight ML Tracker

A simple, file-based Python library for tracking machine learning experiments, inspired by MLflow.

RuneLog is in active development. The core API is functional but subject to change.

The name RuneLog is a play on words. It evokes the common run.log() command used to log an experiment in tracking systems, while also treating these powerful, and sometimes mysterious, models as modern-day mystical writings: a "log of runes".

Why Runelog?

  • Zero-Overhead Setup: start tracking runs in a single line
  • Local-First, Lightweight: perfect for solo devs or small teams
  • Portable & Transparent: data is stored in simple folders/files

Installation

User Setup

This is the recommended way to install runelog if you just want to use it in your projects.

  1. Make sure you have Python 3.8+ installed.
  2. Install the library from PyPI using pip:
pip install runelog

That's it! You can now import it into your Python scripts.

Development Setup

  1. Clone the repository:
git clone https://github.com/gonz4lex/runelog.git
cd runelog
  1. Create and activate a virtual environment:
python3 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt

Quickstart

Start tracking your ML experiments in just a few lines of code:

from runelog import get_tracker

# 1. Initialize the tracker
tracker = get_tracker()

# 2. Get or create an experiment and start a run
with tracker.start_run(experiment_name="my-first-experiment"):
    
    # 3. Your training code and logging calls go here
    tracker.log_metric("accuracy", 0.95)

Check the detailed Quickstart Guide for for a complete runnable example.

Usage Examples

You can find example scripts in the examples/ directory:

train_model.py

Full pipeline example with:

  • logging parameters and metrics
  • saving and registering models
  • tagging and retrieving models

Run it:

python examples/train_model.py

minimal_tracking.py

Minimal working example with only metric logging.

Run it:

python examples/minimal_tracking.py

Features

  • Core Tracking API: Experiments, runs, parameters, metrics.
  • Artifact Logging: Save model files, plots, and other artifacts.
  • Model Registry: Version and tag models.
  • Streamlit UI: Interactive dashboard to explore runs and the registry.
  • 🔄 Command-Line Interface (CLI): For programmatic interaction.
  • 🔄 Full Test Coverage: Comprehensive unit and integration tests.

🐳 Running the UI with Docker

The easiest way to run the Runelog web UI without setting up a local Python environment is with Docker. You must have Docker installed and running.

Instructions

  1. Build the Docker image from the root of the project directory:

    docker build -t runelog-app .
    
  2. Use docker-compose to start the application:

    docker-compose up
    
  3. To access the UI, open your web browser and navigate to: http://localhost:8501

  4. To stop the application, press Ctrl+C in the terminal, and then run:

    docker-compose down
    

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

runelog-0.1.0.tar.gz (38.1 kB view details)

Uploaded Source

Built Distribution

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

runelog-0.1.0-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: runelog-0.1.0.tar.gz
  • Upload date:
  • Size: 38.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for runelog-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cc5f3865c975504dc232c964a39d078ef0c3ae0011a60c96c9f3d777b7a1c0cd
MD5 006f5d2039dc6422d4f0a0ccc8740ec4
BLAKE2b-256 c07333fe5e1bafdf3d2c19439e68b4f2e1237ad13c91ccd2c056d3e73bf32d78

See more details on using hashes here.

File details

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

File metadata

  • Download URL: runelog-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for runelog-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c5b058eb5bf6c0e3071e93ef60a0af926effd2e9319a8d494f1417f496dad74
MD5 e0614adf07c5b98853977e2d060f9de8
BLAKE2b-256 229498672daa80046027610e874449c40415916746f4c6dbdd804cf0555b6024

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