
Wiki Switch
Switch, list, show, or create named Obsidian wiki vault profiles via `~/.obsidian-wiki/config.NAME` symlinks without hand-editing paths each session.
Overview
Wiki Switch is an agent skill most often used in Operate (also Build docs, Grow content) that activates named Obsidian wiki vault profiles by symlinking `~/.obsidian-wiki/config`.
Install
npx skills add https://github.com/ar9av/obsidian-wiki --skill wiki-switchWhat is this skill?
- Dispatches `/wiki-switch`, `list`, `show`, `new`, and no-arg list from one skill entry
- Manages `~/.obsidian-wiki/config.<name>` files with active config as symlink to `config`
- Switch flow runs `ln -sf` and reads `OBSIDIAN_VAULT_PATH` from the activated profile
- Supports natural language triggers: “switch to my work wiki”, “which wiki am I on”, “add a new wiki profile”
- Verifies named config exists before switch and surfaces available vaults on failure
- Four dispatch actions: Switch, List, Show, and New vault profile
- Configs live at `~/.obsidian-wiki/config.<name>` with active `config` as symlink
Adoption & trust: 1.1k installs on skills.sh; 1.8k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You juggle multiple Obsidian wiki configs and waste time manually symlinking or guessing which `OBSIDIAN_VAULT_PATH` is active.
Who is it for?
Indie builders using obsidian-wiki with separate work, personal, or client vault profiles on one machine.
Skip if: Users with a single vault and no `~/.obsidian-wiki` config layout, or teams that manage vaults only inside Obsidian UI without CLI profiles.
When should I use this skill?
User says `/wiki-switch NAME`, switch vault, list wikis, show active vault, or create a new wiki profile.
What do I get? / Deliverables
You get a verified vault switch, list, or new profile setup with a clear confirmation of vault name and path for downstream wiki commands.
- Active vault confirmation with name and OBSIDIAN_VAULT_PATH
- Vault list or profile detail from show/list
- New `config.<name>` scaffold when using New
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Vault profile switching is ongoing knowledge-base operations once your Obsidian wiki toolchain exists, not greenfield product coding. Iterate fits because you repeatedly re-point the active config symlink as you move between personal, work, or experimental vaults.
Where it fits
You finish a client note in the work vault and need `/wiki-switch personal` before evening journaling automations run.
You add `/wiki-switch new client-a` while standardizing wiki configs for a new product’s documentation vault.
Before batch-exporting articles you run list/show to confirm `OBSIDIAN_VAULT_PATH` points at the growth content vault.
How it compares
Use instead of manual `ln -sf` and cat-ing config files when your agent already supports slash-command style wiki workflows.
Common Questions / FAQ
Who is wiki-switch for?
Solo knowledge workers and developers who run multiple Obsidian wiki vaults through obsidian-wiki named config files.
When should I use wiki-switch?
Use it in Operate when changing active vaults mid-session; in Build docs when scaffolding a new `config.NAME`; in Grow content when confirming which vault path backs publishing or sync automations.
Is wiki-switch safe to install?
It instructs symlink changes under your home directory—review the Security Audits panel on this page and avoid switching to untrusted config paths.
SKILL.md
READMESKILL.md - Wiki Switch
# 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. 1. Verify `~/.obsidian-wiki/config.<name>` exists. If not, tell the user the vault doesn't exist and list what's available (run **List**). 2. Run: ```bash ln -sf ~/.obsidian-wiki/config.<name> ~/.obsidian-wiki/config ``` 3. Read `OBSIDIAN_VAULT_PATH` from the newly active config. 4. 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. 1. Find all files matching `~/.obsidian-wiki/config.*` (exclude `config` itself — that's the symlink). 2. Resolve the current symlink target: `readlink ~/.obsidian-wiki/config` 3. 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. 4. 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_KEY` or `SECRET` — show `***` instead of the value). --- ## New Scaffold a new vault config from the current active config as a template. 1. Check `~/.obsidian-wiki/config.<name>` doesn't already exist. Abort if it does. 2. Copy the active config: ```bash cp ~/.obsidian-wiki/config ~/.obsidian-wiki/config.<name> ``` 3. 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 4. 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. 5. Write the updated values into `~/.obsidian-wiki/config.<name>`. 6. Update the top comment line to describe the new vault (e.g., `# Obsidian Wiki — <name> vault`). 7. Confirm: ``` Created: ~/.obsidian-wiki/config.<name> Run `/wiki-switch <name>` to activate it, then run `wiki-setup` to initialise the new vault.