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 ​