OffShoot Helper

Automatically set up OffShoot with the OffShoot Helper menu bar app.

OffShoot Helper is a small menu bar app (macOS only) that enables you to automatically set up OffShoot with a specific configuration called Workspaces.

This feature requires an OffShoot Pro license. Upgrade via the license manager, or via OffShoot > Settings > License. Check out all Pro features here.

OffShoot Helper is currently in Beta. Because it uses API calls, it requires an OffShoot Pro license. Want to upgrade to an OffShoot Pro license? You can do so directly in the License Manager:

Getting Started

  1. Open the app and click the OffShoot Helper icon in the menu bar

  2. Select Example Workspace

  3. OffShoot will open, setting a Source and Destination

Workspace files are stored in ~/Library/Preferences/Hedge/Workspaces/. You can quickly get to this location by selecting Manage Workspaces...

A Workspace is a JSON file that specifies how to set up OffShoot. For each JSON file in the Workspaces folder, a separate menu item is created.

Workspace actions

A workspace file contains an array with one JSON object that can define the following actions:

    "clearSourcesAndDestinations": true,
    "setSources": ["/Users/hedge/Desktop"],
    "setDestinations": ["/Users/hedge/Desktop"],
    "setPreferencesToDefault": true,
    "setPreferences": {"keyword": "value"},
    "runBashCommands": ["say 'Hello'"],
    "runAppleScript" : "/path/to/scriptfile.scpt"

Clear Sources and Destinations

When set to true, OffShoot clears all Sources and Destinations.

"clearSourcesAndDestinations": true

Set Destinations

Sets one or multiple Destinations e.g ["/path/to/destinationOne","/path/to/destinationTwo"]

"setDestinations": ["/Volumes/X1"],

Set Sources

Sets one or multiple Sources as a collection e.g:["/path/to/source1","/path/to/source2"]

"setSources": ["/Volumes/Z1", "/Volumes/Z2"]

Restore Default Preferences

When set to true, OffShoot's preferences are reset to their default setting (except for Connect, Cloud, and License preferences).

"setPreferencesToDefault": true,

Set Preferences

Set any preference by using the dictionary below.

"setPreferences": {
            "general_auto_source_recents": "0",
            "general_auto_source_name_enabled": "1",
            "general_auto_source_name_pattern": "UNTITLED;ARRI UDF;A*_*;B*_*",
            "general_auto_recognize_destinations_enabled": "1",
            "general_auto_eject_sources": "0",
            "general_date_tomorrow_starts": "0",
            "transfers_queue_mode": "0",
            "transfers_verification_mode": "SourceAndDestination",
            "transfers_logs_on_destination_enabled": "1",
            "transfers_logs_on_destination_mhl_per_file_enabled": "0",
            "transfers_extra_log_location": "",
            "transfers_force_underscores": "0",
            "connect_enable": "0",
            "connect_reset_connect_on_quit": "0",
            "integrations_foolcat_enable": "0",
            "integrations_foolcat_match_destination": "",
            "integrations_foolcat_report_location": "",
            "integrations_foolcat_report_name": "{Source Name}",
            "integrations_foolcat_report_description": "",
            "integrations_frameio_enable": "0",
            "integrations_parashoot_enable": "0",
            "integrations_scratch_enable": "0",
            "integrations_scratch_match_destination": "",
            "integrations_scratch_match_extension": ".mov; .mp4",
            "integrations_scratch_project": "",
            "integrations_scratch_group": "{YYYY}-{MM}-{DD}",
            "integrations_scratch_timeline": "{Source Name}",
            "integrations_scratch_watchfolder": "/Library/Application Support/Assimilator/Watch",
            "scripting_opt_in": "0",
            "scripting_events_verification_issue": "",
            "scripting_events_disk_added": "",
            "scripting_events_disk_busy": "",
            "scripting_events_disk_idle": "",
            "scripting_events_disk_removed": "",
            "scripting_events_disks_idle": "",
            "scripting_events_file_copy_completed": ""

Not all Preferences are built-in, we're adding them on a need-to-have basis. Missing one that is required in your workflow? Let us know.

Run bash commands

"runBashCommands": ["say 'Hello'"]

Run AppleScript

"runAppleScript" : "/path/to/scriptfile.scpt"

The example below loads a workspace and uses this script to set two Finder windows on the right side of the OffShoot main window.

It's also possible to use a relative path


By default, OffShoot Helper is set to automatically start at computer login.

Terminal command to disable:

defaults write nl.syncfactory.Hedge.Mac.Helper launchAtLogin 0

Terminal command to enable:

defaults write nl.syncfactory.Hedge.Mac.Helper launchAtLogin 1

Terminal command to check the current autostart setting:

defaults read nl.syncfactory.Hedge.Mac.Helper launchAtLogin

Startup workspace

OffShoot Helper can launch a workspace automatically on startup: Terminal command to enable a startup workspace:

defaults write nl.syncfactory.Hedge.Mac.Helper launchWorkspaceAtStart "filename.json"

Terminal command to disable the startup workspace:

defaults delete nl.syncfactory.Hedge.Mac.Helper launchWorkspaceAtStart 

Terminal command to check the current startup workspace:

defaults read nl.syncfactory.Hedge.Mac.Helper launchWorkspaceAtStart 

Change workspaces folder

You can set a custom workspaces folder with this Terminal command:

defaults write nl.syncfactory.Hedge.Mac.Helper CustomWorkspaceDirectory "/the/path/to/the/custom/dir"

Last updated