[Tool] Joplin Prompt Picker - Use Joplin as a prompt library for AI chat with Autohotkey v2

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)

  1. Install AutoHotkey v2.
  2. Enable the Web Clipper in Joplin and copy the API token from Joplin settings.
  3. In JoplinPromptPicker.ahk, replace the token placeholder with your real token and optionally choose another name for the top-level notebook.
  4. Create a top-level notebook Prompts or whatever you configured in step 3, and put your prompt notes there (and/or in sub‑notebooks).
  5. Run the script.
  6. Press Ctrl+Shift+P to open the picker, type to search, press Enter to 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.

1 Like