Configure and operate Mise for deterministic developer environments. Use when installing runtime/tool versions, defining reusable tasks, managing layered environment variables, migrating from asdf/nvm/pyenv, or debugging mise.toml behavior in CI and local shells. Keywords: mise, mise.toml, tool versions, tasks, env, asdf migration, setup automation, dev environment.
Overall
score
99%
Does it follow best practices?
Validation for skill structure
Use for simple, frequently-used tasks:
[tasks.dev]
description = "Start development server"
run = "npm run dev"
[tasks.build]
description = "Build for production"
run = "npm run build"
[tasks.test]
description = "Run all tests"
run = "npm test"Use for complex tasks with multiple steps:
.mise/
└── tasks/
├── deploy
├── release
├── db-migrate
└── ci-fullExample .mise/tasks/deploy:
#!/usr/bin/env bash
# mise description="Deploy application"
# mise depends=["build", "test"]
set -e
echo "Deploying to $ENVIRONMENT..."
./scripts/deploy.sh# Development tasks
[tasks.dev]
[tasks."dev:api"]
[tasks."dev:web"]
# Testing tasks
[tasks.test]
[tasks."test:unit"]
[tasks."test:integration"]
[tasks."test:e2e"]
# Build tasks
[tasks.build]
[tasks."build:api"]
[tasks."build:web"]
# Deployment tasks
[tasks.deploy]
[tasks."deploy:staging"]
[tasks."deploy:production"]dev / start: Start development environmentbuild: Build for productiontest: Run testslint: Check code qualityformat: Format codeclean: Remove build artifactsinstall / setup: Install dependenciesdeploy: Deploy applicationrelease: Create a releaseci: Run CI pipeline locally[tasks.ci]
depends = ["lint", "test", "build"]
[tasks.lint]
run = "eslint ."
[tasks.test]
depends = ["lint"]
run = "npm test"
[tasks.build]
depends = ["test"]
run = "npm run build"
[tasks.deploy]
depends = ["ci"]
run = "./deploy.sh"Execution order: lint → test → build → deploy
[tasks.check-deps]
run = "npm outdated"
[tasks.check-security]
run = "npm audit"
[tasks.check-all]
depends = ["check-deps", "check-security"]
description = "Run all checks"# Root mise.toml
[tasks.install-all]
run = "npm install --workspaces"
[tasks.build-all]
run = '''
for pkg in packages/*; do
mise run -C "$pkg" build
done
'''
[tasks.test-all]
run = '''
for pkg in packages/*; do
mise run -C "$pkg" test
done
'''# packages/api/mise.toml
[tasks.dev]
run = "tsx watch src/index.ts"
[tasks.test]
run = "vitest"
[tasks.build]
run = "tsup"
# packages/web/mise.toml
[tasks.dev]
run = "vite"
[tasks.test]
run = "vitest"
[tasks.build]
run = "vite build"# packages/web/mise.toml
[tasks.dev]
depends = ["build-api"]
run = "vite"
[tasks.build-api]
run = "mise run -C ../api build"[tasks.setup]
description = "Initial project setup"
run = [
"npm install",
"cp .env.example .env",
"mise run db:migrate"
]
[tasks.dev]
description = "Start development"
depends = ["setup"]
run = "npm run dev"
[tasks.format]
description = "Format code"
run = "prettier --write ."
[tasks.lint]
description = "Lint code"
run = "eslint . --fix"[tasks.test]
description = "Run all tests"
depends = ["test:unit", "test:integration"]
[tasks."test:unit"]
run = "vitest run"
[tasks."test:integration"]
run = "vitest run --config vitest.integration.config.ts"
[tasks."test:e2e"]
run = "playwright test"
[tasks."test:watch"]
run = "vitest watch"
[tasks."test:coverage"]
run = "vitest run --coverage"[tasks.clean]
run = "rm -rf dist coverage .turbo"
[tasks.build]
depends = ["clean", "test"]
run = "npm run build"
[tasks.version]
run = "npm version patch"
[tasks.publish]
depends = ["build"]
run = "npm publish"
[tasks.release]
depends = ["test", "build", "version", "publish"]
description = "Full release workflow"[tasks.ci]
description = "Run full CI pipeline"
depends = ["lint", "test", "build"]
[tasks."ci:quick"]
description = "Quick CI check"
depends = ["lint", "test:unit"]
[tasks.deploy]
depends = ["ci"]
run = "./scripts/deploy.sh"test:unit, test:integration)depends to ensure prerequisitesproject/
├── mise.toml # Common tasks (dev, test, build)
├── .mise/
│ ├── config.toml # Mise configuration
│ └── tasks/
│ ├── deploy # Deployment tasks
│ ├── release # Release automation
│ ├── db-migrate # Database tasks
│ └── utils/
│ ├── check-deps # Utility scripts
│ └── cleanup
└── packages/
├── api/
│ └── mise.toml # API-specific tasks
└── web/
└── mise.toml # Web-specific tasks[tasks.test-api]
run = "cd packages/api && npm test"
[tasks.test-web]
run = "cd packages/web && npm test"[tasks.test]
run = "npm test"
# In packages/api/mise.toml and packages/web/mise.toml
[tasks.test]
run = "npm test"[tasks.deploy]
run = "/Users/john/projects/myapp/deploy.sh"[tasks.deploy]
run = "./scripts/deploy.sh"[tasks.ci]
run = "npm run lint; npm test; npm run build"[tasks.ci]
run = [
"npm run lint",
"npm test",
"npm run build"
]