Skip to content

UpNote

UpNote is a note-taking app for writing and organizing notes. Protocol Launcher allows you to generate links for opening notes, notebooks, tags, filters, and views, and creating notes and notebooks in UpNote.

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.

UpNote documents upnote://x-callback-url/<action> endpoints for opening notes, creating notes and notebooks, viewing notebooks, viewing tags, opening filters, and dynamic views.

Open Note

Open a note with noteId and new_window.

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

const url = openNote({
  noteId: 'REPLACE_WITH_NOTE_ID',
  newWindow: false,
})

New Note

Create a note with title, text, notebook, new_window, and markdown.

On-Demand
ts
import { newNote } from 'protocol-launcher/upnote'

const url = newNote({
  title: 'Daily Plan',
  text: '# Today',
  notebook: 'Work',
  newWindow: true,
  markdown: true,
})

Open Notebook

View notes in a notebook by notebookId.

On-Demand
ts
import { openNotebook } from 'protocol-launcher/upnote'

const url = openNotebook({
  notebookId: 'REPLACE_WITH_NOTEBOOK_ID',
})

New Notebook

Create a notebook with a title.

On-Demand
ts
import { newNotebook } from 'protocol-launcher/upnote'

const url = newNotebook({
  title: 'Projects',
})

View Tag

View notes in a tag by tag title.

On-Demand
ts
import { viewTag } from 'protocol-launcher/upnote'

const url = viewTag({
  tag: 'project',
})

Open Filter

View notes in a filter by filterId.

On-Demand
ts
import { openFilter } from 'protocol-launcher/upnote'

const url = openFilter({
  filterId: 'REPLACE_WITH_FILTER_ID',
})

Dynamic View

Use the documented view endpoint with mode, noteId, notebookId, tagId, filterId, spaceId, action, and query. UpNote documents spaceId as a unique space id or default; notebooks, tags, and filters modes require their matching ids.

On-Demand
ts
import { view } from 'protocol-launcher/upnote'

const url = view({
  mode: 'all_notes',
})

const notebookUrl = view({
  mode: 'notebooks',
  notebookId: 'REPLACE_WITH_NOTEBOOK_ID',
  spaceId: 'default',
})

const searchUrl = view({
  action: 'search',
  query: 'meeting notes',
})

Official Documentation