Deploy links

Prefab registers the prefab:// URL scheme, so a template can be deployed by opening a link. That puts a template within reach of Terminal, Shortcuts, a build script, or any other app that can open a URL.

The format

prefab://deploy?template=UUID&path=/some/folder&prompt=1
ParameterRequiredValue
templateYesThe template's UUID
pathNoA POSIX path, percent-encoded
promptNo1 to ask for values first

Without template nothing happens. Leave out path and Prefab asks where to create the folders, exactly as the Create… button does. Any value for prompt other than 1, or no prompt at all, deploys without asking. Unknown parameters are ignored.

Right-click a template in the sidebar and choose Copy Deploy Link. What lands on the clipboard is the shareable form, with no path:

prefab://deploy?template=6F1C0A32-6B0E-4C1B-9E4E-9E5B0C5A1D77

Opening that link asks where the folders should go and then prompts for values if the template needs any. Add &path=… yourself when you want a link that goes somewhere specific.

The right-click menu on a template in the Prefab sidebar, showing Copy Deploy Link
Windows screenshot coming soon
Copy Deploy Link sits between Duplicate and Export as File.

From Terminal

open hands the URL to macOSstart hands the URL to Windows, which passes it to Prefab:

open "prefab://deploy?template=6F1C0A32-6B0E-4C1B-9E4E-9E5B0C5A1D77"

# straight into a folder, no questions asked
open "prefab://deploy?template=6F1C0A32-6B0E-4C1B-9E4E-9E5B0C5A1D77&path=/Users/you/Projects"

# same folder, but ask for the values first
open "prefab://deploy?template=6F1C0A32-6B0E-4C1B-9E4E-9E5B0C5A1D77&path=/Users/you/Projects&prompt=1"

Quote the whole URL so the shell leaves the & alone, and percent-encode the path if it contains spaces or anything else a URL would object to. A space becomes %20.

From Shortcuts and other apps

In Shortcuts, the Open URLs action takes a prefab://deploy link and behaves the same way, which is enough to put a template behind a keyboard shortcut, a Stream Deck key or a folder action. Anywhere else that opens URLs works for the same reason: a launcher, a note, a text expander, a Makefile.

Prefab launches if it is not already running, and waits for its templates to finish loading before doing anything, so a link that arrives at a cold start is not lost.

A deploy link never opens the app's window. If Prefab has not shown its window since it started, it stays in the menu barnotification area and takes no Docktaskbar icon, so a link fired from a script does not interrupt what you are doing.

With prompt=1 you get the same form as any other deploy, pre-filled from what you typed last time. Without it, the deploy is silent and uses each placeholder's default value. That is deliberate: a scripted deploy should produce the same result every time rather than depending on what someone last typed into the prompt.

A silent deploy uses defaults, whatever they are

Without prompt=1, a placeholder with an empty default resolves to nothing, and you get a folder with a piece of its name missing. Give placeholders sensible defaults before wiring a template into a script, or use prompt=1.

If the folder in path is one Prefab has never been given access to, it asks for permission before creating anything and continues once you grant it. See Ways to deploy for how that works.