m-gpux is a CLI for getting real work done on Modal GPUs. It turns a folder on your laptop into a GPU dev box, a Jupyter session, a hosted web app, an OpenAI-compatible LLM endpoint, or a whole Docker Compose stack — across every Modal account you own, with the price per hour in front of you before anything starts.
Quickstart
pip install m-gpux # also installs the `modal` CLI that m-gpux drives
m-gpux account add # paste a `modal token set ...` command
cd my-project
m-gpux dev up # pick an account and a GPU; this folder lands in /workspace
m-gpux dev code # open it in VS Code (Remote-SSH)
m-gpux dev pause # snapshot everything, stop paying for compute
If you'd rather click through a menu, m-gpux hub launches Jupyter, a script run, a browser terminal, or vLLM on any GPU from one guided wizard.
For the same workflows inside your editor, install the m-gpux VS Code extension.
m-gpux ecosystem
The CLI works on its own, and each piece below plugs into the same accounts, presets, and budgets.
- CLI — dev boxes, Hub, hosting, serving, Compose, budgets, and billing from one command
- VS Code extension — accounts, sessions, presets, and the Hub / host / serve wizards in a sidebar
- Documentation — guides for every workflow, plus the full command reference
- Examples — ready-to-deploy FastAPI, Flask, and static-site projects for
m-gpux host
Why use m-gpux?
m-gpux wraps Modal's primitives (Sandboxes, Functions, Servers, Volumes, named Images) into workflows that fit how you already develop.
- Dev boxes that survive the night — Sandboxes running
sshd, reachable with plainsshor VS Code Remote-SSH.pausesnapshots the whole filesystem andresumeboots it back in seconds;sync push/pullmoves files both ways - Every GPU, priced up front — T4 through H100, H200, B200, and B300, including multi-GPU containers (
H100:8), with $/hour in every picker andm-gpux billing ratesfor the live price table - Many accounts, one budget — per-account monthly limits, budget-aware AUTO selection, a warning before you launch on an account that's nearly empty, and
budget check --stopto shut down apps on accounts that go over - From localhost to a URL —
m-gpux hostdeploys FastAPI, Flask, Django, or a static folder with scale-to-zero;--serveruses Modal's low-latency@app.server()primitive - Your own OpenAI-compatible endpoint —
m-gpux serve deployputs any Hugging Face model behind vLLM with API keys, streaming, warmup, logs, and a live metrics dashboard - Kaggle & Colab too —
m-gpux kaggleandm-gpux colabdrive Kaggle notebooks and Colab runtimes across many accounts: weekly GPU hours and compute units at a glance, AUTO picks the account with the most left, kernels pushed as any account (Colab CLI works on Windows) - A local control plane —
m-gpux uiopens a web dashboard on localhost: every account's credit and workspace, live apps, containers and sandboxes across accounts, sessions, endpoints and GPU prices, with stop / logs / budget actions - Scripts as an async API —
m-gpux gateway deployexposes the tasks you declare inmgpux.gateway.tomlas an authenticated job API: submit JSON, poll for results, each task autoscaling on its own CPU or GPU - Docker Compose, lifted as-is — run a
docker-compose.ymlas one container, a full VM-style image (Triton, gRPC), or one Sandbox per service with readiness probes and working service-to-service addresses - Starts in seconds, not minutes —
m-gpux image buildbakes your dependencies once and publishes them to every account; Hub and dev boxes offer them as the base image - Nothing hidden — every workflow generates a plain Modal script you can read and edit before it runs
Resources
- Documentation — getting started, guides, and FAQ
- Command reference — every command and option
- Dev boxes — SSH, VS Code, pause/resume, and sync in depth
- Costs, budgets & images — GPU catalog, prices, budgets, and published images
- Docker Compose guide — subprocess, VM, and sandbox modes
- Architecture — plugins, the generated-script pattern, and how third-party plugins add commands
- Issues — bug reports and feature requests
Contributing
git clone https://github.com/PuxHocDL/m-gpux.git
cd m-gpux
pip install -e ".[dev,docs]"
m-gpux --help
Each command group is a plugin in m_gpux/plugins/<name>/plugin.py, registered in both m_gpux/plugins/__init__.py and the m_gpux.plugins entry-point group in pyproject.toml.
Run the same checks used by CI before opening a pull request:
ruff check m_gpux tests
python -m unittest discover -s tests -v
mkdocs build --strict
cd m-gpux-vscode
npm ci
npm run typecheck
npm run compile
cd ../m-gpux-ui
npm ci
npm run build
License
Metadata
Release files for m-gpux 3.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| m_gpux-3.1.1.tar.gz | 217.2 kB | With provenance | Details for m_gpux-3.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| m_gpux-3.1.1-py3-none-any.whl | Python 3 | none | any | Details for m_gpux-3.1.1-py3-none-any.whl |
Total release size: 449.4 kB
Release files / m_gpux-3.1.1.tar.gz
| Download URL | m_gpux-3.1.1.tar.gz |
|---|---|
| Size | 217.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9e8e28686f5a201f68e0b611b328b479438d8ba29246e8577de57c25467099a8
|
|
BLAKE2b-256 checksum How to use checksums |
8aedb93659c0d76dce6cd07f2f3d901a93e0f26afdb4c41a6c860c97ae5d3c3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logRelease files / m_gpux-3.1.1-py3-none-any.whl
| Download URL | m_gpux-3.1.1-py3-none-any.whl |
|---|---|
| Size | 232.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
77b5974f50c777a5ecfb0d4044efbdef85e08290c4acf2b7e0fa3d0b04d5623f
|
|
BLAKE2b-256 checksum How to use checksums |
3ed9da53ee058e1b777c5da71bca024052efccff267dd3725c51a1b2092aa3ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logSecurity for m-gpux 3.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for m_gpux-3.1.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.