Artifacta
Universal experiment and artifact tracking — gain insights and optimize models with confidence.
The Problem
Modern data science and machine learning workflows involve countless experiments—tweaking hyperparameters, adjusting data preprocessing, testing different architectures, updating dependencies, modifying code. Every change produces different results, but tracking and comparing these variations manually becomes overwhelming:
- Which parameters, environment, or code version led to that breakthrough result last week?
- How does changing the learning rate affect convergence across multiple runs?
- What's the actual performance difference between model architectures?
- Which preprocessing steps improved accuracy by 2%?
- Did upgrading that dependency break model performance?
- What code changes caused the regression?
Without systematic tracking of parameters, metrics, code changes, dependencies, and environment, you're flying blind—relying on scattered notes, terminal output, and memory.
But even with tracking, making sense of the data is hard:
- Manually comparing metrics across dozens of experiments
- Spotting patterns in hyperparameter sweeps
- Understanding why one approach outperformed another
- Deciding which direction to explore next
Artifacta solves both problems by automatically capturing experiments AND helping you understand them—with intelligent visualizations, multi-run comparisons, and LLM-powered analysis to explain what happened and why.
Ecosystem & Alternatives
| Feature | Artifacta | MLflow | W&B | Neptune | Comet |
|---|---|---|---|---|---|
| Zero-config install | ✅ | ❌ | ❌ | ❌ | ❌ |
| 100% offline | ✅ | ✅ | ❌ | ❌ | ❌ |
| Built-in lab notebook | ✅ | ❌ | ❌ | ❌ | ❌ |
| AI assistant (LiteLLM) | ✅ | ❌ | ❌ | ❌ | ❌ |
| Domain-agnostic | ✅ | ✅ | ❌ | ⚠️ | ❌ |
| Framework autolog | ✅ | ✅ | ✅ | ✅ | ✅ |
| Team collaboration | ❌ | ⚠️ | ✅ | ✅ | ✅ |
| Model deployment | ❌ | ✅ | ✅ | ✅ | ✅ |
Legend: ✅ Yes | ⚠️ Partial | ❌ No
For detailed feature comparisons (deployment, visualization, integrations), see the full documentation.
Why Choose Artifacta?
What makes Artifacta different:
- Zero configuration: Pre-built UI bundled with Python package—
pip installand you're done. No Node.js, Docker, or build tools required - Truly offline-first: Works 100% locally without any cloud dependencies, license servers, or internet connection
- Server-side plot generation: Log data primitives (Series, Scatter, Matrix), not matplotlib figures—Artifacta renders plots for you. No need to create and upload images (though you can if you want)
- Built-in electronic lab notebook: Rich text editor with LaTeX support, file attachments, and per-project organization—not available in any competitor
- AI chat interface: Built-in LLM chat (OpenAI, Anthropic, local models) to analyze experiments, results, and code. W&B and Comet have AI features in premium tiers only
- Domain-agnostic design: Primitives work for any field—ML, A/B tests, physics, finance, genomics, climate science. Not ML-only like most alternatives
- Rich artifact previews: Built-in viewers for video, audio, PDFs, code, images. MLflow only previews images; others require external viewers
- Interactive artifact lineage: Visual flow graph showing how artifacts relate. MLflow has no lineage visualization
Visual Overview
Automatic Plot Discovery
Artifacta automatically generates visualizations based on your data shape and metadata. No manual plot configuration needed.
Artifact Management
Browse and preview datasets, models, code, images, videos, and documents with built-in file viewers.
Quick Start
Installation
Prerequisites: Python 3.9+
pip install artifacta
That's it! The UI is pre-built and bundled. No Node.js required.
Start Tracking Server
artifacta ui
The web UI will be available at http://localhost:8000 (default).
You can customize host and port:
artifacta ui --host 0.0.0.0 --port 8000
Development Mode: Run with hot-reload for UI development:
artifacta ui --dev
Log Your First Experiment
from artifacta import Series, init, log
# Initialize a run
run = init(
project="my-project",
name="experiment-1",
config={"learning_rate": 0.001, "batch_size": 32}
)
# Log metrics during training
for epoch in range(10):
train_loss = train_model() # Your training code
log("metrics", Series(
index="epoch",
fields={
"train_loss": [train_loss],
"epoch": [epoch]
}
))
# Log artifacts (models, plots, etc.)
run.log_artifact("model.pt", "path/to/model.pt")
Documentation
Full documentation available at: User Guide
Build and serve docs locally:
pip install artifacta[dev]
cd docs
make html # Generates both JSDoc (UI) and Sphinx (Python) docs
python -m http.server 8001 --directory _build/html
Then navigate to http://localhost:8001
Core Primitives
Artifacta provides rich primitives for structured logging:
- Series - Time series data (loss curves, accuracy over time)
- Curve - ROC curves, PR curves with AUC metrics
- Distribution - Histograms and distributions
- Matrix - Confusion matrices and heatmaps
- Scatter - 2D scatter plots (embeddings, parameter spaces)
- BarChart - Categorical comparisons
- Table - Structured tabular data
All primitives are automatically visualized in the Plots tab.
Web UI Features
- Plots - Auto-generated visualizations with multi-run overlay
- Sweeps - Hyperparameter analysis with parallel coordinates
- Artifacts - File browser with preview for code, images, video, audio
- Tables - Metric aggregation and comparison tables
- Lineage - Visual artifact provenance graphs
- Notebooks - Rich text lab notebook with LaTeX support
- Chat - AI assistant for experiment analysis
Examples
Examples are organized by category in examples/:
Core examples (examples/core/):
- Basic tracking - Metrics, parameters, and artifacts
- All primitives - Series, Scatter, Distribution, Matrix, Bar, and more
ML frameworks (examples/ml_frameworks/):
- PyTorch (MNIST image classification)
- TensorFlow/Keras (regression)
- scikit-learn (classification)
- XGBoost (regression)
Domain-specific (examples/domain_specific/):
- A/B testing with statistical analysis
- Protein expression analysis
Additional domains - 14 examples in tests/domains/:
- Climate, Computer vision, Finance, Genomics, Physics, Robotics, Audio/Video, and more
Run examples:
# Linux/macOS
source venv/bin/activate
python examples/core/01_basic_tracking.py
python examples/ml_frameworks/pytorch_mnist.py
python examples/domain_specific/ab_testing_experiment.py
# Windows (PowerShell)
venv\Scripts\Activate.ps1
python examples/core/01_basic_tracking.py
python examples/ml_frameworks/pytorch_mnist.py
python examples/domain_specific/ab_testing_experiment.py
# Windows (cmd)
venv\Scripts\activate.bat
python examples/core/01_basic_tracking.py
python examples/ml_frameworks/pytorch_mnist.py
python examples/domain_specific/ab_testing_experiment.py
Metadata
Release files for artifacta 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| artifacta-0.2.0.tar.gz | 1.7 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| artifacta-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.4 MB
Release files / artifacta-0.2.0.tar.gz
| Download URL | artifacta-0.2.0.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e8a3a1416929e7c29b3cf600fd8b46756a0efaa6d59c51c06b54ef0ddcd9442
|
|
BLAKE2b-256 checksum How to use checksums |
37d7ea4fc785de273a6951807056c3894bb65ee66d37173077bf99d58da0a3cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / artifacta-0.2.0-py3-none-any.whl
| Download URL | artifacta-0.2.0-py3-none-any.whl |
|---|---|
| Size | 1.7 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f4a6a45edee38f4eeb89f8d0f0b795a4f158a5efec8ddee6a20cdc1d38d450c6
|
|
BLAKE2b-256 checksum How to use checksums |
ec78607f45a4664ec95773af829b2ca72ddedfbf43c651adaca70c568ca35a51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Security for artifacta 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.