Skip to content

OmniOutliner ​

OmniOutliner is an outlining app from The Omni Group. Protocol Launcher allows you to generate OmniOutliner Omni Links and Legacy 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.

Open Document ​

Omni Links support document (doc) links. Provide the path, document name, and Omni Links Folder ID from your OmniOutliner Connected Folder.

On-Demand
ts
import { openDocument } from 'protocol-launcher/omnioutliner'

const url = openDocument({
  documentName: 'My Outline.ooutline',
  folder: 'iCloud Drive',
})

Open Document Row ​

Document Omni Links can include optional Elements, each added after the folder parameter with &. OmniOutliner currently documents focus for Focus and row for Row Selection.

On-Demand
ts
import { openDocumentRow } from 'protocol-launcher/omnioutliner'

const url = openDocumentRow({
  path: 'foo/bar',
  documentName: 'My Outline.ooutline',
  folder: 'Work Server 9070',
  focus: 'mDFTZpAeCb8',
  row: 'fh4Q0jgg5iB',
})

Legacy Links only support the open link type. They work as long as the document containing the destination is open, and can include optional focus and row Elements.

On-Demand
ts
import { openLegacyLink } from 'protocol-launcher/omnioutliner'

const openUrl = openLegacyLink()

const rowUrl = openLegacyLink({
  focus: 'nBZUyLQl3b6',
  row: 'j3NzslZpCi8',
})

Use openLink() when you already have a full omnioutliner:///doc/... Omni Link or omnioutliner:///open... Legacy Link copied from OmniOutliner.

On-Demand
ts
import { openLink } from 'protocol-launcher/omnioutliner'

const url = openLink({
  url: 'omnioutliner:///doc/My%20Outline.ooutline?folder=iCloud%20Drive',
})

Generated URLs ​

ts
openDocument({ documentName: 'My Outline.ooutline', folder: 'iCloud Drive' })
// => 'omnioutliner:///doc/My%20Outline.ooutline?folder=iCloud%20Drive'

openDocumentRow({
  path: 'foo/bar',
  documentName: 'My Outline.ooutline',
  folder: 'Work Server 9070',
  focus: 'mDFTZpAeCb8',
  row: 'fh4Q0jgg5iB',
})
// => 'omnioutliner:///doc/foo/bar/My%20Outline.ooutline?folder=Work%20Server%209070&focus=mDFTZpAeCb8&row=fh4Q0jgg5iB'

openLegacyLink()
// => 'omnioutliner:///open'

openLegacyLink({ focus: 'nBZUyLQl3b6', row: 'j3NzslZpCi8' })
// => 'omnioutliner:///open?focus=nBZUyLQl3b6&row=j3NzslZpCi8'

Official Documentation ​