The Local-First Alternative to Roboflow
Your data. Your GPU. Your rules. Zero cloud lock-in.
ModelCub is a complete, privacy-first MLOps platform for computer vision. Think Roboflow, but 100% local, 100% free, and 100% yours.
Perfect for medical imaging, defense applications, indie developers, or anyone who values data privacy and wants to avoid monthly SaaS fees.
- Roboflow: $500-8k/month, cloud lock-in, data privacy concerns
- Label Studio + Ultralytics: Separate tools, manual integration, no versioning
- DIY Solutions: Time-consuming, error-prone, not reproducible
ModelCub gives you a professional, integrated platform that runs entirely on your infrastructure:
# Install
pip install modelcub
# Initialize project
modelcub project init my-cv-project
# Import dataset
modelcub dataset add --source ./yolo-data --name production-v1
# Launch UI
modelcub ui
# Start training (coming soon)
modelcub train production-v1 --model yolov11n --epochs 100Your data never leaves your machine. Perfect for:
- ๐ฅ Medical imaging (HIPAA compliant)
- ๐ฌ Pharmaceutical research
- ๐ก๏ธ Defense applications
- ๐ข Enterprise on-premise deployments
- โ Dataset Management: Import, validate, version control
- โ Auto-Fix: Automatically detect and fix data quality issues
- โ Annotation: Built-in labeling tool (in development)
- โ Training: YOLO integration with auto-configuration
- โ Evaluation: Comprehensive metrics and visualizations
- โ Export: ONNX, TensorRT, CoreML
# Commit dataset changes
modelcub commit "Fixed bounding box issues in batch-42"
# View history
modelcub history
# Visual diff
modelcub diff v1 v2 --report- ๐จ Modern, dark-mode interface
- โก Real-time updates via WebSocket
- ๐ผ๏ธ Image browser with lazy loading
- ๐ Analytics dashboard
- ๐ท๏ธ Class management
- ๐ง Configuration editor
Three ways to use ModelCub:
CLI (for scripting):
modelcub dataset add --source ./data --name v1
modelcub dataset validate v1
modelcub train v1 --model yolov11nPython SDK (for notebooks):
from modelcub import Project, Dataset
project = Project.init("my-project")
dataset = Dataset.from_yolo("./data", name="v1")
stats = dataset.stats()
print(f"Classes: {dataset.classes}")
print(f"Images: {dataset.num_images}")Web UI (for visual work):
modelcub ui # Opens at localhost:8000- Python 3.9 or higher
- pip or uv package manager
# Using pip
pip install modelcub
# Using uv (recommended for speed)
uv pip install modelcub
# Verify installation
modelcub --version# Clone repository
git clone https://github.com/yourusername/modelcub.git
cd modelcub
# Install in editable mode
pip install -e .
# Or with uv
uv pip install -e .# Create new project
modelcub project init my-cv-project
cd my-cv-project
# Directory structure created:
# my-cv-project/
# โโโ .modelcub/ # Config, registries, history
# โโโ data/datasets/ # Your datasets
# โโโ runs/ # Training outputs
# โโโ reports/ # Generated reports
# โโโ modelcub.yaml # Project marker# From YOLO format
modelcub dataset add --source ./yolo-data --name production-v1
# From Roboflow export
modelcub dataset add --source ./roboflow-export.zip --name roboflow-v1
# Unlabeled images (for annotation)
modelcub dataset add --source ./images/ --name unlabeled-v1
# Custom configuration
modelcub dataset add \
--source ./data \
--name custom-v1 \
--n 500 \
--train-frac 0.85 \
--classes "cat,dog,bird"# List all datasets
modelcub dataset list
# Detailed information
modelcub dataset info production-v1
# Output:
# ๐ฆ Dataset: production-v1
#
# Classes: pill, bottle, box (3 classes)
# Images: 847 total
# โข train: 677 (80%)
# โข val: 119 (14%)
# โข test: 51 (6%)
#
# Created: 2025-01-26 14:30:22
# Path: data/datasets/production-v1# List classes
modelcub dataset classes list production-v1
# Add new class
modelcub dataset classes add production-v1 "capsule"
# Rename class
modelcub dataset classes rename production-v1 "pill" "tablet"
# Remove class (with confirmation)
modelcub dataset classes remove production-v1 "box" --yes# Start the web interface
modelcub ui
# Development mode (with hot reload)
modelcub ui --dev
# Custom port
modelcub ui --port 3000
# Opens at http://localhost:8000from modelcub import Project, Dataset
# Initialize project
project = Project.init("tumor-detection")
# Import DICOM images
dataset = Dataset.from_images(
source="./dicom-exports/",
name="patient-cohort-2025",
classes=["benign", "malignant"]
)
# All data stays on your HIPAA-compliant infrastructure
# No cloud uploads, no third-party access# Import production line images
modelcub dataset add \
--source ./production-line/ \
--name defect-detection-v1 \
--classes "scratch,dent,discoloration,ok"
# Validate dataset quality
modelcub dataset validate defect-detection-v1
# Auto-fix common issues
modelcub dataset fix defect-detection-v1 --auto
# Train model
modelcub train defect-detection-v1 --model yolov11n# Reproducible experiments
from modelcub import Project
project = Project.init("research-experiment-1")
# Version control for datasets
dataset = project.import_dataset("./data", name="baseline-v1")
project.commit("Initial dataset import")
# Modify dataset
dataset.augment(rotation=15, brightness=0.2)
project.commit("Added augmentation pipeline")
# Generate diff report
project.diff("baseline-v1", "augmented-v1", output="paper-figures/")ModelCub is built on a clean, layered architecture:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ User Interfaces โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโค
โ CLI โ Python SDK โ Web UI โ
โ (Click) โ (Public) โ (React+TS) โ
โโโโโโโโฌโโโโโโโโดโโโโโโโฌโโโโโโโโดโโโโโโโโฌโโโโโโโโ
โ โ โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
โ FastAPI Backend โ
โ (REST + WebSocket) โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
โ Core Services โ
โ (Business Logic Layer) โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
โ File System State โ
โ (.modelcub directory) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
1. API-First Everything is composable. Use CLI, SDK, or UI interchangeably.
2. Stateless Backend No hidden databases. All state lives in human-readable YAML files.
3. Format-Agnostic YOLO internally, but import/export any format (COCO, VOC, TensorFlow).
4. Git-Friendly Version control everything like code. Diffs, commits, rollbacks.
| Feature | ModelCub | Roboflow | Label Studio + Ultralytics |
|---|---|---|---|
| Annotation | โ | โ | โ |
| Training | โ | โ | โ |
| Local-First | โ | โ | โ |
| Auto-Fix | โ | โ | โ |
| Version Control | โ | Basic | Manual |
| Visual Diff | โ | โ | โ |
| Integrated | โ | โ | โ |
| Pricing | Free | $500-8k/mo | Free |
| Setup Time | 2 min | 5 min | 30+ min |
| Data Privacy | 100% | Cloud | 100% |
| Vendor Lock-in | None | High | None |
- Project management (init, config, delete)
- Dataset import (YOLO, Roboflow, COCO, images)
- Class management (add, rename, remove)
- CLI with all core commands
- Python SDK
- FastAPI backend
- React frontend with routing
- Dataset validation with health scoring
- Auto-fix system with backups
- Version control (commit, diff, history)
- Visual diff UI
- Export to multiple formats (ONNX, TensorRT, CoreML)
- Canvas-based annotation tool
- Rectangle and polygon drawing
- Keyboard shortcuts (vim-style)
- Auto-save and undo/redo
- Review and consensus mode
- YOLO training integration (v8, v11)
- Auto-configuration and hyperparameter tuning
- Real-time progress (WebSocket)
- Model evaluation and comparison
- Multi-GPU support
- Active learning pipeline
- Multi-annotator consensus
- Custom augmentation plugins
- Team collaboration (local network)
- Optional cloud sync (S3, MinIO)
- Installation Guide - Detailed setup instructions
- Quick Start Tutorial - 5-minute getting started
- CLI Reference - Complete command documentation
- Python SDK API - Full API documentation
- Project API - Project management
- Dataset API - Dataset operations
- Architecture Overview - System design
We welcome contributions! ModelCub is built in the open, for the community.
- ๐ Report bugs via GitHub Issues
- ๐ก Suggest features or improvements
- ๐ Improve documentation
- ๐งช Add test coverage
- ๐จ Improve UI/UX
- ๐ง Fix bugs and add features
# Clone repository
git clone https://github.com/yourusername/modelcub.git
cd modelcub
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run linter
black src/ tests/
ruff check src/ tests/
# Start development UI
cd src/modelcub/ui/frontend
npm install
npm run dev- Follow PEP 8 style guide
- Write tests for new features
- Update documentation
- Keep commits atomic and well-described
ModelCub is inspired by and builds upon:
- Roboflow - for proving the product-market fit
- Ultralytics - for excellent YOLO implementations
- Label Studio - for annotation UX patterns
- The entire computer vision open-source community
Special thanks to everyone who contributed feedback, code, and ideas!
MIT License - see LICENSE file for details.
Make computer vision development accessible, private, and reproducible for everyone.
Whether you're a solo developer, a research lab, or an enterprise team - you deserve tools that respect your data privacy and don't lock you into expensive subscriptions.
ModelCub is our answer. Own your tools. Own your data. Own your future.
Built with โค๏ธ by developers who felt the pain
Quick Start โข Documentation โข Contributing โข Report Bug