Maya Python projects often start as a small collection of scripts and grow into production tools without the development infrastructure growing with them.
This template provides a modern, reproducible foundation for that infrastructure from the outset, so a tool can go from initial development to reliable distribution. The goal isn't to prescribe how a Maya tool should be written, just to remove the repetitive setup work around it.
Note
Example project built from this template: locator-creator.
Do not fork. Use the Use this template button instead.
- Click Use this template.
- Name the new project (lowercase, hyphen-separated, e.g.
my-awesome-project) and add a description. - GitHub Actions processes the template and commits to the new repo. Check progress in the Actions tab.
- Wait for the first CI run to finish, then clone and start coding.
No browser needed:
gh repo create my-cool-tool --template matthewlee-dev/maya-python-project-template --publicWait for the initial repository setup workflow to finish before cloning. See AGENTS.md for the full non-interactive flow.
- Basic project structure.
- Dependency and packaging management with uv, configured via
pyproject.toml. - README.md and CONTRIBUTING.md templates.
- Bug report and feature request templates.
- Continuous integration using GitHub Actions with jobs to:
- Run integration tests across a range of Maya versions in isolated Docker containers.
Note: You should hold a valid Maya license.
- Enforce coding standards with ruff.
- Build and deploy documentation to GitHub pages with mkdocs.
- Manually triggered releases: pick a version number and it tags, releases, and deploys docs (optional). The release also builds an installable Maya module zip (
.mod+<name>_drag_and_drop_installer.py) and attaches it to the GitHub Release.
- Run integration tests across a range of Maya versions in isolated Docker containers.
- This project uses Docker images courtesy of mottosso/docker-maya.
- Inspiration taken from both: