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
Mise tasks are defined in mise.toml under the [tasks] section or as standalone files in .mise/tasks/.
[tasks.build]
description = "Build the project"
run = "npm run build"
[tasks.test]
description = "Run tests"
run = [
"npm run lint",
"npm run test:unit",
"npm run test:integration"
]
depends = ["build"]Create executable files in .mise/tasks/:
#!/usr/bin/env bash
# mise description="Deploy to production"
# mise depends=["build", "test"]
# mise alias="deploy:prod"
echo "Deploying..."
./scripts/deploy.sh --env productiondescription: Human-readable task descriptionrun: Command(s) to execute (string or array)depends: Tasks that must run firstalias: Alternative name for the taskenv: Environment variables specific to this taskdir: Working directory for task executionsources: Files that trigger task execution when changedoutputs: Files generated by the task[tasks.ci]
run = [
"mise run lint",
"mise run test",
"mise run build"
]Pass arguments to tasks:
mise run deploy -- --dry-run --env stagingAccess in task:
[tasks.deploy]
run = "./deploy.sh $@"depends[tasks.deploy]
run = "./scripts/deploy.sh"
depends = ["pre-deploy"]
[tasks.pre-deploy]
run = [
"mise run test",
"mise run build"
]
[tasks.post-deploy]
run = "./scripts/notify-team.sh"#!/usr/bin/env bash
# mise description="Deploy if tests pass"
if mise run test; then
mise run deploy
else
echo "Tests failed, deployment cancelled"
exit 1
fi[tasks.release]
depends = ["test", "build", "version", "publish"]
[tasks.version]
run = "npm version patch"
[tasks.publish]
run = "npm publish"