# OffShoot Helper

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

{% hint style="info" %}
This feature requires an OffShoot Pro license.&#x20;
{% endhint %}

### Getting Started

1. Download [OffShoot Helper](https://downloads.hedge.video/offshoot/helper/latest/offshoot-helper.zip).
2. Open the app and click the OffShoot Helper icon in the menu bar.
3. Select `Example Workspace`.
4. 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. A separate menu item is created for each JSON file in the Workspaces folder.

![](https://1060439511-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LStRji2w1AYja1bLBFv%2Fuploads%2F44iMycnapD3vfBXNyDFV%2FWorkspaces.png?alt=media\&token=344c23e9-1631-4a45-bcba-3d0110b4f572)

### Workspace actions

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

```
[
  { 
    "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": "Transfer", // e.g "Transfer", "Source", "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",
            
            "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_checkpoint_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": ""
        }
```

{% hint style="info" %}
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](mailto:hello@hedge.video).
{% endhint %}

### Run bash commands

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

### Run AppleScript

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

The example below loads a workspace and uses [this script](https://docs.hedge.video/offshoot/features/automation/offshoot-helper/set-window-layout) to set two Finder windows on the right side of the OffShoot main window.&#x20;

{% hint style="info" %}
It's also possible to use a relative path
{% endhint %}

{% file src="<https://1060439511-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LStRji2w1AYja1bLBFv%2Fuploads%2FFtRhe8z2VxBkc2S4a7wm%2FSetup-Hedge-and-Finder.zip?alt=media&token=dfd3542f-fa78-4aff-9f0e-ad93f58b7619>" %}

![](https://1060439511-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LStRji2w1AYja1bLBFv%2Fuploads%2FMir4XujGuz0fb8Hq36n5%2Fimage.png?alt=media\&token=d393556d-358f-460b-a4b3-e9b6e4031c03)

### Autostart

By default, OffShoot Helper is set to automatically start at computer login. &#x20;

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
```

### Auto start workspace

OffShoot Helper can launch a workspace automatically on system 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"
```
