CtrlK
BlogDocsLog inGet started
Tessl Logo

pantheon-ai/mise-complete

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

Overview
Skills
Evals
Files

tasks-definition.mdreferences/

Task Definition

Overview

Mise tasks are defined in mise.toml under the [tasks] section or as standalone files in .mise/tasks/.

Inline Task Definition

[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"]

File-Based Tasks

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 production

Task Properties

  • description: Human-readable task description
  • run: Command(s) to execute (string or array)
  • depends: Tasks that must run first
  • alias: Alternative name for the task
  • env: Environment variables specific to this task
  • dir: Working directory for task execution
  • sources: Files that trigger task execution when changed
  • outputs: Files generated by the task

Multi-Command Tasks

[tasks.ci]
run = [
  "mise run lint",
  "mise run test",
  "mise run build"
]

Task Arguments

Pass arguments to tasks:

mise run deploy -- --dry-run --env staging

Access in task:

[tasks.deploy]
run = "./deploy.sh $@"

Best Practices

  1. Descriptive Names: Use clear, action-oriented names
  2. Single Responsibility: Each task should do one thing well
  3. Composability: Build complex tasks from simple ones using depends
  4. Documentation: Always include descriptions
  5. Idempotency: Tasks should be safe to run multiple times

Common Patterns

Pre/Post Hooks

[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"

Conditional Execution

#!/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

Multi-Stage Tasks

[tasks.release]
depends = ["test", "build", "version", "publish"]

[tasks.version]
run = "npm version patch"

[tasks.publish]
run = "npm publish"

Install with Tessl CLI

npx tessl i pantheon-ai/mise-complete@0.1.0

references

config-anti-patterns.md

config-best-practices.md

config-management.md

config-structure.md

env-definition.md

env-hierarchies.md

env-loading.md

env-patterns.md

tasks-definition.md

tasks-execution.md

tasks-organization.md

tasks-patterns.md

tools-installation.md

tools-migration.md

tools-plugins.md

tools-versions.md

SKILL.md

tile.json