Description
Simple Joplin plugin allowing executing of commands in the UI by file-based interprocess communication, allowing remote process control (RPC). Useful for advanced keyboard shortcuts, AI agents, or voice control
Additional Information
| Links: | |
|---|---|
| Maintainers: | silico_biomancer |
| Version: | 1.0.0 |
| Minimum app version: | 3.5 |
| Downloads: This version: | 2 |
| Last updated: | 2026-09-12T12:28:21Z |
Joplin Command Server
A Joplin plugin allowing external applications to trigger Joplin commands by ID, using file-based interprocess communication (RPC).
How It Works
This plugin uses the standard Talon Community command client IPC protocol. This is file based rather than HTTP for security, avoiding exposing a port. It works by writing the request to a file, then sending a hidden keyboard shortcut to notify Joplin to process it.
- Write Request: An external client writes a
request.jsonfile to the OS temporary directory (/tmp/joplin-command-server-<uid>on Linux/macOS or%TEMP%\joplin-command-serveron Windows). - Signal Process: The client issues a keyboard shortcut (
CmdOrCtrl+Shift+F17by default). Because Joplin does not run an exposed background socket server, a hotkey is used to notify the running GUI process that a command is waiting to be processed. - Execute & Respond: Joplin reads the request file, runs the requested
commandId, and writes the result toresponse.json(terminated with a newline\n). - Cleanup: The client reads
response.jsonand deletes both temporary files.
Protocol Format
request.json
{
"uuid": "unique-request-id",
"commandId": "focusElementNoteViewer",
"args": [],
"waitForFinish": false,
"returnCommandOutput": false
}
response.json
{
"uuid": "unique-request-id",
"returnValue": null,
"warnings": [],
"error": null
}
Configuration
If CmdOrCtrl+Shift+F17 conflicts with another hotkey, rebind it inside Joplin by navigating to Tools -> Options -> Keyboard Shortcuts and searching for Joplin RPC Command Trigger.
Integration
For client implementation details, see the Talon Community command client repository.