Supercharge your data workflows with paired Marimo notebooks for Dagster
Features β’ Quick Start β’ Documentation β’ Examples β’ Contributing
DagLab revolutionizes data science workflows by seamlessly integrating Marimo notebooks with Dagster pipelines. Create, manage, and execute interactive notebooks that are directly paired with your Dagster assets and jobs, bringing the best of both worlds together.
- π Seamless Integration: Directly connect Marimo notebooks to Dagster assets
- β‘ Real-time Development: Hot-reload notebooks while developing pipelines
- π οΈ Production Ready: Enterprise-grade security, monitoring, and deployment
- π Interactive Workflows: Visualize and interact with your data pipelines
- π Zero Configuration: Works out of the box with sensible defaults
daglab scaffold --asset sales_forecast --template ml
|
daglab discover --pattern "sales_*" --tags ml
|
daglab dev --services all --monitor
|
daglab export notebook.py --cloud s3://bucket
daglab migrate *.ipynb --target marimo/
|
# Basic installation
pip install daglab
# With cloud support
pip install daglab[aws,gcp,azure]
# Full installation
pip install daglab[all]# 1. Initialize in your Dagster project
daglab init
# 2. Create a notebook for your asset
daglab scaffold --asset my_model --template ml
# 3. Start development environment
daglab dev
# 4. Open the generated notebook and start coding!πΉ See it in action
$ daglab init
β¨ Initializing DagLab in current directory...
π Created daglab.yaml configuration
π Created notebooks/ directory
β
DagLab initialized successfully!
$ daglab scaffold --asset revenue_model --template ml
π― Generating notebook for asset: revenue_model
π Using template: ml (Machine Learning)
β¨ Created: notebooks/assets/revenue_model.marimo.py
β
Notebook generated successfully!
$ daglab dev
π Starting development environment...
π Marimo server: http://localhost:2718
βοΈ Dagster UI: http://localhost:3000
β
All services running! Press Ctrl+C to stop.daglab init # Initialize DagLab in your project
daglab doctor # Check system health & auto-fix issues
daglab clean # Clean artifacts and cachesdaglab scaffold # Generate paired notebooks
daglab list # List all notebooks
daglab run # Execute notebooksdaglab discover # Find Dagster entities
daglab run --job daily_etl # Run Dagster jobs
daglab run --asset my_model # Materialize assetsdaglab dev # Start development environment
daglab export # Export notebooks to various formats
daglab stats # View usage statistics
daglab migrate # Convert Jupyter to Marimo- π‘οΈ Security Audit: Built-in vulnerability scanning
- π Authentication: Multi-provider auth support
- π Compliance: GDPR, SOX, PCI DSS ready
- π¨ Real-time Alerts: Security event monitoring
# Automatic performance tracking in notebooks
from daglab import track_performance
@track_performance
def process_data(df):
# Your code here
return transformed_dfView Performance Dashboard
daglab dev --dashboard
# Access at http://localhost:8080
π Performance Metrics:
βββ Cell Execution Time: 2.3s
βββ Memory Usage: 156MB
βββ CPU Utilization: 45%
βββ I/O Operations: 234# Export to different cloud providers
daglab export notebook.py --cloud s3://my-bucket/notebooks/
daglab export notebook.py --cloud gs://my-bucket/notebooks/
daglab export notebook.py --cloud az://my-container/notebooks/# .github/workflows/daglab.yml
name: DagLab CI
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run DagLab Tests
run: |
pip install daglab[dev]
daglab doctor --fix
daglab test# notebooks/assets/customer_etl.marimo.py
import marimo as mo
from daglab import dagster_asset, track_performance
@dagster_asset
@track_performance
def customer_data():
"""Extract and transform customer data."""
df = load_customer_data()
cleaned = clean_data(df)
return cleaned
# Interactive visualization
mo.ui.table(customer_data())# notebooks/jobs/train_model.marimo.py
import marimo as mo
from daglab import dagster_job, visualize_metrics
@dagster_job
def train_revenue_model():
"""Train and evaluate ML model."""
X_train, y_train = prepare_data()
model = train_model(X_train, y_train)
metrics = evaluate_model(model)
# Visualize results
visualize_metrics(metrics)
return modelWe love contributions! See our Contributing Guide for details.
# Setup development environment
git clone https://github.com/your-org/daglab
cd daglab
pip install -e .[dev]
# Run tests
pytest tests/ -v
# Run security audit
python scripts/security/security_audit.py|
10x faster notebook development with hot-reload and caching |
Enterprise-grade security with automated vulnerability scanning |
From local development to distributed cloud deployment |
Customizable templates and extensible architecture |
- Core CLI functionality
- Dagster integration
- Marimo notebook support
- Cloud storage integration
- Performance monitoring
- Real-time collaboration
- AI-powered code suggestions
- Visual workflow builder
- Mobile app support
DagLab is licensed under the Apache License 2.0. See LICENSE for details.
Built with β€οΈ using:
- Dagster - The data orchestration platform
- Marimo - Reactive Python notebooks
- Typer - CLI framework
- Rich - Beautiful terminal output
Documentation β’ Examples β’ Issues β’ Discussions
Made with β€οΈ by the DagLab Team
