メインコンテンツまでスキップ

拡張機能とプラグイン

このページでは、NeoTavern でプラグインがどのように機能するかを説明します: どこから入手するか、権限と同意がどう機能するか、アプリが信頼できないコードをどう抑え込むかです。

プラグインとは

プラグインは NeoTavern に動作を追加します — ツールバーアクション、メッセージアクション、スラッシュコマンド、プロンプトインターセプター、カスタムパネル、ホットキー、バックエンドルート、外部サービスとの統合などです。プラグインはアプリ内部ではなく安定した Plugin SDK に対して実行され、登録したすべての機能はプラグインが無効化されると再び削除されます。

公式カタログには一部のプラグインが含まれています。サードパーティのパッケージは .stplugin ZIP または公開 Git リポジトリリンク(GitHub または GitLab、HTTPS のみ)からインストールされます。サーバーが Git や npm を実行することはありません: Git リンクはアーカイブとしてダウンロードされ、ZIP とまったく同じように検証されます。

プラグインのインストール

Plugins セクションを開いてパッケージをインストールします:

  1. インストール前に、アプリは作者、バージョン、ソース、互換性、署名(署名されている場合)、完全な権限一覧を表示します。
  2. 権限を確認し、明示的に同意します。要求されたすべての権限を確認するまで、パッケージは「同意が必要」状態のままです。
  3. インストールはアトミックです: エラーが発生した場合、前のバージョンがインストールされたまま動作し続けます。

パッケージが npm 依存関係を宣言している場合、レジストリから HTTPS 経由で解決され、チェックサムで検証され、実行されることはありません — インストールスクリプトとネイティブバイナリは完全に拒否されます。

権限

マニフェストの権限は、自動アクセスではなくケイパビリティの要求です。プラグインがチャットを読んだり、プロンプトを変更したり、ファイルに触れたり、ネットワークに到達したりする前に、一致する権限を付与する必要があり、同意画面はそれぞれが何をするかを説明します。2 つのルールが重要です:

  • アップデート後の新しい権限には新たな同意が必要です。 アップデートがプラグインの権限を黙って拡張することは決してありません。
  • 権限は取り消せます。取り消しはプラグインの次のケイパビリティ呼び出しで有効になります。

プラグインの管理

マネージャーは各プラグインの状態を表示します: 有効、無効、権限が必要、非互換、またはエラー。そこから次のことができます:

  • プラグインを有効化または無効化 します。無効化すると、再起動なしで UI、フック、タイマー、ルート、サブスクリプションが削除され、クリーンアップはホストによって強制されます。
  • アンインストール します。登録もクリアされます。
  • レガシー SillyTavern 時代の拡張機能の互換性を確認 します。互換性レベルと既知の制限が表示されます。

1 つのプラグインのエラーは分離されます: アプリはインターフェース全体を壊す代わりに、そのプラグインだけを無効化することを提案します。

プラグインの安全性

信頼できないバックエンドプラグインは別の制限されたプロセスで実行され、サンドボックス化されたプラグイン UI は制御された RPC チャネルを持つ iframe 内で実行されます。テーマパッケージはチャット、キー、ファイルにアクセスできません。セーフモードはすべてのサードパーティのプラグインとテーマを無効化し、それらが読み込まれる前に到達できるため、プラグインの誤動作からは常に脱出できます。セーフモードと復旧プラグイン SDK ドキュメントを参照してください。