dstack
is a unified control plane for GPU provisioning and orchestration that works with any GPU cloud, Kubernetes, or on-prem clusters.
It streamlines development, training, and inference, and is compatible with any hardware, open-source tools, and frameworks.
dstack
supports NVIDIA
, AMD
, Google TPU
, Intel Gaudi
, and Tenstorrent
accelerators out of the box.
- [2025/10] dstack 0.19.31: Kubernetes, GCP A4 spot
- [2025/08] dstack 0.19.26: Repos
- [2025/08] dstack 0.19.22: Service probes, GPU health-checks, Tenstorrent Galaxy
- [2025/07] dstack 0.19.21: Scheduled tasks
- [2025/07] dstack 0.19.17: Secrets, Files, Rolling deployment
- [2025/06] dstack 0.19.16: Docker in Docker
- [2025/06] dstack 0.19.13: Default images with InfiniBand support
Before using
dstack
through CLI or API, set up adstack
server. If you already have a runningdstack
server, you only need to set up the CLI.
To orchestrate compute across cloud providers or existing Kubernetes clusters, you need to configure backends.
Backends can be set up in ~/.dstack/server/config.yml
or through the project settings page in the UI.
For more details, see Backends.
When using
dstack
with on-prem servers, backend configuration isn’t required. Simply create SSH fleets once the server is up.
You can install the server on Linux, macOS, and Windows (via WSL 2). It requires Git and OpenSSH.
$ uv tool install "dstack[all]" -U
$ pip install "dstack[all]" -U
Once it's installed, go ahead and start the server.
$ dstack server
Applying ~/.dstack/server/config.yml...
The admin token is "bbae0f28-d3dd-4820-bf61-8f4bb40815da"
The server is running at http://127.0.0.1:3000/
For more details on server configuration options, see the Server deployment guide.
Set up the CLI
Once the server is up, you can access it via the dstack
CLI.
The CLI can be installed on Linux, macOS, and Windows. It requires Git and OpenSSH.
$ uv tool install dstack -U
$ pip install dstack -U
To point the CLI to the dstack
server, configure it
with the server address, user token, and project name:
$ dstack project add \
--name main \
--url http://127.0.0.1:3000 \
--token bbae0f28-d3dd-4820-bf61-8f4bb40815da
Configuration is updated at ~/.dstack/config.yml
dstack
supports the following configurations:
- Dev environments — for interactive development using a desktop IDE
- Tasks — for scheduling jobs (incl. distributed jobs) or running web apps
- Services — for deployment of models and web apps (with auto-scaling and authorization)
- Fleets — for managing cloud and on-prem clusters
- Volumes — for managing persisted volumes
- Gateways — for configuring the ingress traffic and public endpoints
Configuration can be defined as YAML files within your repo.
Apply the configuration either via the dstack apply
CLI command or through a programmatic API.
dstack
automatically manages provisioning, job queuing, auto-scaling, networking, volumes, run failures,
out-of-capacity errors, port-forwarding, and more — across clouds and on-prem clusters.
For additional information, see the following links:
You're very welcome to contribute to dstack
.
Learn more about how to contribute to the project at CONTRIBUTING.md.