Trilium - Plugin Manager #9954
Replies: 4 comments
-
Everything is working, but I found a new way to create child notes. I am trying it...Problem
Proposed solution: JSON Manifest {
"id": "shared-notes",
"manifestUrl": "https://raw.githubusercontent.com/.../manifest.json",
"sourceUrl": "https://raw.githubusercontent.com/.../shared-notes.jsx"
}
|
Beta Was this translation helpful? Give feedback.
-
Plugin Manager update: now with multi-note support via manifest.json"A quick update on the Plugin Manager — it now supports plugins with multiple notes through a What changedUntil now, the Plugin Manager could only install single-file plugins (a How it worksA plugin's registry entry can now point to a {
"id": "shared-notes",
"manifestUrl": "https://raw.githubusercontent.com/user/repo/main/Shared-Notes/manifest.json"
}The manifest describes every note the plugin needs: {
"notes": [
{
"title": "Shared Notes",
"type": "text",
"content": "Open this note to use the plugin."
},
{
"title": "Widget",
"type": "code",
"mime": "application/javascript;env=frontend",
"sourceUrl": "widget.js"
},
{
"title": "Handler",
"type": "code",
"mime": "application/javascript;env=backend",
"sourceUrl": "handler.js"
},
{
"title": "Config",
"type": "text",
"content": "Set your name and endpoint here."
}
],
"relations": [
{ "type": "renderNote", "from": "Shared Notes", "to": "Widget" }
],
"labels": [
{ "note": "Widget", "name": "widget", "value": "" },
{ "note": "Handler", "name": "customRequestHandler", "value": "shared-notes-reply" },
{ "note": "Config", "name": "sharedNotesConfig", "value": "" }
]
}On install, the Plugin Manager:
No ZIP, no ETAPI, no token, no deadlock. All notes are created in one backend transaction. Three install methods now
Current plugins already using manifestsThe official registry now has 4 multi-note plugins using this system:
For plugin developersIf your plugin needs more than one note, create a Repo: https://github.com/ricolandia/trilium-plugin-manager Feedback and plugin submissions welcome! |
Beta Was this translation helpful? Give feedback.
-
|
Maybe it's MVP solution for the maintainers: The plugin format is now simple enough that it could be officially curated without much overhead. The idea:
This is exactly how Joplin, Logseq, and Obsidian handle community plugins — and it works. The difference is that our format is simpler: no npm packages, no build step, no CLI. Just raw files served from GitHub. The Plugin Manager I built is a proof of concept. If the project adopts the standard, I'll happily adapt it to whatever the official implementation looks like — or donate( I can delete it from my repository ) the code if that's easier. What matters is having one place where users can discover and install plugins without configuring URLs, tokens, or anything else. |
Beta Was this translation helpful? Give feedback.
-
✨ Manifest GeneratorTo make it dead simple for anyone to create a multi-note plugin, I put together a manifest generator prompt: 📄 https://github.com/ricolandia/trilium-plugin-manager/blob/main/MANIFEST_GENERATOR.md How it works:
No need to learn the JSON format by heart. Just describe what notes the plugin needs, and the generator handles the rest. The same prompt also works as a manual checklist for validation (raw URLs, encoding, label formatting, etc.). |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This idea started in #9726
@ecodiv @eliandoran @Nriver
I went ahead and built a working prototype. The repo is at https://github.com/ricolandia/trilium-plugin-manager — a single JS Frontend note that fetches a registry, shows plugin cards, and installs/uninstalls with one click. No server, no CLI, no Docker.
Two install methods:
sourceUrl(recommended) - points to a.js/.jsxraw file, creates a code note directly. No token needed.zipUrl- legacy ZIP fallback for manual import.That said, this is a community interim solution while the official plugin system is still on the roadmap. What we really need is:
.js/.jsxfiles + a registry entry@ecodiv's Weekly Planner is the perfect example: a self-contained
.jsxthat generates its own child notes. No ZIP, no export, no import hassle. The more plugins we publish this way, the easier it is to build momentum toward an official system.There's a Plugin Developer Guide in the repo if anyone wants to publish their plugin. Happy to help shape the standard if there's interest.
Screenshot
Beta Was this translation helpful? Give feedback.
All reactions