An open-source, community-driven registry and update database for Total Commander plugins (WCX, WLX, WFX, WDX).
Used as the primary update and discovery source for the TotalPlug manager.
The catalog is compiled and updated automatically every 6 hours via GitHub Actions:
- Snapshot (Resolved Versions & Assets, pretty-printed):
https://sergey.is-a.dev/totalplug-catalog/catalog.resolved.json - Minified CDN Version (used by TotalPlug):
https://sergey.is-a.dev/totalplug-catalog/catalog.min.json
totalplug-catalog/
βββ plugins/
β βββ wcx/ # Packer plugins (archives, containers)
β βββ wlx/ # Lister plugins (viewers, highlighters)
β βββ wfx/ # File System plugins (FTP, Cloud, ADB)
β βββ wdx/ # Content plugins (file attributes, metadata)
βββ schemas/
β βββ plugin.schema.json # JSON Schema for automated validation
βββ scripts/
βββ builder/ # Go compiler & metadata resolver
Adding a plugin takes less than 2 minutes:
- Fork this repository.
- Create a new JSON file inside
plugins/<type>/<plugin-id>.json(e.g.,plugins/wlx/cudalister.json). - Follow the schema format:
{
"$schema": "../../schemas/plugin.schema.json",
"id": "cudalister",
"name": "CudaLister",
"type": "WLX",
"description": "Syntax highlighting viewer plugin based on CudaText engine",
"authors": ["Alexey-T"],
"homepage": "https://github.com/Alexey-T/CudaLister",
"license": "MPL-2.0",
"match": {
"aliases": ["cudalister", "wlx_cudalister"],
"filenames": ["cudalister.wlx", "cudalister.wlx64"]
},
"source": {
"type": "github_release",
"repo": "Alexey-T/CudaLister",
"asset_pattern": "wlx_cudalister.*\\.zip"
}
}- Open a Pull Request. CI will validate your JSON automatically.
- Once merged, it goes live in the global catalog!
One file, one plugin β unless two plugins really install the same file. The client finds an installed plugin by the file it installs, so a file name normally belongs to one plugin. Two MDView plugins for Total Commander install
mdview.wlxeach β one on the WebView2 engine, one on the older MSHTML engine β and the catalog holds both, namedMDView (WebView2)andMDView (MSHTML)so the two are not mistaken for each other. The client tells them apart by the version that is installed, and refuses to choose when that version cannot be read. What the build refuses is one plugin listed twice under one file name: two manifests of the same plugin claiming one file fail the build, two different plugins claiming it only warn.
| Source Type | Description | Required Fields |
|---|---|---|
github_release |
Dynamically fetches latest release tag & assets from GitHub API | repo, asset_pattern (optional) |
direct_url |
Fixed download link with static version | download_url, version |
totalcmd_net |
Links to existing totalcmd.net ID | totalcmd_id |
A plugin gets one address per source. There is no field for mirrors, and the next section explains why that is intentional.
Mirrors are deliberately not catalog data. A mirror list would have to be built by fetching roughly 1200 plugin pages on every build, and an entry nobody revalidates is a dead link with a version number attached to it β so the schema accepts sources, not backups of sources.
Instead, TotalPlug finds the mirror when it is actually needed. Once every address the catalog
names has failed to deliver an archive, and when the failing address is a totalcmd.net download
link, the updater opens that plugin's page β https://totalcmd.net/plugins/<id>, the address the
site moved to when it was redesigned β from the user's own machine and follows it to the plugin's
wincmd.ru counterpart: https only, and only from a short allowlist of trusted hosts
(wincmd.ru). The lookup happens once per broken download rather than for the whole catalog, and
any failure in it leaves the ordinary error, which names the plugin page.
What this means for a contribution: if a plugin's totalcmd.net download counter points at a host that no longer answers, leave the entry as it is β the update still works through the search above. Fix the entry when the plugin's actual home moved (new repo, new upstream version), not when one mirror went down.
- totalcmd.net β The original long-standing Total Commander plugin database.
- Total Commander is a registered trademark of Christian Ghisler / Ghisler Software GmbH.
All catalog metadata is released under the MIT License.