mise-lib-template is a template for building projects with automated versioning, testing, and GitHub Action powered CI/CD workflows. It is equipped with powerfulw scaffolding capabilities that support the following use cases:
- language agnostic libs built around mise -> adapt these as you need
- uv based python packages
- zig libraries and executables
Here's what this template gives you off the bat:
- A language-agnostic self-documenting task runner via
mise. Keep all your project commands organized inmise.tomlandmise-tasks/. - Environment variables and tool versions managed in
mise.toml— no separatedirenvor.envrcneeded. - CI/CD with GitHub Actions - run test on MR commits, tag and release on merges to main.
- Easy CI/CD customization with language-agnostic bash scripting - No need to get too deep into GitHub Actions for customization. Modify the publish recipe, set GitHub Secrets and you're good to go.
- Trunk based development and automated versioning with conventional commits - semantic-release will handle version bumping for you! Work on feature branches and merge to main for bumps.
- GCP Artifact Registry publishing (easily modified for other registries)
- Cross-platform (macOS, Linux, Windows via WSL) - run
mise installto install dependencies, or run tasks via Docker
- bash 3.2+
- mise
Run mise install to install all tools, then mise run install for npm dependencies.
Scaffold a new project:
# Click "Use this template" on GitHub, then:
git clone <your-new-repo>
cd <your-new-repo>
bash mise-tasks/scaffold --project your-project-name [--template uv|zig]Or just run the scaffold script without flags for an interactive setup!
Install dependencies and adapt the template for your needs:
mise install # Install all tools (node, shellcheck, shfmt, gcloud, claude, etc.)
mise run install # Install npm dependencies (semantic-release and plugins)
claude /adapt # Guided customization for your language / package managerType mise tasks to see all available tasks:
❯ mise tasks
build Build the project
clean Clean build artifacts
install Install dependencies
publish Publish package to registry
run Run project locally
test Run tests
...Build, run, and test with mise run. The template will show TODO messages in console prior to adapting:
❯ mise run run
TODO: Implement build for mise-lib-template@2.0.0
TODO: Implement run
❯ mise run test
TODO: Implement build for mise-lib-template@2.0.0
TODO: Implement testTask dependencies run automatically — mise run test runs build first!
Commit using conventional commits (feat:, fix:, docs:). Merge/push to main and CI/CD will run automatically bumping your project version and publishing a package.
This template supports three modes:
| Template | Language | Package Manager | Test Framework | Publish Target |
|---|---|---|---|---|
| agnostic | (any) | — | — | GCP Artifact Registry |
| uv | Python | uv | pytest | PyPI |
| zig | Zig | zig build | zig test | GitHub Releases |
To learn more about using this template, read the docs:
- User Guide - Complete setup and usage guide
- Architecture - Design and implementation details