I’ve published a small utility that turns Joplin into a keyboard-driven autotext library for any app. This is especially as a prompt library for LLM/AI chat UIs. Works with AutoHotkey v2 on Windows.
GitHub: GitHub - tftranslate/joplin-prompt-picker: Use Joplin as prompt library with Autotext v2 · GitHub
What it does
- Uses Joplin as the place where prompts are stored and organized.
- Reads all notes from a top-level notebook called
Prompts(including sub-notebooks; notebook name can be configured). - Opens a keyboard-driven picker with search and preview.
- Pastes the selected note body into the previously active window.
- Handles UTF‑8 correctly (German umlauts, cyrillics etc.).
- Normalizes escaped newlines and quotes when inserting the text.
I built this because I keep my reusable prompts and snippets in Joplin, and wanted a fast way to paste them into :
- llama.cpp web UI (which currently doesn't have its own prompt library)
- Chatbox and other app or browser-based AI chat UIs
- any other editor, IDE, or desktop app
Requirements
- Windows
- AutoHotkey v2
- Joplin Desktop
- Joplin Web Clipper enabled
- A top-level notebook reserved for the prompts or other autotext snippets.
Setup (short version)
- Install AutoHotkey v2.
- Enable the Web Clipper in Joplin and copy the API token from Joplin settings.
- In
JoplinPromptPicker.ahk, replace the token placeholder with your real token and optionally choose another name for the top-level notebook. - Create a top-level notebook
Promptsor whatever you configured in step 3, and put your prompt notes there (and/or in sub‑notebooks). - Run the script.
- Press
Ctrl+Shift+Pto open the picker, type to search, pressEnterto paste.
Current limitations / ideas
- Windows only (AutoHotkey-based).
- Search currently uses note title and notebook path, not full body text.
- No installer yet; it’s a single script.
- Possible future enhancements: config file for settings, configurable notebook name, optional body-text search, better diagnostics.
Feedback, bug reports, and ideas are welcome. However I have a day job, don't expect too much, this was a quick hack to solve a personal need. Other developers are welcome to contribute or take over.