Skip to content

Joplin ​

Joplin is an open source note-taking app for organizing notes. Protocol Launcher allows you to generate links that open notes, folders, and tags in Joplin.

Usage ​

There are two ways to use this library:

  • On-Demand import from subpaths enables tree-shaking and keeps bundles small.
  • Full Import from the root package is convenient but includes all app modules.

Pick On-Demand for production builds; Full Import is fine for quick scripts or demos.

Select Installation Method

On-Demand
Recommended. Optimized for production.
Full Import
Convenient. Good for quick scripts.

Joplin external links use joplin://x-callback-url/<action> with an id query parameter. The official documentation lists openNote, openFolder, and openTag, plus the desktop callback commands below. Callback URLs must use a known application scheme or the x-callback-url host; Joplin rejects HTTP and HTTPS callbacks.

Open Note ​

Open a Joplin note by note ID.

On-Demand
ts
import { openNote } from 'protocol-launcher/joplin'

const url = openNote({
  id: 'REPLACE_WITH_NOTE_ID',
})

Open Folder ​

Open a Joplin folder by folder ID.

On-Demand
ts
import { openFolder } from 'protocol-launcher/joplin'

const url = openFolder({
  id: 'REPLACE_WITH_FOLDER_ID',
})

Open Tag ​

Open a Joplin tag by tag ID.

On-Demand
ts
import { openTag } from 'protocol-launcher/joplin'

const url = openTag({
  id: 'REPLACE_WITH_TAG_ID',
})

Get Current Note ​

Desktop only. Return the selected note to the calling app through an x-callback-url.

On-Demand
ts
import { getCurrentNote } from 'protocol-launcher/joplin'

const url = getCurrentNote({
  xSuccess: 'hook://x-callback-url/setCurrentNode'
})

Create Note ​

Desktop only. Create a note in the current notebook and return its title and URL through the callback.

On-Demand
ts
import { createNote } from 'protocol-launcher/joplin'

const url = createNote({
  title: 'Meeting notes',
  body: '# Agenda',
  xSuccess: 'hook://x-callback-url/setCurrentNode',
  xError: 'hook://x-callback-url/error'
})

Official Documentation ​