dstack
dstack is an open-source orchestration engine for running AI workloads on any cloud or on-premises.
What it is and what it does
dstack is an orchestration engine that acts as a central control plane for GPU workloads, abstracting away the complexity of provisioning and managing compute across multiple cloud providers, Kubernetes clusters, and on-premises infrastructure. It handles provisioning, job queuing, auto-scaling, networking, volumes, and failure recovery automatically. The package includes a server component that coordinates resources and a CLI tool for submitting workloads. Users define configurations in YAML for fleets (clusters), dev environments, tasks (training or batch jobs), services (inference endpoints), presets (optimization), and volumes, then apply them via the CLI or programmatic API.
The system supports multiple accelerator types out of the box and integrates with popular ML frameworks. It requires a running dstack server (which can be deployed on Linux, macOS via WSL 2, or Windows) and Git and OpenSSH as system dependencies. The package has 25 runtime dependencies including pydantic, requests, paramiko, and rich, providing configuration validation, HTTP communication, SSH connectivity, and CLI formatting.
Use it for:
- Provision and manage GPU clusters across AWS, GCP, Azure, and on-premises without rewriting infrastructure code for each provider
- Launch development environments on remote GPU hardware for interactive work or IDE integration
- Submit distributed training jobs that auto-scale across multiple nodes and handle out-of-capacity errors automatically
- Deploy model inference services as secure, scalable endpoints with replica management and load balancing
- Manage persistent storage volumes across cloud and on-premises infrastructure for data sharing between workloads
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
dstack is a unified control plane for provisioning and orchestrating GPU workloads across cloud providers, Kubernetes, and on-premises clusters, supporting NVIDIA, AMD, Google TPU, and Tenstorrent accelerators.
Yes, if you need to orchestrate GPU workloads across multiple cloud providers or Kubernetes clusters. The active maintenance, low install friction, recent updates (including Pydantic v2 support), and zero known vulnerabilities make it a solid choice. The copyleft license requires compliance with MPL 2.0 terms if you distribute or modify the code. Requires Python 3.10+ and system-level Git and OpenSSH setup.
Install
dstack on PyPI
pip
pip install dstackuv
uv add dstackpoetry
poetry add dstackInstalling dstack
Before you install
Low install friction with a pure-Python wheel distribution. The package is actively maintained with a recent release (0.21.1) and 2213 GitHub stars. Requires Python 3.10 or later and Git and OpenSSH as system dependencies.
License in practice
Licensed under Mozilla Public License 2.0 (copyleft). Users must comply with MPL 2.0 terms when distributing or modifying dstack; derivative works must be made available under the same license.
Quickstart
# Install dstack
$ uv tool install "dstack[all]" -U
# Start the server
$ dstack server
# In another terminal, configure the CLI
$ dstack project add --name main --url http://127.0.0.1:3000 --token <admin-token>
# Use the CLI to apply configurations
$ dstack apply -f fleet.yaml
Requires Git and OpenSSH to be installed on the system. Server requires Python 3.10+. Backend configuration is needed for cloud or Kubernetes orchestration; on-premises use requires SSH fleet setup.
Verify before relying
- Whether the package works with Python 3.11+ or only 3.10 specifically
- Performance characteristics and scalability limits for large clusters
- Detailed cost estimation or billing integration capabilities
- Support status for each accelerator type (NVIDIA, AMD, TPU, Tenstorrent)
Package facts
| License | not declared (copyleft) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 25 — apscheduler, argcomplete, cachetools, cryptography, cursor, filelock, gitpython, gpuhunt, ignore-python, jsonschema, packaging, paramiko, psutil, pydantic, python-dateutil, python-multipart, pyyaml, questionary, requests, requests-unixsocket, rich, rich-argparse, tqdm, typing-extensions, websocket-client |
| Maintenance | actively maintained — 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 78,030/month — #14,475 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: dstack-0.21.1-py3-none-any.whl
Tags
More Artificial Intelligence packages
LiteLLM provides a unified Python interface to…
permissive · top 100 on PyPI
huggingface-hubClient library and CLI tool for downloading,…
permissive · top 100 on PyPI
langchainLangChain provides a framework for building…
permissive · top 1,000 on PyPI
hf-xethf-xet provides chunk-based deduplication and…
permissive · top 1,000 on PyPI
tokenizersTokenizers converts raw text into token…
permissive · top 1,000 on PyPI
transformersTransformers provides a unified framework for…
permissive · top 1,000 on PyPI
skypilotSkyPilot is a control plane for launching,…
permissive · top 5,000 on PyPI
skypilot-nightlySkyPilot provisions and manages AI compute jobs…
permissive · top 15,000 on PyPI
pathwaysutilsProvides cloud-specific integrations and…
permissive · top 15,000 on PyPI
openstacksdkopenstacksdk is a client library for…
permissive · top 5,000 on PyPI
nvidia-cutlass-dsl-libs-baseProvides Python interfaces for writing…
unclear · top 5,000 on PyPI
distributedDistributed provides a scheduler and runtime…
permissive · top 5,000 on PyPI
dask-jobqueueDeploys Dask distributed computing clusters on…
permissive · top 15,000 on PyPI
nvidia-cutlass-dslProvides a Python native interface for writing…
unclear · top 5,000 on PyPI
aws-parallelclusterAWS ParallelCluster is a cluster management…
permissive · top 15,000 on PyPI
nvidia-cutlass-dsl-libs-cu13Provides a Python DSL for writing…
unclear · top 5,000 on PyPI