Open your Obsidian vault in VS Code, Cursor, Antigravity, or Zed with a single click
A macOS desktop plugin for Obsidian that adds a ribbon button to launch your vault (and optionally the active file) in your preferred code editor.
- One-click launch from the ribbon
- Open current file option to jump directly to the active note
- Unified fallback app-open attempts use
open -afirst, thenopen -b - Path-safe handling for spaces and special characters
- Zero shell execution for security and reliability
| Editor | Launch Order |
|---|---|
| Visual Studio Code | code CLI -> open -a "Visual Studio Code" -> open -b com.microsoft.VSCode |
| Cursor | open -a "Cursor" -> open -b com.todesktop.230313mzl4w4u92 |
| Antigravity | agy CLI -> open -a "Antigravity" -> open -b com.google.antigravity |
| Zed | open -a "Zed" -> open -b dev.zed.Zed |
CLI editors (VS Code, Antigravity) try CLI first, then app-open fallback (open -a, then open -b).
- Open Settings > Community plugins in Obsidian
- Search for Vault Launcher
- Click Install, then Enable
- Download
vault-launcher.zipfrom the latest release - Extract to
<vault>/.obsidian/plugins/ - Enable the plugin in Settings > Community plugins
- Click the rocket icon in the ribbon
- Select Quick launch editor in settings to change default editor
- Toggle Open current file to include active note
- Enable editors in Show in command palette to add commands
Settings are persisted via Obsidian's loadData() / saveData():
| Setting | Type | Default | Description |
|---|---|---|---|
editorType |
vscode | cursor | antigravity | zed |
vscode |
Default editor for ribbon icon |
openCurrentFile |
boolean |
false |
Include active file in launch |
enabledEditors |
Record<EditorType, boolean> |
all false |
Editors to show in command palette |
- macOS
- Bun runtime
- Obsidian 1.7.2+
# Clone to plugin directory
git clone https://github.com/SuperJony/vault-launcher \
<vault>/.obsidian/plugins/vault-launcher
# Install dependencies
bun install
# Build
bun run buildbun run devbun run build # includes type checkingUnit tests:
bun run testIntegration tests (launches real applications):
INTEGRATION=1 \
INTEGRATION_VAULT_PATH=/path/to/vault \
INTEGRATION_FILE_PATH=/path/to/vault/note.md \
bun run test:integrationbun run lint
bun run formatbun run bump patch # or minor/major, updates package.json + manifest.json + versions.json
git push && git push --tagsGitHub Actions will:
- Build the plugin
- Verify tag matches
manifest.jsonversion - Create a draft release with
vault-launcher.zip,main.js, andmanifest.json
Then publish the draft release on GitHub.
- Requires Obsidian 1.7.2+ (for
removeCommandAPI) - macOS desktop only
- Uses
spawnwithshell: falsefor secure path handling - Paths passed as separate arguments to preserve spaces and special characters
- 10-second timeout per launch attempt
- App-open fallback order is
open -a, thenopen -b; CLI editors try CLI first - CLI failure triggers fallback; timeout does not
Inspired by open-obsidian-to-ide by @maoxiaoke.
MIT