Testing locally
A plugin source is a folder with a filer-plugins.json at its root. On GitHub that folder is a public repository; while you are developing, it can just as well be the repository’s checkout on your own disk — Filer reads it in place, so nothing has to be pushed to try a change.
The loop
Section titled “The loop”- Lay your plugin out the way Your first plugin shows —
filer-plugins.jsonat the root, each plugin underplugins/<name>/. - In Filer, open Connect, click the Manage sources button at the bottom of the plugin list to open the Plugin Sources panel, paste the folder’s absolute path into the box (for example
C:\dev\my-pluginsor/home/me/my-plugins), and click Add. The folder’s name becomes the source name, marked local folder in the list. - Your plugin appears under the All filter — select it and click Install.
- Try it in chat, in a folder.
To pick up a change: edit the files, then either restart Filer or select the plugin and Uninstall / Install it again. A plugin installed from a local source runs from your folder, not from a copy — a local source has no “update” because there is nothing to fetch — but a handler that has already run stays loaded until the plugin is reloaded, which is what the restart or the reinstall does.
To start clean — for example after renaming a plugin or restructuring the folder — remove the source with the Remove source button beside its entry in the Plugin Sources panel and add it again. Removing a local source only forgets it; your folder is not touched.
When the plugin is ready for other people, push the same folder to a public GitHub repository and add it by URL — users get updates through Check for updates from then on.
Where to look when something is wrong
Section titled “Where to look when something is wrong”- Anything your handler logs through
ctx.log.info/warn/errorshows up in the app log. - If the manifest itself fails validation, the plugin is refused at load and the app lists one message per broken rule — read all of them, not just the first, since a manifest can fail more than one rule at once.
- A folder without a
filer-plugins.jsonat its root is refused when you add it, with a message that says so.
- Tools — result shapes to check for once a call is going through
- Permissions — the most common reason a call is refused rather than erroring
