Official plugin registry for Mnemo, a self-hosted knowledge base.
| Plugin | Description |
|---|---|
| vim-mode | Adds Vim keybindings to the editor with toggle, mode indicator, and command bar |
| sample-wordcount | Displays word count statistics for notes via a custom API endpoint |
Plugins are installed through the Mnemo Admin Dashboard:
- Go to Admin > Plugins > Browse Registry
- Search for a plugin
- Click Install
registry.jsonis auto-generated by CI from plugin manifests — never edit it manually- It is gitignored and cannot be modified via PRs
- When a PR merges to
main, CI validates all plugins, then regeneratesregistry.json - The Mnemo server fetches
registry.jsonfrom this repo via the GitHub API
- Fork this repo and create a branch
- Copy
templates/plugin-template/toplugins/your-plugin-name/ - Edit
manifest.jsonwith your plugin's metadata - Implement your plugin in
server/index.jsand/orclient/index.js - Test locally:
npm run validate && npm run test && npm run lint - Open a PR — CI will validate your plugin automatically
- Once CI passes and the PR is approved, merge to
main - CI auto-generates
registry.json— your plugin appears in the Mnemo registry
See docs/CONTRIBUTING.md for detailed guidelines.
# Install dev dependencies
npm install
# Lint plugin code
npm run lint
# Validate all plugin manifests
npm run validate
# Test plugin syntax and exports
npm run test
# Generate registry.json locally (for testing)
npm run generateplugins/your-plugin/
manifest.json # Plugin metadata (source of truth for registry)
server/
index.js # Backend entry point (optional)
client/
index.js # Frontend entry point (optional)
- Plugin API Reference — Full server and client API documentation
- Contributing Guide — How to create and submit plugins
- No direct pushes to
main— PRs only - CI must pass before merge (lint, validate, test)
registry.jsonis auto-generated by CI after merge
Licensed under the Apache License, Version 2.0.
"Kryton" and the Kryton logo are trademarks of Pascal Watteel. The Apache 2.0 license grants rights to use the software, but it does not grant permission to use these trademarks. Forks distributed publicly must be renamed.
Contributions are welcome. Before your first pull request, please read and sign the Contributor License Agreement. The CLA Assistant bot will prompt you on your first PR — sign by commenting:
I have read the CLA Document and I hereby sign the CLA