| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 0.21.3 source code.tar.gz | 2026-08-27 | 20.9 MB | |
| 0.21.3 source code.zip | 2026-08-27 | 21.9 MB | |
| README.md | 2026-08-27 | 9.7 kB | |
| Totals: 3 Items | 42.9 MB | 0 | |
Presets
Registry
Presets created on one machine can now be shared and reused on another via the dstack registry:
:::shell
$ dstack preset push qwen38-27b-mi300x main/qwen38-27b-mi300x
OK
$ dstack preset pull main/qwen38-27b-mi300x
OK
$ dstack preset export main/qwen38-27b-mi300x -f qwen38.dstack.yml
OK
$ dstack apply -f qwen38.dstack.yml
Push and pull require project membership in a registry. Currently, the only available preset registry is dstack Sky.
Traces
Preset creation sessions now always write a real-time trace to ~/.dstack/presets/<id>/trace.jsonl, along with the agent prompt and final report — the --debug flag is no longer needed and has been removed.
[!NOTE] It's recommended to create presets using your own agent — either via a CLI such as Claude Code, or inside your IDE. Your agent helps you design the preset configuration, formulate hypotheses, and — most importantly — analyze the session's traces as well as the trial results (stored under
~/.dstack/presets/<id>/trials/<n>/trial.json), to decide what the next session can be and what instructions to give it viaprompt.To help your agent use
dstackand presets, install thedstackanddstack-presetsskills withnpx skills add dstackai/dstack.
Services
Replica groups
Heterogeneous services now use the same groups layout as tasks, replacing the old replicas: [{count}] list:
:::yaml
groups:
- replicas: 1
commands: [...]
Service commands can also reference other replicas by IP:
:::yaml
${{ groups[i].replicas[j].IP_ADDRESS }}
Interpolation is only allowed for replica slots guaranteed to exist at start (e.g., with replicas: 2, slots 0 and 1 are valid; with replicas: 1..4, only slot 0 is). The old replicas layout still works and existing saved configurations keep using it.
Gateways
In-place update
The gateway property of a service can now be changed without stopping the service:
:::shell
$ dstack apply -f my-service.dstack.yml
Active run my-service already exists. Detected changes that can be updated in-place:
- Configuration properties:
- gateway
Update the run? [y/n]: y
This also supports migrating between having a gateway and running without one (gateway: false). Migration may cause a brief interruption while traffic reroutes.
ALB gateways without a certificate
AWS gateways can now use an Application Load Balancer without requiring a certificate, via the new load_balancer property:
:::yaml
type: gateway
name: example-gateway
backend: aws
region: eu-west-1
domain: example.com
load_balancer:
type: alb
certificate: null
Events
Gateway replica lifecycle (creation, status changes, service and replica registration/unregistration) is now tracked as events, filterable with --within-gateway:
:::shell
$ dstack event --within-gateway my-gateway
[2026-08-25 22:56:14] [gateway-replica my-gateway-0] Gateway replica created. Status: SUBMITTED
[2026-08-25 22:57:58] [gateway-replica my-gateway-0] Gateway replica status changed PROVISIONING -> RUNNING
Backends
Seeweb
dstack now supports Seeweb as a backend.
:::shell
$ dstack offer -b seeweb --max-offers 10
# BACKEND RESOURCES INSTANCE TYPE PRICE
1 seeweb (it-fr2) cpu=x86:4 mem=32GB disk=100GB gpu=L4:24GB:1 ECS1GPU6 $0.38
2 seeweb (it-fr2) cpu=x86:8 mem=32GB disk=500GB gpu=A6000:48GB:1 ECS1GPU2 $0.74
3 seeweb (it-fr2) cpu=x86:8 mem=64GB disk=200GB gpu=L4:24GB:2 ECS2GPU6 $0.76
4 seeweb (it-fr2) cpu=x86:8 mem=32GB disk=500GB gpu=L40S:48GB:1 ECS1GPU7 $0.85
5 seeweb (it-fr2) cpu=x86:16 mem=120GB disk=500GB gpu=RTXPRO6000:96GB:1 ECS1GPU12 $1.25
6 seeweb (it-fr2) cpu=x86:16 mem=64GB disk=1000GB gpu=A6000:48GB:2 ECS2GPU2 $1.48
7 seeweb (it-fr2) cpu=x86:16 mem=64GB disk=1000GB gpu=L40S:48GB:2 ECS2GPU7 $1.7
8 seeweb (it-fr2) cpu=x86:32 mem=256GB disk=750GB gpu=H200:141GB:1 ECS1GPU10 $2.6
9 seeweb (it-fr2) cpu=x86:32 mem=128GB disk=2000GB gpu=L40S:48GB:4 ECS3GPU7 $3.4
10 seeweb (it-fr2) cpu=x86:64 mem=512GB disk=1500GB gpu=H200:141GB:2 ECS2GPU10 $5.2
```
## Breaking changes
* `dstack preset get --json` now reports the served model repository as `repo` instead of `model`, distinguishing it from `base` (the model family) and `service.model` (what the endpoint serves it as).
* `dataset: random` is rejected in preset configurations; omit `dataset` to request synthetic prompts instead.
* The `--debug` flag has been removed from preset creation; traces are now always written.
## What's changed
* [Presets] Delete creations that never saved a preset by @peterschmidt85 in https://github.com/dstackai/dstack/pull/4170
* Always show replica IP in `dstack gateway -v` by @jvstme in https://github.com/dstackai/dstack/pull/4172
* Document that idle_duration requires a nodes range by @r4victor in https://github.com/dstackai/dstack/pull/4173
* Fix Run.logs() returning nothing for a finished run by @r4victor in https://github.com/dstackai/dstack/pull/4176
* [Docs] Removed `name` from `Node groups` examples; plus few minor edits by @peterschmidt85 in https://github.com/dstackai/dstack/pull/4178
* Don't add duplicate keys while provision SSH instance by @un-def in https://github.com/dstackai/dstack/pull/4179
* [Blog] Presets: a toolkit for agent-based inference optimization by @peterschmidt85 in https://github.com/dstackai/dstack/pull/4171
* [Blog] Tighten the presets post intro by @peterschmidt85 in https://github.com/dstackai/dstack/pull/4180
* [Blog] Rewrite the presets post's compound learning section by @peterschmidt85 in https://github.com/dstackai/dstack/pull/4181
* Make `GatewayReplicaModel.backend_id` required by @jvstme in https://github.com/dstackai/dstack/pull/4183
* Rename service replica groups to groups and support IP interpolation by @Bihan in https://github.com/dstackai/dstack/pull/4177
* Add `GatewayReplicaModel.name` by @jvstme in https://github.com/dstackai/dstack/pull/4184
* Fix `dstack apply --ssh-identity` by @un-def in https://github.com/dstackai/dstack/pull/4191
* Write preset traces by default and add the dstack-presets skill by @peterschmidt85 in https://github.com/dstackai/dstack/pull/4192
* docs: fix two typos by @vaibhav8a in https://github.com/dstackai/dstack/pull/4195
* [UI] Move SSH keys into the Settings tab on the user page by @peterschmidt85 in https://github.com/dstackai/dstack/pull/4193
* [Docs] Service groups and Replica IP interpolation by @Bihan in https://github.com/dstackai/dstack/pull/4185
* [shim] Commit task state changes via TaskStorage.Modify() by @un-def in https://github.com/dstackai/dstack/pull/4200
* [Presets] Support for `dstack preset push` and `dstack preset pull` by @peterschmidt85 in https://github.com/dstackai/dstack/pull/4194
* Keep the machine awake during preset creation by @r4victor in https://github.com/dstackai/dstack/pull/4205
* [shim] Rework Run() into Start() and complete tasks in the background by @un-def in https://github.com/dstackai/dstack/pull/4203
* [shim] Mark authorized_keys entries added by the shim by @un-def in https://github.com/dstackai/dstack/pull/4206
* Add Seeweb GPU backend by @massaindustries in https://github.com/dstackai/dstack/pull/4070
* Fix Seeweb test for gpuhunt 0.1.30 by @peterschmidt85 in https://github.com/dstackai/dstack/pull/4207
* [Presets] Make a preset workload state the requested dataset by @peterschmidt85 in https://github.com/dstackai/dstack/pull/4201
* Fix events client backward compatibility by @jvstme in https://github.com/dstackai/dstack/pull/4209
* Drop AI Assistance Notice requirement by @r4victor in https://github.com/dstackai/dstack/pull/4213
* Add gateway replica events by @jvstme in https://github.com/dstackai/dstack/pull/4212
* Add compatibility guidance to `AGENTS.md` by @jvstme in https://github.com/dstackai/dstack/pull/4210
* Fix case-sensitive fleet and run spec intersection by @r4victor in https://github.com/dstackai/dstack/pull/4215
* [shim] Fix flaky Docker tests by @un-def in https://github.com/dstackai/dstack/pull/4216
* [shim] Adjust log levels and messages by @un-def in https://github.com/dstackai/dstack/pull/4217
* [shim] Fix GPU ownership of restored tasks by @un-def in https://github.com/dstackai/dstack/pull/4218
* [shim] Persist task state to clean up tasks after a restart by @un-def in https://github.com/dstackai/dstack/pull/4220
* Support AWS gateways with ALB without certificate by @jvstme in https://github.com/dstackai/dstack/pull/4219
* Support in-place update for service `gateway` by @jvstme in https://github.com/dstackai/dstack/pull/4221
## New contributors
* @vaibhav8a made their first contribution in https://github.com/dstackai/dstack/pull/4195
* @massaindustries made their first contribution in https://github.com/dstackai/dstack/pull/4070
**Full changelog**: https://github.com/dstackai/dstack/compare/0.21.2...0.21.3