wiki-switch について
複数の Obsidian Wiki vault プロファイルを管理するスキルです。プロファイルの一覧表示、確認、新規作成、切り替えができ、シンボリックリンクで既定の vault を設定します。
主な機能
- 01既定の vault の切り替え
- 02プロファイル一覧と有効状態の表示
- 03秘密情報を伏せた設定表示
- 04既存設定を基にしたプロファイル作成
活用シーン
- 01個人用と仕事用の vault の切り替え
- 02有効な vault 設定の確認
- 03既存設定を基にした新しい vault の準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ar9av/ obsidian-wiki --skill wiki-switchインストール後、Claude Code で/wiki-switchを入力して読み込まれたか確認します。
詳細
Wiki Switch — 複数の Vault プロファイルを管理する
グローバル設定ディレクトリ。 以下のすべてのパスはグローバル設定ディレクトリからの相対パスです。llm-wiki/SKILL.md の Config Resolution Protocol に従って解決します。$XDG_CONFIG_HOME/obsidian-wiki(デフォルトは
~/.config/obsidian-wiki)、またはディスク上にすでに存在する場合はレガシーの ~/.obsidian-wiki です。呼び出しごとに一度だけ、次のように解決してください。
CONFIG_DIR="$( [[ -d "$HOME/.obsidian-wiki" && ! -e "${XDG_CONFIG_HOME:-$HOME/.config}/obsidian-wiki" ]] && echo "$HOME/.obsidian-wiki" || echo "${XDG_CONFIG_HOME:-$HOME/.config}/obsidian-wiki" )"
各 Vault は $CONFIG_DIR/config.<name> にある完全な設定ファイルです。アクティブな Vault は、$CONFIG_DIR/config がシンボリックリンクしているファイルです。Vault の切り替えでは、そのシンボリックリンク先を変更します。
切り替えとインライン指定。 /wiki-switch <name> は永続的なデフォルトを変更します(シンボリックリンク先を変更し、今後のすべてのリクエストに影響します)。デフォルトを変更せずに、1回のリクエストだけ別の Vault を使うには、任意のリクエストでインラインの @name オーバーライドを使用します(例:@work save this、wiki-query @personal about X)。@name オーバーライドはこのスキルではなく、llm-wiki/SKILL.md の Config Resolution Protocol によって処理されます。これはその呼び出しに限り $CONFIG_DIR/config.<name> を解決し、シンボリックリンク先は変更しません。
ディスパッチ
呼び出しを解析し、該当するセクションに振り分けます。
| 呼び出し | アクション |
|---|---|
/wiki-switch <name> | → 切り替え |
/wiki-switch list | → 一覧表示 |
/wiki-switch show [name] | → 表示 |
/wiki-switch new <name> | → 新規作成 |
/wiki-switch(引数なし) | → 一覧表示(一覧表示として扱う) |
@<name> …(任意のリクエスト内のインライン指定) | → このスキルの対象外 — Config Resolution Protocol が、シンボリックリンク先を変更せずに、その呼び出しに限り該当する Vault を解決します |
切り替え(デフォルトのアクション)
名前を指定して Vault プロファイルを有効にします。
$CONFIG_DIR/config.<name>が存在することを確認します。存在しない場合は、Vault が存在しないことをユーザーに伝え、利用可能な Vault を一覧表示します(一覧表示を実行)。- 次を実行します。
ln -sf "$CONFIG_DIR/config.<name>" "$CONFIG_DIR/config" - 新しくアクティブになった設定から
OBSIDIAN_VAULT_PATHを読み取ります。 - 次の内容をユーザーに伝えます。
Switched to vault: <name> Vault path: <value of OBSIDIAN_VAULT_PATH from the config>
一覧表示
登録済みのすべての Vault プロファイルと、アクティブな Vault を表示します。
$CONFIG_DIR/config.*に一致するすべてのファイルを検索します(シンボリックリンクであるconfig自体は除外します)。- 現在のシンボリックリンク先を解決します:
readlink "$CONFIG_DIR/config" - 各設定ファイルについて、最初に見つかった空でないコメント行(
#で始まる行)を Vault の説明として読み取ります。コメントがない場合は、ファイル名のサフィックスをラベルとして使用します。 - 次のように表示します。
アクティブなものにはVaults: personal My personal research wiki ← active work Work projects wiki← activeを付けます。シンボリックリンクが切れている場合、またはconfigが存在しない場合は、(none active)と表示します。
表示
Vault の設定全体を出力します。
- 名前が指定されている場合は、
$CONFIG_DIR/config.<name>を読み取ります。 - 名前が指定されていない場合は、
$CONFIG_DIR/config(アクティブな Vault)を読み取ります。 - ファイルが存在しない場合は、その旨をユーザーに伝え、利用可能な Vault を一覧表示します。
- ファイルの内容をそのまま出力します(
API_KEYまたはSECRETを含む行は、値を***に置き換えて伏せます)。
新規作成
現在アクティブな設定をテンプレートとして、新しい Vault の設定を作成します。
$CONFIG_DIR/config.<name>がすでに存在していないことを確認します。存在する場合は中止します。- アクティブな設定をコピーします。
cp "$CONFIG_DIR/config" "$CONFIG_DIR/config.<name>" - コピーした設定を読み込みます。設定ファイルでは、
# --- Section name ---形式のコメントヘッダーを使って、フィールドをセクションごとに分類しています(例:# --- Vault-specific ---、# --- Vault-independent ---、# --- Secrets ---)。これらのセクションを参考に、何を尋ねるか判断します。- 「vault-specific」、「paths」などのラベルが付いたセクションのフィールド → 新しい値をユーザーに尋ねます
- 「vault-independent」、「global」、「shared」などのラベルが付いたセクションのフィールド → そのまま保持します(変更せずにコピーします)
- 「secrets」のラベルが付いたセクションのフィールド → 新しい Vault で同じ認証情報を使うか、別のものを使うか尋ねます
- セクションヘッダーがない場合は、すべてのフィールドを提示し、変更するものをユーザーに選んでもらいます
- Vault 固有のフィールドの新しい値をユーザーに尋ねます。現在の値をデフォルトとして表示し、変更する値だけ入力してもらいます。
$CONFIG_DIR/config.<name>に新しい値を書き込みます。- 先頭のコメント行を更新し、新しい Vault を説明します(例:
# Obsidian Wiki — <name> vault)。 - 確認します。
自動的に切り替えないでください。ユーザーが有効化するタイミングを決められるようにします。Created: $CONFIG_DIR/config.<name> Run `/wiki-switch <name>` to activate it, then run `wiki-setup` to initialise the new vault.