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!
| 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 plugring page from the user's own machine and retries the
Mirror links it finds there: 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.