ModelPark CLI
Expose local apps and APIs to the internet in seconds
curl -fsSL https://raw.githubusercontent.com/model-park/cli/master/install.sh | shInstallation
Install the ModelPark CLI to expose your local ML applications to the internet.
curl -fsSL https://raw.githubusercontent.com/model-park/cli/master/install.sh | shmodelpark versionQuick Start
Get your local application online in three steps.
Log in to ModelPark using your account credentials or API token.
modelpark loginStart your app and create a tunnel in one step. The port is auto-detected for known frameworks.
modelpark run --name myapp -- streamlit run app.pyYour app is live. Open the remote URL to access it from anywhere.
https://myapp.modelpark.appLog in to ModelPark using your account credentials or API token.
modelpark loginExpose your REST API with API key authentication enabled.
modelpark serve --name myapi --port 8000 --type apiUse your API key to make authenticated requests from anywhere.
curl https://myapi-proxy.modelpark.app/health -H "X-ModelPark-Key: YOUR_KEY"modelpark with no arguments for an interactive guided experience, or add --type api for REST APIs.Commands
Complete reference for all CLI commands. Use modelpark --help to see available commands.
Start your application and create a tunnel in one step. The port is auto-detected for known frameworks — just pass your start command after --. Runs in the background by default; use --session to keep it in the foreground.
| Flag | Short | Default | Description |
|---|---|---|---|
| --name*required | -n | - | App name / subdomain |
| --port | -p | auto-detect | Local port (0 = auto-detect from framework) |
| --access | - | private | Access type (public, private, protected) |
| --type | - | auto-detect | App type: api, web (auto-detected from framework) |
| --token | -t | - | Authentication token (optional if logged in) |
| --session | -s | false | Run in foreground (session mode) |
| --timeout | - | 60s | Max wait for port ready |
| --server | - | wss://tunnel.modelpark.app/ws | Tunnel server WebSocket URL |
| --api-server | - | https://modelpark.app | API server URL |
| Framework | Default Port | Type |
|---|---|---|
| Streamlit | 8501 | Web |
| Gradio | 7860 | Web |
| Uvicorn | 8000 | API |
| FastAPI | 8000 | API |
| Flask | 5000 | API |
| Gunicorn | 8000 | API |
| Chainlit | 8000 | Web |
| Panel | 5006 | Web |
| Voila | 8866 | Web |
| Jupyter | 8888 | Web |
| MLflow | 5000 | Web |
| Ollama | 11434 | API |
# Streamlit — port auto-detected as 8501 (runs in background)modelpark run --name myapp -- streamlit run app.py# Keep in foreground (session mode)modelpark run -n myapp --session -- streamlit run app.py# Gradio with public accessmodelpark run -n demo --access public -- python gradio_app.py# Custom port for an unknown frameworkmodelpark run -n myapp -p 9000 -- python server.py# REST API with auto-detected typemodelpark run --name myapi -- uvicorn main:app --port 8000# Explicitly set API typemodelpark run --name myapi --type api -- python server.pyDetected framework: streamlit (port 8501)
Registering app 'myapp'...
App 'myapp' registered (private)
Started 'myapp' (pid 12345, child pid 12346)
Local: http://localhost:8501
Remote: https://myapp.modelpark.app
Logs: ~/.modelpark/logs/myapp.logDetected framework: streamlit (port 8501)
Registering app 'myapp'...
App 'myapp' registered (private)
Starting: streamlit run app.py
Waiting for port 8501...
Port 8501 is ready
🚀 ModelPark Run
Local: http://localhost:8501
Remote: https://myapp.modelpark.appDownloads
Python Library
Prefer Python? Use our Python library to control the ModelPark CLI and access published apps via API.
- Run and serve apps in the background via the CLI
- Manage running apps — list, logs, stop, kill
- Make authenticated API calls to published apps
- API key authentication for REST API apps
- Programmatic access to all ModelPark CLI commands
pip install modelparkfrom modelpark import ModelPark
mp = ModelPark()
mp.login(token="your_token")
mp.serve(name="my-app", port=8000)
mp.ls()from modelpark import APIManager
api = APIManager()
response = api.make_api_call(
"my-app",
headers={"X-ModelPark-Key": "mpk_your_api_key"}
)