Skip to content

Buchen

Buchen is a bookmark manager. Protocol Launcher allows you to generate Buchen URL scheme links.

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.

Notes

Buchen's official support page documents exactly these URL scheme forms:

  • buchen://add-tag?name=<tag name>
  • buchen://add?name=<bookmark name>&url=<url>&browser=<browser ?>
  • buchen://go-bookmarks
  • buchen://go-tags
  • buchen://go-folders

The official page says any parameter block containing ? is optional, and any URL passed as a value must be URL encoded. addBookmark() percent-encodes the bookmark URL as a query value. The optional browser value is limited to the official names: safari, edge, icab mobile, opera, brave, chrome, firefox, firefox focus, duckduckgo, quiche, and jayson.

Buchen documents safari as another name for the default browser, and says browser values are referenced everywhere with these names, including Buchen JSON export files.

Add Tag

On-Demand
ts
import { addTag } from 'protocol-launcher/buchen'

const url = addTag({
  name: 'reading list',
})

Add Bookmark

On-Demand
ts
import { addBookmark } from 'protocol-launcher/buchen'

const url = addBookmark({
  name: 'Protocol Launcher',
  url: 'https://www.example.com/',
})

Add Bookmark with Browser

On-Demand
ts
import { addBookmark } from 'protocol-launcher/buchen'

const url = addBookmark({
  name: 'Protocol Launcher',
  url: 'https://www.example.com/search?q=url scheme',
  browser: 'firefox focus',
})

Go to Bookmarks

On-Demand
ts
import { goBookmarks } from 'protocol-launcher/buchen'

const url = goBookmarks()

Go to Tags

On-Demand
ts
import { goTags } from 'protocol-launcher/buchen'

const url = goTags()

Go to Folders

On-Demand
ts
import { goFolders } from 'protocol-launcher/buchen'

const url = goFolders()

Generated URLs

ts
addTag({
  name: 'reading list',
})
// => 'buchen://add-tag?name=reading%20list'

addBookmark({
  name: 'Protocol Launcher',
  url: 'https://www.example.com/',
})
// => 'buchen://add?name=Protocol%20Launcher&url=https%3A%2F%2Fwww.example.com%2F'

addBookmark({
  name: 'Protocol Launcher',
  url: 'https://www.example.com/search?q=url scheme',
  browser: 'firefox focus',
})
// => 'buchen://add?name=Protocol%20Launcher&url=https%3A%2F%2Fwww.example.com%2Fsearch%3Fq%3Durl%20scheme&browser=firefox%20focus'

goBookmarks()
// => 'buchen://go-bookmarks'

goTags()
// => 'buchen://go-tags'

goFolders()
// => 'buchen://go-folders'

Official Documentation