MiKTeX¶
- ID
miktex- Links
- Upstream stars
⭐ 979
- Last commit
2026-08-02
- Version requirement
>= 22.3
- Platforms
🐧 Linux · 🪟 Windows
- Operations
installed·install·upgrade·upgrade_all·remove·sync- purl types
pkg:miktex/- CLI name
miktex- Issues and PRs
- Source
TeX package manager of the MiKTeX distribution.
Reaches MiKTeX’s own package repositories, which are distinct from the
catalog tlmgr reaches for TeX Live: two distributions, two
managers, rather than one wrapped twice.
Note
Linux and Windows only, and that follows the tool rather than a choice. The
packages command arrived in MiKTeX 22.3, while the newest macOS build
MiKTeX publishes is 22.1, which predates it. The only package surface on
macOS is the standalone binary that happens to share this project’s name,
which is reason enough never to reach for it.
Important
Queries pass --disable-installer. MiKTeX installs packages on the fly by
default, so without it reading the inventory is not guaranteed to leave the
system as it found it.
What mpm adds to miktex¶
mpm reaches across every manager at once, not miktex alone: mpm installed and mpm outdated cover miktex alongside every other manager you run in one table, mpm upgrade --all updates them together, and mpm sbom exports the whole machine as one bill of materials.
Every mpm command also gains --dry-run and --plan previews, cross-scheme version comparison and purl identifiers. See manager augmentations for how each one is built.
Your miktex commands, in mpm¶
You already know miktex: each operation maps one-to-one onto mpm, in an interface shared by every manager.
To… |
With |
With |
|---|---|---|
Install a package |
|
|
Upgrade one package |
|
|
Upgrade everything |
|
|
Remove a package |
|
|
Prefix any command above with --dry-run to simulate the underlying manager calls without touching the system: the safe way to watch what mpm would do before trusting it.
Operations¶
Operation |
Supported |
Notes |
|---|---|---|
|
✅ |
|
|
❌ |
The tool’s check prints bare package names with no version to report against; |
|
||
|
❌ |
MiKTeX has no such command. |
|
✅ |
|
|
✅ |
|
|
✅ |
|
|
✅ |
Removing a system-wide package needs the |
|
✅ |
|
|
❌ |
Nothing in the package surface purges a cache or sweeps orphans. |
|
Configuration¶
Ignore
miktexon thempmCLI by passing the--no-miktexoption.Ignore it for every run in your configuration:
[mpm] miktex = false
Raise the timeout of all
miktexcalls:[mpm.overrides.miktex] timeout = 900
Run
mpm config-template miktexto print all overridable settings for your configuration file:[mpm.overrides.miktex] cli_names = [ "miktex", ] cli_search_path = [] dry_run = false ignore_auto_updates = true plan = false post_args = [] pre_args = [] pre_cmds = [] requirement = ">=22.3" stop_on_error = false unmaintained = false version_cli_options = [ "--version", ] version_regexes = [ "\\(MiKTeX (?P<version>\\d+(?:\\.\\d+)*)", ]
Recipes¶
A few jobs you would otherwise script around miktex, one mpm command each:
Snapshot and clone a machine:
mpm --miktex dump miktex.toml, thenmpm restore miktex.tomlon the next one.Export a compliance SBOM:
mpm --miktex sbom(CycloneDX by default,--spdxfor SPDX).
Privilege escalation¶
mpm runs this manager as the current user and never prepends sudo by default. Flip the policy for its privileged operations with --sudo or the per-manager sudo override.
None of its operations is privileged.
See privilege escalation for the full policy.
Cooldown¶
State of MiKTeX’s release-age gating, from the cooldown support table:
Status: ❌ None
A cooldown only pays off where a compromised release can be withdrawn while the clock runs, and can only be emulated where the registry dates its releases. From the retraction table:
Registry: Curated app stores and archives
With --cooldown set, mpm skips this manager’s install and upgrade operations rather than run them unguarded (fail-closed); --cooldown best-effort opts back in.
Version check¶
The version is extracted from the output of miktex --version with:
r"\(MiKTeX (?P<version>\d+(?:\.\d+)*)"
Upstream project¶
Metrics |
|
|---|---|
Activity |
|
Popularity |
|
Metadata |
|
Changelog¶
8.0.0(2026-09-20)Declare support for the Linux compatibility layers, WSL included, in place of the Linux distributions alone, so the readme’s operation matrix reports their platforms.
Add the MiKTeX TeX package manager with
installed,install,upgrade,removeandsyncsupport, queries disabling its on-the-fly installer. It declares nooutdated.