| name | dotfiles-tasks |
| description | Dotfiles repo task structure. Use when working with this repo's mise tasks (brew, dot, nvim, system, etc.). |
| user-invocable | false |
Dotfiles Mise Tasks
All automation uses mise (https://mise.jdx.dev) file-based tasks. Tasks are executable scripts in the mise/tasks/ directory.
File Structure
mise/
โโโ config.toml # Project-level mise config (schema, min_version)
โโโ tasks/
โโโ install # Full setup orchestration
โโโ system/
โ โโโ install # System dependency orchestration
โ โโโ install-linux # Linux-specific tool installation
โโโ binutils/
โ โโโ install # Clone, build, symlink orchestration
โ โโโ build # Build shared + local binutils
โ โโโ cache-shell-startup # Cache shell startup files
โโโ dot/
โ โโโ install # Link/copy all dotfiles
โโโ brew/
โ โโโ install # Install Homebrew + bundle
โ โโโ update # Dump Brewfile + commit
โ โโโ upgrade # brew update + upgrade + update Brewfile
โ โโโ cleanup # brew cleanup + autoremove
โโโ nvim/
โ โโโ restore # Restore plugins from lazy-lock.json
โ โโโ update # Update plugins + commit lock file
โ โโโ commit # Commit lazy-lock.json if changed
โโโ shell/
โ โโโ update # Refresh shell startup cache + completions
โโโ tools/
โโโ install # mise install
โโโ update # mise up
โโโ outdated # mise outdated -l
Naming Convention
Tasks follow namespace:verb pattern, defined by directory structure:
nvim:update โ mise/tasks/nvim/update
brew:install โ mise/tasks/brew/install
dot:install โ mise/tasks/dot/install
Common Commands
mise tasks
mise run install
mise run <name>
Adding New Tasks
- Create an executable script in
mise/tasks/<namespace>/
- Add
#!/usr/bin/env bash and set -euo pipefail
- Add
#MISE description="..." metadata comment
- Use
#MISE hide=true for internal/helper tasks
- Use
#MISE depends=[...] for task dependencies
- Make the file executable:
chmod +x mise/tasks/<namespace>/<task>
Task Metadata
Tasks use #MISE comment directives:
#MISE description="..." - Task description shown in mise tasks
#MISE depends=["dep1", "dep2"] - Run dependencies before this task
#MISE hide=true - Hide from mise tasks listing
Variables
$MISE_PROJECT_ROOT - Repository root (set automatically by mise)
$FORCE - From FORCE env var for reinstall mode
$OSTYPE - Platform detection (darwin* for macOS, linux* for Linux)