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| Parameter | Required | Value |
|---|---|---|
template | Yes | The template's UUID |
path | No | A POSIX path, percent-encoded |
prompt | No | 1 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.
Getting a link
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.

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.
What happens when a link opens
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.
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.