Skip to main content

Joplin Development

Joplin features a rich plugin architecture which allows third party developers to build plugins to enable non-standard behaviours.

Joplin is written in Javascript/Typescript and built on top of electron. Plugins must therefore run in an electron runtime.

Finding Global Settings Values

There are some use cases that might require you to know what settings the user has entered for areas of the application outside of your plugin (for example you might need to know if the user has sync enabled so that you can avoid destructive operations while synchronisation is happening).

The solution is to use the joplin.settings.globalValue api function. The global settings keys are not documented and could change. The dev team suggest that developers look for useful values in Settings.ts in the main project repo.

Publishing Plugins

The official Joplin plugin marketplace/selector retrieves items from this github repo which in turns checks npm for packages that are published with the keyword joplin-plugin. So all you need to do is ensure that your project follows the standard structure of a joplin plugin (e.g. comes with a manifest.json, has the corresponding npm steps) and has this keyword.

The yeoman template provided by the joplin team comes pre-configured ready for publication of plugins.