Talos bootstraps Python environments into DCC applications. It builds a virtual environment that is compatible with a target host, installs packages into it, and wires that environment into the host's startup so the packages are importable from inside the application.
The first supported host is Autodesk Maya 2025+. Talos uses uv to create environments and install packages.
Maya ships its own isolated Python interpreter with no pip and no easy way to
add third-party packages. Talos gives you a repeatable, per-project environment
whose Python version matches Maya's, verifies packages are compatible, and links
it into Maya through the standard module mechanism — no manual sys.path hacking
and nothing to reinstall each Maya launch.
- uv on your
PATH. - Autodesk Maya 2025 or newer (only needed to
link/verifyagainst a real Maya).
uv tool install git+https://github.com/OWNER/talos(Replace OWNER with the GitHub account hosting this repo.)
Or from a checkout of this repo:
uv tool install .The recommended workflow: your tool project declares its own Talos environment, so anyone who clones the repo can reproduce it with one command.
cd my-anim-tools # a Python package (e.g. created with `uv init --package`)
# Declare the environment in your pyproject.toml ([tool.talos] table).
talos init --maya 2025
# Create the env and editable-install your project into it.
# Re-run any time; teammates run this after cloning.
talos sync
# Start Maya 2025 with your project's code importable.
talos launchinit writes this into your pyproject.toml:
[tool.talos]
env = "my-anim-tools" # defaults to your project name; override with --env
maya = "2025"The install is editable: edit your code, restart Maya, and the changes are live — no re-sync needed. Your project's own dependencies are resolved into the environment automatically.
Inside a Talos project, every command infers the environment, so talos install numpy, talos verify, talos launch, etc. all work without naming it.
You can also manage environments directly, without a project:
# Create an environment targeting Maya 2025 (Python 3.11).
talos create anim --maya 2025
# Install packages — from PyPI, a local path, or a git URL.
talos install numpy --env anim
talos install ./my_local_tool --env anim
talos install git+https://github.com/some/tool.git --env anim
# See what's installed.
talos list anim
# Optional: prove the packages import under Maya's own interpreter.
talos verify anim
# Wire the environment into Maya. Launch Maya and `import numpy` will work.
talos link anim
# Or do it in one step: link (if needed) and start the matching Maya version.
talos launch anim
# Later, disconnect it.
talos unlink animtalos launch resolves the environment's target Maya version, links the
environment if it isn't already, and starts Maya detached from your terminal.
Pass --no-link to launch without touching the link, or --maya <version> to
override the target.
- Environments live under
~/.talos/envs/<name>/(override withTALOS_HOME). Each is a small uv project: apyproject.tomlpinned to Maya's Python version, auv.lock, and a.venv. - Compatibility is enforced by uv's resolver. The environment's
requires-pythonmatches Maya's interpreter (Maya 2025/2026 → Python 3.11), so packages and compiled wheels that resolve share Maya's ABI. - Linking writes a
talos_<name>.modfile into your Maya modules directory (~/Documents/maya/<version>/modules/). ItsuserSetup.pyadds the environment'ssite-packagesto Maya's Python at startup, wrapped in atry/exceptso a broken environment never blocks Maya from starting.
- Using Talos in your project — the tool-author guide (init → sync → launch, editable dev loop, compatibility notes).
- CLI reference — every command, flag, and environment variable.
- Architecture — how environments, compatibility checking, and the Maya bootstrap actually work.
- Contributing — dev setup and ground rules.
uv sync
uv run pytest
uv run ruff checkMIT — see LICENSE.