Getting Started
msh is an atomic data engine that unifies ingestion, transformation, and deployment into a single workflow.
Installation
pip install msh-cliOnce installed, initialize your first project with msh init
Atomic Assets
An atomic asset is a single .msh file that defines your entire data pipeline: from source to transformation to destination.
name: customers
ingest:
type: rest_api
endpoint: "https://api.example.com/customers"
transform: |
SELECT * FROM {{ source }}Smart Ingest
msh automatically pushes column projection down to the source, reducing data transfer and improving performance. Only the columns you need are fetched from the source system.
Blue-Green Deployment
Every model version gets a unique hash. Deploy new versions alongside existing ones, then swap with zero downtime. Atomic rollbacks revert instantly to the last known good state.
msh deploy orders
# Deploys to new hash, keeps old version live
msh swap orders
# Zero-downtime swap to new versionPublish
Publish your transformed data to any destination: SaaS apps, databases, data warehouses, or REST APIs.
msh publish orders --to salesforce
msh publish customers --to snowflakeAPI Reference
Complete CLI and Python API documentation.
msh init
Initialize a new msh project in the current directory
msh run [asset]
Execute a specific atomic asset or all assets
msh ui
Launch the web-based management interface