Komac is an advanced CLI designed to create manifests for the WinGet Community Repository.
Komac is cross-platform and runs on Windows, Linux and macOS. A cross-platform JAR is available from the releases.
Windows EXEs are available from the releases.
winget install komac
scoop install komac
It is recommended to use the cross-platform JAR for Linux and macOS. Installers are although available for these platforms but there's no guarantee on their working state. The JAR can be used with the following command:
java -jar komac.jar
Command | Description | Usage |
---|---|---|
New | Create a package from scratch | new |
Update | Update a pre-existing package in winget-pkgs | update up |
Remove | Remove a version from winget-pkgs | remove rm |
Branch Cleanup | Deletes branches that have had a merged or closed pull request to winget-pkgs | branch cleanup |
Token update | Update stored GitHub OAuth token | token update , token up |
Token remove | Delete stored GitHub OAuth token | token remove , token rm , token delete |
# Without user interaction
komac update --id Package.Identifier --version 1.2.3 --urls https://www.firstUrl.com,https://www.secondUrl.com --submit
# With user interaction
komac update
Parameter | Usage | Notes |
---|---|---|
Package Identifier | --id |
|
Version | --version |
|
URLs | --urls |
URLs are delimited by a comma (, ) |
Automatically submit | --submit |
|
Token (if one is not already stored) | --token |
Komac will check for a GITHUB_TOKEN environment variable |
While other manifest creation tools have made remarkable strides in the winget-pkgs community, their development pace is notably slow and lacks the advanced detection capabilities that comes with Komac.
Komac | WinGetCreate | YamlCreate | |
---|---|---|---|
Parameters | ✅ | ✅ | ❌ |
Works without Git | ✅ | ✅ | ❌ |
Optimised manifest ordering 1 | ✅ | ❌ | ✅ |
Fully cross-platform | ✅ | ❌ | Limited |
Full MSI value retrieval | ✅ | Partial | Partial |
Linux & macOS MSI support | ✅ | ❌ | ❌ |
Full MSIX value retrieval | ✅ | Partial | Limited - Trenly/winget-pkgs#180 |
Get information from GitHub | ✅ | ❌ | ❌ |
Formatted GitHub release notes retrieval | ✅ | ❌ | ❌ |
Release date identification | ✅ | ❌ | ❌ |
Webpage metadata scraping | ✅ | ❌ | ❌ |
Fully standalone (w/o winget-pkgs clone) | ✅ | ✅ | ❌ |
No telemetry | ✅ | ❌ | ✅ |
Type-safety | ✅ | ✅ | ❌ |
Inno setup detection | ✅ | ✅ | ✅ 2 |
Nullsoft detection | ✅ | ✅ | ✅ 2 |
Burn installer detection | ✅ | ✅ | Opt-in feature 2 (not enabled by default, due to slow processing) |
Progress bar & ETA while downloading | ✅ | ❌ | ❌ |
Language | Kotlin/JVM | C# | PowerShell |
- 🤝 Sponsor this project through GitHub Sponsors
- ⭐ Star this project! :)
- 🧑💻 Use Komac and create an issue for feature requests or bugs.
Powering GitHub Actions: WinGet Releaser 🌟
I'm happy to say that WinGet Releaser is powered by Komac, due to its advanced detection capabilities and ability to work cross-platform. The action is available on the GitHub Marketplace.
It can be used in CI/CD workflows to automatically create & publish WinGet manifests for your releases. Just make sure to add first version of your manifest manually, and the action will take care of the future versions. More information to set it up can be found on the action's repository here.
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.