ML deployment framework - from local development to production with one command
Project description
Geronimo: The Declarative ML Framework For AI
Build, train, and deploy ML models with production-ready infrastructure and Generative AI MCP support from the start.
Geronimo is like dbt for AI:
Why Geronimo?
🚀 Ship Models Faster
Stop writing boilerplate. One command creates a runnable project with FastAPI endpoints, monitoring, and CI/CD ready to go.
geronimo init --name iris-realtime
cd iris-realtime && uv sync
uvicorn iris-realtime.app:app --reload # API running in seconds
🧩 Simpler Development
Define your model's what, not the how. The SDK has 5 components—each maps to one file:
| Component | File | Purpose |
|---|---|---|
| DataSource | data_sources.py |
Where your data comes from |
| FeatureSet | features.py |
How to transform raw data |
| Model | model.py |
Training and prediction logic |
| Endpoint | endpoint.py |
Request/response handling (realtime) |
| Pipeline | pipeline.py |
Batch job orchestration (batch) |
data_sources.py — Declare your data
training_data = DataSource(name="training", source="snowflake", query=Query.from_file("train.sql"))
features.py — Define transformations
class IrisFeatures(FeatureSet):
sepal_length = Feature(dtype="numeric", transformer=StandardScaler())
sepal_width = Feature(dtype="numeric", transformer=StandardScaler())
petal_length = Feature(dtype="numeric", transformer=StandardScaler())
petal_width = Feature(dtype="numeric", transformer=StandardScaler())
model.py — Train and predict
class IrisModel(Model):
name = "iris-realtime"
features = IrisFeatures()
def train(self, X, y, params): ...
def predict(self, X): ...
endpoint.py — Handle requests (realtime)
class PredictEndpoint(Endpoint):
def preprocess(self, request): ...
def postprocess(self, prediction): ...
pipeline.py — Run batch jobs
class ScoringPipeline(BatchPipeline):
schedule = Schedule.daily(hour=6)
def run(self): ...
🤖 GenAI Agent-Ready
Every project is automatically exposed as an MCP tool. AI agents like Claude can call your models directly—no extra work required.
{
"mcpServers": {
"iris-realtime": {
"command": "uv",
"args": ["run", "python", "-m", "iris-realtime.agent.server"]
}
}
}
"Analyze this transaction for fraud risk"
→ Claude calls your model → Returns risk score
Getting Started
pip install geronimo
geronimo init --name my-model --template realtime
Choose your template:
| Template | Use Case | Output |
|---|---|---|
realtime |
REST APIs, low-latency | FastAPI + monitoring |
batch |
Scheduled jobs, bulk scoring | Metaflow + drift detection |
both |
APIs + scheduled pipelines | Everything |
What You Get
A complete, runnable project structure:
my-model/
├── src/my_model/
│ ├── sdk/ # Define your model here
│ │ ├── model.py # train() + predict()
│ │ ├── features.py # Feature transformations
│ │ ├── endpoint.py # Request/response handling
│ │ └── monitoring_config.py
│ ├── app.py # FastAPI (auto-generated)
│ └── train.py # Training script
├── geronimo.yaml # Deployment config
└── models/ # Saved artifacts
Focus on the sdk/ folder. Everything else is generated for you.
Deploy to Production
geronimo generate all
Generates:
- Terraform — ECS Fargate infrastructure
- Dockerfile — Optimized for ML serving
- CI/CD — Azure DevOps / GitHub Actions pipelines
Integrations
| Integration | Purpose |
|---|---|
| MLflow | Experiment tracking, artifact store |
| Snowflake/Postgres | Data sources for training |
| CloudWatch | Production metrics |
| Slack | Alerts for drift/errors |
| MCP | AI agent tool exposure |
Documentation
- Getting Started: Realtime
- Getting Started: Batch
- Monitoring & Drift Detection
- MCP Integration
- SDK Reference
Installation
pip install geronimo # Core
pip install geronimo[mlflow] # + MLflow
pip install geronimo[databases] # + Snowflake, Postgres
pip install geronimo[all] # Everything
Apache 2.0 License • GitHub
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file geronimo-0.3.0.tar.gz.
File metadata
- Download URL: geronimo-0.3.0.tar.gz
- Upload date:
- Size: 513.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1925e6d62c66eda804637cefec8c094ce663ea0a98412963db5e84e12c242a5a
|
|
| MD5 |
30536255dc3fb2313d55fdbfaaf70f6f
|
|
| BLAKE2b-256 |
864cf00b9fca82d5a5580e397b1a5f71b0968256eb12665ce7c0a778ef3f6f73
|
Provenance
The following attestation bundles were made for geronimo-0.3.0.tar.gz:
Publisher:
publish.yml on geronimo-deploy-cloud/geronimo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geronimo-0.3.0.tar.gz -
Subject digest:
1925e6d62c66eda804637cefec8c094ce663ea0a98412963db5e84e12c242a5a - Sigstore transparency entry: 876572433
- Sigstore integration time:
-
Permalink:
geronimo-deploy-cloud/geronimo@80990e1798108b6b8015d52f0773ebf4f0b6caac -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/geronimo-deploy-cloud
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@80990e1798108b6b8015d52f0773ebf4f0b6caac -
Trigger Event:
release
-
Statement type:
File details
Details for the file geronimo-0.3.0-py3-none-any.whl.
File metadata
- Download URL: geronimo-0.3.0-py3-none-any.whl
- Upload date:
- Size: 130.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4e6e34261c94a07969ce0e1588741dc85ac6f548cb4bfabeb1e70383a6d491c
|
|
| MD5 |
3e2f1bd5589f9f7864da7fb92f7b4059
|
|
| BLAKE2b-256 |
782a47672d0c4804f9f29d9bdf0fda35c93abee4fe9a9228ed43fa68add878c6
|
Provenance
The following attestation bundles were made for geronimo-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on geronimo-deploy-cloud/geronimo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geronimo-0.3.0-py3-none-any.whl -
Subject digest:
a4e6e34261c94a07969ce0e1588741dc85ac6f548cb4bfabeb1e70383a6d491c - Sigstore transparency entry: 876572542
- Sigstore integration time:
-
Permalink:
geronimo-deploy-cloud/geronimo@80990e1798108b6b8015d52f0773ebf4f0b6caac -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/geronimo-deploy-cloud
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@80990e1798108b6b8015d52f0773ebf4f0b6caac -
Trigger Event:
release
-
Statement type: