Plugins

Tools from a DLL you drop in a folder, without rebuilding cxagent. Every plugin here declares what it offers before it runs, and cxagent asks you before it does.

Loading the catalog…

Installing one

Press F2 in cxagent, or type /plugin browse, to open the plugin manager: it lists this catalog, installs a plugin with its hash checked, and offers updates. Already know the one you want? /plugin get csharp-lsp downloads it into your global plugins folder.

Installing is not loading. A plugin runs when you load it — /plugin load csharp-lsp.dll for this session, or a config entry to load it at every start — and the first load asks, showing you what it is about to run.

Publishing one

A plugin declares what it offers in a sidecar file cxagent reads before loading its assembly, so the load prompt can say what a plugin claims without running it.

Write a plugin →
Get it into this catalog →

Trusting a plugin

cxagent asks before loading any plugin, showing a hash of everything it would load. Nothing in your config file can pre-approve one, and if a single byte of the load set changes, the question comes back. Past that point a plugin is not sandboxed: a .NET plugin runs inside cxagent's own process, a native one in a host process of its own, and either can do what its process can. What cxagent enforces is the decision to load it — trusting a plugin is trusting its author, exactly as installing any other software is.

What the checksum proves

Where a catalog entry carries a sha256, it is over the artifact you download.

The checksum here proves the file you downloaded is the file this release published. It does not prove who built it.

Who built it is the publisher and repository on each entry below — claims you judge for yourself, not facts a client can verify. The separate hash cxagent shows at load time answers a third question again: has anything changed since you last approved it.