Skip to content

BarCuts

BarCuts is a macOS menu bar app for running Shortcuts workflows. Protocol Launcher allows you to generate BarCuts URL scheme links for querying available workflows and running local workflows.

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

BarCuts documents barcuts://workflows for querying active and global workflows. The request can include x-success and x-error; on success, BarCuts calls the success URL with a data parameter containing the workflow list.

BarCuts also documents barcuts://run-workflow with either an id parameter or a title parameter. The optional input parameter passes text to the workflow. Protocol Launcher exposes only those documented URL shapes and parameters.

Workflows

On-Demand
ts
import { workflows } from 'protocol-launcher/barcuts'

const url = workflows({
  xSuccess: 'my-app://success',
  xError: 'my-app://failure',
})

Run Workflow By ID

On-Demand
ts
import { runWorkflowById } from 'protocol-launcher/barcuts'

const url = runWorkflowById({
  id: '17620440-E9E8-4B5C-9C7A-9B60C24DD428',
})

Run Workflow By Title

On-Demand
ts
import { runWorkflowByTitle } from 'protocol-launcher/barcuts'

const url = runWorkflowByTitle({
  title: 'Workflow 1',
  input: 'My input text!',
})

Generated URLs

ts
workflows()
// => 'barcuts://workflows'

workflows({
  xSuccess: 'my-app://success',
  xError: 'my-app://failure',
})
// => 'barcuts://workflows?x-success=my-app%3A%2F%2Fsuccess&x-error=my-app%3A%2F%2Ffailure'

runWorkflowById({
  id: '17620440-E9E8-4B5C-9C7A-9B60C24DD428',
})
// => 'barcuts://run-workflow?id=17620440-E9E8-4B5C-9C7A-9B60C24DD428'

runWorkflowById({
  id: '17620440-E9E8-4B5C-9C7A-9B60C24DD428',
  input: 'My input text!',
})
// => 'barcuts://run-workflow?id=17620440-E9E8-4B5C-9C7A-9B60C24DD428&input=My%20input%20text%21'

runWorkflowByTitle({
  title: 'Workflow 1',
  input: 'My input text!',
})
// => 'barcuts://run-workflow?title=Workflow%201&input=My%20input%20text%21'

Official Documentation