mcpField
W
wiki-switch

wiki-switch

github.com/ar9av生産性3.6k2.1k 回インストール1 日前に更新
リポジトリ

wiki-switch について

複数の Obsidian Wiki vault プロファイルを管理するスキルです。プロファイルの一覧表示、確認、新規作成、切り替えができ、シンボリックリンクで既定の vault を設定します。

主な機能

  1. 01既定の vault の切り替え
  2. 02プロファイル一覧と有効状態の表示
  3. 03秘密情報を伏せた設定表示
  4. 04既存設定を基にしたプロファイル作成

活用シーン

  1. 01個人用と仕事用の vault の切り替え
  2. 02有効な vault 設定の確認
  3. 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 プロファイルを有効にします。

  1. $CONFIG_DIR/config.<name> が存在することを確認します。存在しない場合は、Vault が存在しないことをユーザーに伝え、利用可能な Vault を一覧表示します(一覧表示を実行)。
  2. 次を実行します。
    ln -sf "$CONFIG_DIR/config.<name>" "$CONFIG_DIR/config"
    
  3. 新しくアクティブになった設定から OBSIDIAN_VAULT_PATH を読み取ります。
  4. 次の内容をユーザーに伝えます。
    Switched to vault: <name>
    Vault path: <value of OBSIDIAN_VAULT_PATH from the config>
    

一覧表示

登録済みのすべての Vault プロファイルと、アクティブな Vault を表示します。

  1. $CONFIG_DIR/config.* に一致するすべてのファイルを検索します(シンボリックリンクである config 自体は除外します)。
  2. 現在のシンボリックリンク先を解決します:readlink "$CONFIG_DIR/config"
  3. 各設定ファイルについて、最初に見つかった空でないコメント行(# で始まる行)を Vault の説明として読み取ります。コメントがない場合は、ファイル名のサフィックスをラベルとして使用します。
  4. 次のように表示します。
    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 の設定を作成します。

  1. $CONFIG_DIR/config.<name> がすでに存在していないことを確認します。存在する場合は中止します。
  2. アクティブな設定をコピーします。
    cp "$CONFIG_DIR/config" "$CONFIG_DIR/config.<name>"
    
  3. コピーした設定を読み込みます。設定ファイルでは、# --- Section name --- 形式のコメントヘッダーを使って、フィールドをセクションごとに分類しています(例:# --- Vault-specific ---、# --- Vault-independent ---、# --- Secrets ---)。これらのセクションを参考に、何を尋ねるか判断します。
    • 「vault-specific」、「paths」などのラベルが付いたセクションのフィールド → 新しい値をユーザーに尋ねます
    • 「vault-independent」、「global」、「shared」などのラベルが付いたセクションのフィールド → そのまま保持します(変更せずにコピーします)
    • 「secrets」のラベルが付いたセクションのフィールド → 新しい Vault で同じ認証情報を使うか、別のものを使うか尋ねます
    • セクションヘッダーがない場合は、すべてのフィールドを提示し、変更するものをユーザーに選んでもらいます
  4. Vault 固有のフィールドの新しい値をユーザーに尋ねます。現在の値をデフォルトとして表示し、変更する値だけ入力してもらいます。
  5. $CONFIG_DIR/config.<name> に新しい値を書き込みます。
  6. 先頭のコメント行を更新し、新しい Vault を説明します(例:# Obsidian Wiki — <name> vault)。
  7. 確認します。
    Created: $CONFIG_DIR/config.<name>
    Run `/wiki-switch <name>` to activate it, then run `wiki-setup` to initialise the new vault.
    
    自動的に切り替えないでください。ユーザーが有効化するタイミングを決められるようにします。

コメント