Getting Started

msh is an atomic data engine that unifies ingestion, transformation, and deployment into a single workflow.

Installation

pip install msh-cli

Once 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 version

Publish

Publish your transformed data to any destination: SaaS apps, databases, data warehouses, or REST APIs.

msh publish orders --to salesforce
msh publish customers --to snowflake

API 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