Stacks¶
A stack is the set of language-native tools wired into the task contract. Every task delegates to its stack's tools.
Stack comparison¶
| Python | Go | Rust | Web (TS) | |
|---|---|---|---|---|
| Status | ✅ Available | ✅ Available | ✅ Available | ✅ Available |
| fmt | ruff format | gofumpt | cargo fmt | prettier |
| lint | ruff check | golangci-lint | cargo clippy | eslint |
| typecheck | ty | go vet | cargo check | tsc --noEmit |
| test | pytest | go test | cargo test | vitest |
| build | uv build | go build | cargo build --release | vite build |
| deploy check | Package build | Docker build | Docker build | wrangler deploy dry-run |
| Tool manager | uv | go toolchain | cargo | npm |
Stack selection¶
Set at init time via --stack:
mise run init -- --non-interactive --name myapp --shape single --stack python
mise run init -- --non-interactive --name myservice --shape single --stack go
mise run init -- --non-interactive --name mydaemon --shape single --stack rust
mise run init -- --non-interactive --name mydashboard --shape single --stack web
mise run init -- --non-interactive --name mydashboard --shape single --stack web --web-ui shadcn --web-db drizzle-d1
Web stack variants are opt-in. --web-ui accepts plain, tailwind, or
shadcn; --web-db accepts d1 or drizzle-d1.
After init, the stack is recorded in .mise.toml:
All task scripts read this variable to dispatch to the correct toolchain.