Vincent La29 downloadsCreate desktop shortcuts to your vault and notes.
Create Desktop shortcuts to an Obsidian vault or file.
Windows also supports Start Menu shortcuts.
.url in your configured Start Menu Programs folder. Windows controls when it
appears in All apps/search; pinning to Start is a separate manual Windows action.Discovery uses the official Obsidian CLI. Enable it under Settings → General → Command line interface, follow the prompt to register it on PATH, and restart Obsidian so it sees the updated PATH. The CLI requires installer 1.12.7+; updating only the app may not update its installer. If discovery fails or returns nothing, the dialog explains the setup and still allows manual entry. Manual names must match a vault already known to Obsidian; they are not validated by opening another vault. Duplicate names remain ambiguous, so enter a vault ID when needed.
Files go to the system Desktop or the explicitly selected Windows Start Menu.
Existing files are preserved; duplicates receive
(2), (3), etc. A notice shows the created path or explains a failure. The
plugin does not launch the shortcut automatically. Double-click it to open the
vault or note in Obsidian.
In plugin settings, Context menu options provides separate Desktop shortcuts and Start menu shortcuts toggles. Both default to enabled; Start menu is shown only on Windows. Changes apply to newly opened file menus and persist in this vault. Settings-page actions and command-palette commands remain available.
Requires Obsidian desktop 1.13.7 or newer. Mobile is not supported.
| Platform | Shortcut | Desktop discovery |
|---|---|---|
| Windows | .url |
Windows configured Desktop, including normal Known Folder redirection |
| macOS (experimental) | .url |
Native Desktop folder lookup |
| Linux (experimental) | .desktop link |
XDG Desktop lookup |
Mac .url shortcuts into Obsidian have been reported working by a Mac user.
Linux support depends on the desktop environment: users may need to allow launching,
and some environments do not display Desktop icons. This plugin does not change
launcher trust settings or protocol registrations.
The plan is end-user testing and issue reports. Automated checks do not establish that a live Obsidian command or Desktop double-click works on every platform. Mac/Linux behavior has not been tested on those operating systems in this workspace.
Use Node 22 or newer for development. Install the locked dependencies, then run:
npm ci --ignore-scripts
npm run lint
npm run build
npm test
Copy main.js, manifest.json and styles.css to the vault-shortcuts folder in your vault's
configured plugins directory (normally <vault>/.obsidian/plugins/vault-shortcuts/).
Reload Obsidian and enable Vault Shortcuts in Community plugins. The stylesheet
sizes the vault list. The compiled JavaScript includes the plugin's runtime helpers.
No release or directory submission has been published as part of this implementation. Use a test vault when trying a development build.
This plugin writes files outside your vault, on your Desktop, only when you invoke a creation action. It queries the system for that directory and uses Node filesystem APIs to create the shortcut. The Windows lookup invokes a hidden, noninteractive Windows PowerShell process; Mac/Linux use their system directory lookup commands. These use fixed code/arguments, never vault or note text as shell code, and have bounded execution time.
The Windows Start Menu action writes to your current user's Programs folder
(usually %APPDATA%\Microsoft\Windows\Start Menu\Programs). PowerShell resolves
the configured Programs folder; the shared writer creates a .url containing the
Obsidian URI directly. No Explorer wrapper or temporary link generation is needed.
It does not change Start pins or write to the all-users Start Menu.
Version 0.0.2 uses .url for both Windows destinations, following successful
user testing of Start Menu pinning. Existing .lnk shortcuts remain untouched;
recreate them if you want the new format.
Opening Create shortcut to another vault invokes the CLI with fixed vaults verbose arguments and parses
name/path rows, ignoring recognized startup messages. On Windows it first checks
beside the running app for Obsidian.com, then supports older Obsidian.exe
installers; it also checks PATH. Child input is closed explicitly so discovery
does not require pressing Enter. The call has a ten-second timeout, with distinct
messages for missing CLI, timeout and unexpected output.
It does not read Obsidian's internal registry, open other notes, or save
the discovered list. Discovery runs when this dialog opens; manual entry remains
available while it loads or if it fails.
The plugin does not read note contents, edit notes, overwrite existing shortcuts, make network requests, collect telemetry, or install/update anything. It does not require accounts or payment. System Desktop synchronization services may sync the created files; their names and URIs contain vault/note names and paths.
Disabling or uninstalling the plugin leaves created shortcuts in place. They use Obsidian's built-in URI handler and do not require this plugin to remain enabled.
File shortcuts preserve the complete extension and use Obsidian’s URI handler. How a file opens depends on Obsidian and any installed file-viewer plugins; creating a CSV shortcut does not add CSV viewing support. Folders are excluded.
obsidian:// association. If the file
was created but does not open Obsidian, report a launch/association issue rather
than a file-creation failure.# are rejected because Obsidian interprets that character
as a heading separator after decoding. No folder, heading or batch shortcuts.For an issue report, include OS/Obsidian/plugin versions, which action you used, the error notice, whether creation or launching failed, whether Obsidian was already running, and whether Desktop is redirected/synced. Include the default browser if it affects URI routing. Redact private names and paths from examples. A real issue-tracker link will be added when the repository is published.
Read AGENTS.md for strict TypeScript and official Obsidian review rules,
and PLAN.md for decisions and the creator interface. The runtime uses
IShortcutCreator, a public ShortcutCreator factory/facade and one creator per OS.
URI construction and safe file creation are shared.
Implementation lives in src/, with entry point src/main.ts and creators/helpers
in src/shortcuts/. Tests and fixtures live in tests/. Build configuration and
the generated main.js remain at the repository root, preserving installed symlinks.
GitHub Actions runs lint, tests and the build for pushes to master and pull requests. To release, update the version in manifest.json, package.json and package-lock.json (including its root package entry), commit the changes, and push a matching tag such as 0.0.2, without a v prefix. Push the version commit to master as well, so the Community directory sees the correct manifest on the default branch.
The Release workflow builds that tag and attaches main.js, manifest.json and styles.css to a GitHub release after all checks pass. Generated main.js stays out of source control. The workflow can also be run manually against an existing tag; a rerun replaces same-named release attachments. Do not move published tags; use a new version for changes. Linux CI skips the two native Windows integration tests; run npm test on Windows before a release to exercise those as well.
MIT. This is an independent community plugin, not an official Obsidian product.