Komac is a powerful command-line tool designed to streamline the creation and management of manifests for the WinGet Community Repository. Built with Rust, Komac combines speed and efficiency, using minimal memory while offering advanced capabilities for developers and package maintainers.
Key Features:
Fast and Lightweight: Komac operates quickly and efficiently, using just a few megabytes of memory.
Cross-Platform Support: Available for Windows, Linux, and macOS, ensuring broad compatibility.
GitHub Integration: Manages GitHub tokens and automates tasks like pull requests and manifest updates.
Installer Detection: Accurately extracts information from Inno Setup, Nullsoft, Burn, MSI, and MSIX installers.
Cross-Platform Installer Support: Handles MSI and MSIX on Linux and macOS, expanding its versatility.
Audience & Benefit:
Ideal for developers and maintainers contributing to the WinGet repository, Komac simplifies the process of creating, updating, and managing package manifests. It empowers users to efficiently build high-quality packages, reduce manual errors, and automate workflows, saving time and effort while ensuring consistency and accuracy.
Available via winget install komac, Komac is a vital tool for anyone involved in WinGet's ecosystem, offering a robust solution for modern package management needs.
Nightly releases that are built every week are
available here.
These are useful for debugging or if you want the latest features and fixes.
Windows
Both portable EXEs and installers are available from the releases.
WinGet
winget install komac
Scoop
scoop install komac
Linux
Portable binaries are available from the releases.
Debian (.deb)and Red Hat (.rpm) installers are also available.
macOS
Portable binaries for macOS are available from the releases.
Homebrew
brew install komac
GitHub Token Setup
komac needs a classic GitHub token to submit PRs to winget-pkgs.
This should be a classic token with the public_repo scope.
Adding to komac:
komac token add
The token can be also be obtained using the GitHub CLI:
komac token add --token=$(gh auth token)
Why not fine-grained tokens?
Whilst Komac can fully create manifests and commit with a fine-grained token, it fails to create a pull request to
winget-pkgs. This may change as fine-grained tokens improve.
See https://github.com/russellbanks/Komac/issues/310.
While other manifest creation tools have made a solid foundation for the manifests in winget-pkgs, their development
pace
is slower and lacks the deeper installer analysis that komac is capable of.
🧑💻 Use Komac and create an issue for feature requests or bugs.
Star History ⭐
License
Komac is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or
modify it under the terms of the GNU General Public License as published
by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Footnotes
Telemetry is enabled by default in WingetCreate. Use wingetcreate settings to manually disable telemetry. ↩
There is much more accurate detection for Inno, Nullsoft, and Burn installers since Komac v2. ↩↩2↩3
The logic for this was contributed by me :)
Check issues that I've opened to request
this feature for YamlCreate. ↩↩2