Skip to content

Open QuickAdd from a URI

A special link, obsidian://quickadd, runs a QuickAdd choice from outside Obsidian - from an Apple Shortcut, a launcher, another app, or a Markdown link in a note. You give it the name of the choice to run and, optionally, the values to fill in, and QuickAdd runs it just as if you had triggered it yourself.

This is the shape of the link:

obsidian://quickadd?choice=<YOUR_CHOICE_NAME>[&value-VALUE_NAME=...]

The only required part is choice, which picks the choice to run by its name. The name has to match exactly, or QuickAdd cannot find it.

If you would rather script this from a shell than build links, see QuickAdd CLI for the native Obsidian CLI commands.

Add a value-<name> parameter for each named value the choice asks for. A capture asking for {{VALUE:contents}} is filled by value-contents=....

If a variable name has a space in it, encode the space as %20 like everything else. A variable named log notes is passed as value-log%20notes=....

Values are used exactly as they are encoded in the link. If a format should ignore an accidental leading or trailing space for one placeholder, add |trim to it, for example {{VALUE:log notes|trim}}.

Unnamed values - a bare {{VALUE}}/{{NAME}}, or {{MVALUE}} - cannot be filled from the link. QuickAdd prompts for them inside Obsidian as usual.

Like every Obsidian URI, you can add a vault parameter to say which vault to run QuickAdd in. Leave it out and Obsidian uses your most recent vault.

obsidian://quickadd?vault=My%20Vault&choice=Daily%20log&value-contents=Lorem%20ipsum.

QuickAdd can open a callback link once a choice finishes, so whatever triggered it (an Apple Shortcut, say) can react to the result and receive the path of the affected note. This follows the x-callback-url convention.

ParameterFired when
x-successthe choice completed successfully
x-errorthe choice failed, was aborted, was not found, or is unsupported
x-cancelyou cancelled a prompt while the choice was running
x-callback-urllegacy shorthand - used only when none of the above are present; it then fires for success and cancel (never error)

If you do not provide a slot, nothing opens for that outcome (there is no fallback - a cancel with no x-cancel opens nothing).

Only shortcuts: and obsidian: callback links are allowed. Any other scheme (such as https:, file:, or javascript:) is rejected and the choice does not run.

QuickAdd appends these query parameters to your callback link:

  • On x-success: status=success, and - for Template/Capture - path=<vault-relative path> and url=<obsidian://open…> pointing at the affected note.
  • On x-error: status=error and a stable errorCode (one of choice-not-found, unsupported-choice-type, execution-failed, execution-aborted, bad-callback-url). The detailed error message stays in Obsidian’s log and is never sent to the callback.
  • On x-cancel: status=cancel.

Your callback link is itself a value inside the obsidian:// link, so it must be fully percent-encoded (double-encoded). If you leave a = or & un-encoded, Obsidian’s URI parser silently cuts the callback off before QuickAdd ever sees it.

For example, this looks reasonable but is broken - the =My%20Cool%20Shortcut part is dropped, leaving shortcuts://run-shortcut?name:

obsidian://quickadd?choice=Daily%20log&x-success=shortcuts://run-shortcut?name=My%20Cool%20Shortcut

The correct form encodes the entire x-success value:

obsidian://quickadd?choice=Daily%20log&x-success=shortcuts%3A%2F%2Frun-shortcut%3Fname%3DMy%2520Cool%2520Shortcut

(Note the %2520 - the spaces inside the shortcut name are encoded twice because the value is decoded once by Obsidian and once by Shortcuts.)

Trigger a capture, run a shortcut on success, and pass along the created note’s path:

obsidian://quickadd?vault=My%20Vault&choice=Daily%20log&value-contents=Lorem%20ipsum&x-success=shortcuts%3A%2F%2Frun-shortcut%3Fname%3DLog%2520Saved

On success QuickAdd opens your x-success link with these extra query parameters appended (shown here decoded - they are percent-encoded on the wire):

  • status = success
  • path = Daily/2026-06-14.md
  • url = obsidian://open?vault=My Vault&file=Daily/2026-06-14.md

Your shortcut reads them from the link it was opened with.

Introduced in QuickAdd 2.14.0.