SKILL.md
Wiki Switch — Manage Multiple Vault Profiles
Each vault is a complete config file at ~/.obsidian-wiki/config.<name>. The active vault is
whichever file ~/.obsidian-wiki/config symlinks to. Switching vaults means re-pointing that symlink.
Dispatch
Parse the invocation and route to the right section:
Invocation
Action
/wiki-switch <name>
→ Switch
/wiki-switch list
→ List
/wiki-switch show [name]
→ Show
/wiki-switch new <name>
→ New
/wiki-switch (no args)
→ List (treat as list)
Switch (default action)
Activate a named vault profile.
- Verify
~/.obsidian-wiki/config.<name>exists. If not, tell the user the vault doesn't exist and list what's available (run List).
- Run:
ln -sf ~/.obsidian-wiki/config.<name> ~/.obsidian-wiki/config
- Read
OBSIDIAN_VAULT_PATHfrom the newly active config.
- Confirm to the user:
Switched to vault: <name>
Vault path: <value of OBSIDIAN_VAULT_PATH from the config>
List
Show all registered vault profiles and which is active.
- Find all files matching
~/.obsidian-wiki/config.*(excludeconfigitself — that's the symlink).
- Resolve the current symlink target:
readlink ~/.obsidian-wiki/config
- For each config file, read the first non-empty comment line (lines starting with
#) as a human description of the vault. Fall back to the file's suffix as the label if no comment exists.
- Display:
Vaults:
personal My personal research wiki ← active
work Work projects wiki
Mark the active one with ← active. If the symlink is broken or config doesn't exist, show (none active).
Show
Print the full config for a vault.
- If a name is given, read
~/.obsidian-wiki/config.<name>.
- If no name given, read
~/.obsidian-wiki/config(the active vault).
- If the file doesn't exist, tell the user and list what's available.
- Print the file contents verbatim (redact any lines containing
API_KEYorSECRET— show***instead of the value).
New
Scaffold a new vault config from the current active config as a template.
- Check
~/.obsidian-wiki/config.<name>doesn't already exist. Abort if it does.
- Copy the active config:
cp ~/.obsidian-wiki/config ~/.obsidian-wiki/config.<name>
- Read the copied config. Config files use
# --- Section name ---comment headers to group fields into sections (e.g.,# --- Vault-specific ---,# --- Vault-independent ---,# --- Secrets ---). Use these sections to determine what to ask about:
- Fields in sections labeled "vault-specific", "paths", or similar → ask the user for new values
- Fields in sections labeled "vault-independent", "global", "shared" → keep as-is (copy over unchanged)
- Fields in sections labeled "secrets" → ask if the new vault uses the same credentials or different ones
- If there are no section headers, present all fields and let the user decide which to change
- Ask the user for updated values for the vault-specific fields. Use the current values as visible defaults — the user only needs to supply what differs.
- Write the updated values into
~/.obsidian-wiki/config.<name>.
- Update the top comment line to describe the new vault (e.g.,
# Obsidian Wiki — <name> vault).
- Confirm:
Created: ~/.obsidian-wiki/config.<name>
Run `/wiki-switch <name>` to activate it, then run `wiki-setup` to initialise the new vault.
Do not switch automatically — let the user decide when to activate.