meta_package_manager.managers.mise module¶
- class meta_package_manager.managers.mise.Mise[source]¶
Bases:
PackageManagermise (formerly rtx) installs and switches between versions of developer tools like Node, Python, Ruby and any tool reachable through its plugin backends.
Note
mpmis system-scoped, so this wrapper reports every tool version present on disk regardless of whichmise.toml(global or project) requested it. Project-pinned versions are not surfaced as a separate scope.Note
Backend-prefixed tool IDs (
pipx:ruff,cargo:ubi-cli,asdf:mise-plugins/mise-poetry) round-trip as-is. The colon is part of the package ID;mpm install pipx:ruffresolves the backend throughmiseitself.Caution
mise outdated --jsononly reports tools tracked in amise.toml(global or project). A tool installed bare withmise install <tool>and never pinned withmise usewill not appear in the outdated list, sompm outdated --miseunderstates the upgrade surface for those entries.Initialize
cli_errorslist.- homepage_url: str | None = 'https://mise.jdx.dev'¶
Home page of the project, only used in documentation for reference.
- platforms: frozenset[Platform] | Group | Platform | Iterable[Platform | Group] = frozenset({Platform(id='aix', name='IBM AIX'), Platform(id='almalinux', name='AlmaLinux'), Platform(id='alpine', name='Alpine Linux'), Platform(id='altlinux', name='ALT Linux'), Platform(id='amzn', name='Amazon Linux'), Platform(id='android', name='Android'), Platform(id='arch', name='Arch Linux'), Platform(id='buildroot', name='Buildroot'), Platform(id='cachyos', name='CachyOS'), Platform(id='centos', name='CentOS'), Platform(id='chromeos', name='ChromeOS'), Platform(id='clearlinux', name='Clear Linux OS'), Platform(id='cloudlinux', name='CloudLinux OS'), Platform(id='cygwin', name='Cygwin'), Platform(id='debian', name='Debian'), Platform(id='dragonfly_bsd', name='DragonFly BSD'), Platform(id='endeavouros', name='EndeavourOS'), Platform(id='exherbo', name='Exherbo Linux'), Platform(id='fedora', name='Fedora'), Platform(id='freebsd', name='FreeBSD'), Platform(id='generic_linux', name='Generic Linux'), Platform(id='gentoo', name='Gentoo Linux'), Platform(id='guix', name='Guix System'), Platform(id='haiku', name='Haiku'), Platform(id='hurd', name='GNU/Hurd'), Platform(id='ibm_powerkvm', name='IBM PowerKVM'), Platform(id='illumos', name='illumos'), Platform(id='kali', name='Kali Linux'), Platform(id='kvmibm', name='KVM for IBM z Systems'), Platform(id='linuxmint', name='Linux Mint'), Platform(id='macos', name='macOS'), Platform(id='mageia', name='Mageia'), Platform(id='mandriva', name='Mandriva Linux'), Platform(id='manjaro', name='Manjaro Linux'), Platform(id='midnightbsd', name='MidnightBSD'), Platform(id='netbsd', name='NetBSD'), Platform(id='nixos', name='NixOS'), Platform(id='nobara', name='Nobara'), Platform(id='openbsd', name='OpenBSD'), Platform(id='opensuse', name='openSUSE'), Platform(id='openwrt', name='OpenWrt'), Platform(id='oracle', name='Oracle Linux'), Platform(id='os400', name='IBM i'), Platform(id='parallels', name='Parallels'), Platform(id='pidora', name='Pidora'), Platform(id='pikaos', name='PikaOS'), Platform(id='raspbian', name='Raspbian'), Platform(id='rhel', name='RedHat Enterprise Linux'), Platform(id='rocky', name='Rocky Linux'), Platform(id='scientific', name='Scientific Linux'), Platform(id='slackware', name='Slackware'), Platform(id='sles', name='SUSE Linux Enterprise Server'), Platform(id='slitaz', name='SliTaz GNU/Linux'), Platform(id='solaris', name='Solaris'), Platform(id='sourcemage', name='Source Mage GNU/Linux'), Platform(id='sunos', name='SunOS'), Platform(id='tuxedo', name='Tuxedo OS'), Platform(id='ubuntu', name='Ubuntu'), Platform(id='ultramarine', name='Ultramarine'), Platform(id='void', name='Void Linux'), Platform(id='windows', name='Windows'), Platform(id='wsl1', name='Windows Subsystem for Linux v1'), Platform(id='wsl2', name='Windows Subsystem for Linux v2'), Platform(id='xenserver', name='XenServer')})¶
List of platforms supported by the manager.
Allows for a mishmash of platforms and groups of platforms. Will be normalized into a
frozensetofPlatforminstances at instantiation.
- requirement: str | None = '>=2025.5.10'¶
mise searchshipped in2025.5.10, the binding floor for the feature set this wrapper depends on. Earlier releases also miss theoutdated --jsonfix from2025.2.8that emits valid JSON when no tool is outdated.
- version_regexes: tuple[str, ...] = ('^(?P<version>\\d+\\.\\d+\\.\\d+)',)¶
miseuses CalVer (YYYY.M.P), not SemVer.$ mise --version 2026.6.3 macos-arm64 (2026-06-13)
- property installed: Iterator[Package]¶
Fetch installed packages.
Emits one
meta_package_manager.package.Packageper(tool, installed_version)pair, so a tool installed at multiple versions yields multiple entries sharing the same ID.$ mise ls --installed --json { "node": [ { "version": "20.10.0", "install_path": "~/.local/share/mise/installs/node/20.10.0", "source": {"type": "mise.toml", "path": "~/.config/mise/config.toml"} } ], "pipx:ruff": [ { "version": "0.6.9", "install_path": "~/.local/share/mise/installs/pipx-ruff/0.6.9" } ] }
- property outdated: Iterator[Package]¶
Fetch outdated packages.
$ mise outdated --json { "node": { "requested": "20", "current": "20.0.0", "latest": "20.10.0" } }
- search(query, extended, exact)[source]¶
Fetch matching packages.
mise searchreturns a two-columnTool Descriptiontable.--match-type containskeeps the candidate set wide; the framework’smeta_package_manager.manager.PackageManager.refiltered_search()narrows it down to honorextendedandexactflags.$ mise search --no-header --match-type contains node node Node.js node-build Compile and install Node.js nodejs alias for node
- install(package_id, version=None)[source]¶
Install one package.
mise install <tool>resolves to the latest version compatible with the active config;mise install <tool>@<version>pins it explicitly. Neither variant writes tomise.toml: the dedicatedmise usecommand is the config-mutating verb and is deliberately avoided here.$ mise install node@20
- Return type:
- upgrade_one_cli(package_id, version=None)[source]¶
Generates the CLI to upgrade one package.
$ mise upgrade node
- remove(package_id)[source]¶
Remove one package.
mise uninstall <tool>errors when more than one version of the tool is installed.--allremoves every installed version unconditionally, which matchesmpm’s “remove this package” contract.$ mise uninstall --all node
- Return type:
- sync()[source]¶
Refresh plugin metadata.
miseresolves tool listings and version catalogues through its plugins, so updating the plugins is the closest equivalent to the package-list refresh other managers perform during sync.$ mise plugins update
- Return type:
- cli_names: tuple[str, ...] = ('mise',)¶
List of CLI names the package manager is known as.
This list of recognized CLI names is ordered by priority. That way we can influence the search of the right binary.
- ..hint::
This was helpful in the case of the Python transition from 2.x to 3.x, where multiple versions of the same executable were named
pythonorpython3.
By default, this property’s value is derived from the manager’s ID (see the
MetaPackageManager.__init__method above).
- id: str = 'mise'¶
Package manager’s ID.
Derived by defaults from the lower-cased class name in which underscores
_are replaced by dashes-.This ID must be unique among all package manager definitions and lower-case, as they’re used as feature flags for the mpm CLI.