Obsidian SDK
System

Vaults

List and switch between Obsidian vaults programmatically.

Vaults Module

Overview

The Vaults module gives you programmatic access to Obsidian's vault management CLI commands — list all configured vaults and switch the active vault.

Quick Start

const vaults = await obsidian.vaults.listVaults();
console.log('Available vaults:', vaults);

await obsidian.vaults.setVault('PersonalVault');

Usage

MethodCLI CommandDescription
listVaults()obsidian vaultsReturns an array of vault names.
setVault(name)obsidian vault name=…Changes the active vault.

Examples

List Vaults

const vaults = await obsidian.vaults.listVaults();
console.log('Vaults:', vaults);

Switch Vault Safely

const target = 'WorkVault';
const vaults = await obsidian.vaults.listVaults();
if (vaults.includes(target)) {
  await obsidian.vaults.setVault(target);
  console.log(`Switched to ${target}`);
} else {
  console.warn(`Vault ${target} not found`);
}

Error Handling

try {
  await obsidian.vaults.setVault('UnknownVault');
} catch (e) {
  console.error('Vault switch failed:', e.message);
}

Best Practices

  • Validate the target vault exists before switching.
  • Keep vault names consistent across environments.
  • SDK instances created before a vault switch retain the old context; create a new Obsidian instance after switching.

On this page