Skip to main content
Obsidian URI is a custom URI protocol that lets you trigger Obsidian actions from external applications, scripts, and automation tools. It enables cross-app workflows and scripting without requiring Obsidian to be the frontmost window.

URI format

All Obsidian URIs follow this pattern:
All parameter values must be URI-encoded. Forward slashes (/) must be encoded as %2F and spaces as %20. Improperly encoded reserved characters will break the URI.

Available actions

Opens an Obsidian vault or a specific file within a vault.Parameters:Examples:
Navigate to a heading or block within a note using URI encoding: Note%23Heading targets a heading called “Heading”, and Note%23%5EBlock targets a block called “Block”.
Creates a new note in a vault, optionally with content.Parameters:Examples:
Creates or opens today’s daily note. The Daily notes core plugin must be enabled.Parameters:Accepts the same parameters as the new action.Example:
Creates a new unique note. The Unique note creator plugin must be enabled.Parameters:Examples:
Opens the Search panel in the specified vault, optionally pre-filling a search query.Parameters:Examples:
Opens the vault manager so the user can switch vaults.
Used with the Hook productivity app. Returns the address of the currently focused note.Parameters:Example:

x-callback-url parameters

Certain actions support the x-callback-url protocol via the x-success and x-error parameters. When Obsidian receives a URI with x-success, it appends the following to the callback URL upon success: Example callback:

Shorthand URI formats

Two shorthand formats are available as alternatives to the full query-string syntax:

Vault ID

The vault parameter accepts either the vault name or its ID. The vault ID is a random 16-character code assigned when the vault is created, for example ef6ca3e3b524d22f. To find a vault’s ID, open the vault switcher, right-click the vault, and select Copy vault ID.

Register the Obsidian URI on Linux

On Windows and macOS, running Obsidian once is sufficient to register the obsidian:// protocol. On Linux, registration requires additional steps:
1

Create a desktop entry file

Create an obsidian.desktop file following the GNOME desktop file guidelines.
2

Set the Exec field

Set the Exec field to Exec=executable %u. The %u passes obsidian:// URIs to the app.
3

AppImage installs

If you’re using the AppImage installer, unpack it first:
Then point the Exec directive at the unpacked executable.