Ulysses
Ulysses is a powerful writing app for Mac, iPad and iPhone. Protocol Launcher allows you to generate deep links to create and manage sheets, groups, and notes in Ulysses.
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 App
ts
import { open } from 'protocol-launcher/ulysses'
const url = open()Open Item
Open a sheet or group by identifier, name, or path.
ts
import { openItem } from 'protocol-launcher/ulysses'
const url = openItem({
id: 'DCj45UWKr_g15y2vBPwJdQ',
})New Sheet
Create a new sheet with optional content, group, format, and position.
ts
import { newSheet } from 'protocol-launcher/ulysses'
const url = newSheet({
text: 'My new sheet content',
group: '/Books',
format: 'markdown',
index: 0,
})Insert Text
Insert or append text to an existing sheet.
ts
import { insert } from 'protocol-launcher/ulysses'
const url = insert({
id: 'H8zLAmc1I0njH-0Ql-3YGQ',
text: 'Inserted text',
format: 'markdown',
position: 'end',
newline: 'prepend',
})Attach Note
Attach a note to a sheet.
ts
import { attachNote } from 'protocol-launcher/ulysses'
const url = attachNote({
id: 'H8zLAmc1I0njH-0Ql-3YGQ',
text: 'My new note',
format: 'markdown',
})Attach Keywords
Add keywords to a sheet.
ts
import { attachKeywords } from 'protocol-launcher/ulysses'
const url = attachKeywords({
id: 'H8zLAmc1I0njH-0Ql-3YGQ',
keywords: 'Draft,Important',
})New Group
Create a new group for organizing sheets.
ts
import { newGroup } from 'protocol-launcher/ulysses'
const url = newGroup({
name: 'My Group',
parent: '/Books',
index: 0,
})Copy Item
Copy a sheet or group to a target location.
ts
import { copy } from 'protocol-launcher/ulysses'
const url = copy({
id: 'hZ7IX2jqKbVmPGlYUXkZjQ',
targetGroup: 'H8zLAmc1I0njH-0Ql-3YGQ',
index: 4,
})Open All
Open the special "All" group showing all sheets.
ts
import { openAll } from 'protocol-launcher/ulysses'
const url = openAll()Open Favorites
Open the special "Favorites" group.
ts
import { openFavorites } from 'protocol-launcher/ulysses'
const url = openFavorites()Open Recent
Open the special "Last 7 Days" (Recent) group.
ts
import { openRecent } from 'protocol-launcher/ulysses'
const url = openRecent()