完全ローカルで動く、PowerPoint用のAIアシスタント アドイン。 研究データや社外秘のスライドを、クラウドに一切出さずにローカルLLMで編集・相談できます。
Windows版 Microsoft 365 PowerPoint の中で動く、.NET Framework 4.8 / C# / VSTO ベースのアドインです。右側のタスクペインに Copilot 風のチャットUIを追加し、自然文での相談とスライド編集の両方をローカルLLMで行います。
UI・ドキュメントは日本語です。ローカルLLMとして LM Studio + Qwen3.5-9B での動作を確認しています。
推論はすべてローカルのLLM(既定は LM Studio)で完結します。研究データ、未発表データ、社外秘、患者・被験者情報を含むスライドでも、内容がクラウドAPIへ送信されません。ネットワークに出るのは、あなたが明示的にファクトチェックでMCP検索を使ったときだけです。
AIは JSON の LayoutActionPlan(編集案)を提案するだけで、PowerPoint COM を直接操作しません。実際の編集は C# の ActionValidator(許可Action・対象範囲・shape ID・スライド境界・最小文字サイズ等を検証)と ActionExecutor が担います。適用前に必ず修正案を確認でき、before/after スナップショットで session 単位のロールバックも可能です。削除系Actionはそもそも許可リストにありません。
既定は LM Studio の OpenAI互換エンドポイントですが、OpenAI互換のchat/vision APIならエンドポイントとモデル名を設定タブで変えるだけで動きます。それ以外のバックエンド(自前サーバー、Ollama、llama.cpp、社内API等)も、Services/LmStudioClient.cs を差し替えれば接続できます。MITなので改造に制約はありません。
9B級の小さいモデルでも実用になるよう、Skill(Markdown定義)・Context Policy・JSON Schema・C#側の enum 正規化・検証付き再試行で出力を制御しています。賢さの足りない部分を仕組みで補う方針です。
- チャットファーストUI: 相談・質問・雑談はそのまま会話として応答し、
@current 見た目を整えてのような明確な依頼だけを編集として処理。バブル型表示・提案チップ・コンテキスト使用量バー。 - 対象指定
@:@current@selected@all@3@1-5(a枚目〜b枚目)@slide:3@after:2@before:4@figures@text@notes - コマンド
/:/proofread @all 誤字を直してのようにスキルを直接実行。「コマンド」タブに一覧。 - GUIでスキル作成: コマンドタブ/スキルタブから、コード無しで独自スキル(Markdown定義)を作成・保存。即
/スキル名で実行可能。 - 同梱スキル(17種): スライド生成、ネイティブ図形での図解、見た目調整、レイアウト診断、整列、校閲、翻訳、要約、資料Q&A、ファクトチェック(MCP)、5分再構成、スタイル統一、文章の簡潔化、結論型タイトル化 など。
- スライド生成: 内容計画(
SlideContentPlan)→ C#検証 → レイアウト変換に分離し、モデルにPowerPoint操作と内容作成を同時にやらせない構造。1スライド1メッセージ・結論型タイトル等、公開されているプレゼン作成の定石を取り込み。 - 安全網: session単位ロールバック、Action途中失敗時の自動復元、トークンを伏せる14日保持の診断ログ、多重送信防止、ローカル推論の中止。
- 設定の保護: APIキーは Windows DPAPI(CurrentUser)で暗号化して保存。
詳細な設計は LocalPptSkillAgent/README.md を参照してください。
ユーザー発話
→ 意図ルーティング(既定=キーワード / 任意でLLM)
→ Skill(Markdown定義 + Context Policy)
→ LLM(LM Studio, JSON Schema強制)
→ LayoutActionPlan(JSON, 編集案)
→ ActionValidator(許可Action・範囲・境界・最小文字サイズ)
→ ユーザーが確認して適用
→ ActionExecutor(PowerPoint COM操作) + before/afterスナップショット
LocalPptSkillAgent/— サービス・UI・Skillの共有ロジック(SDK形式 csproj、テスト対象)LocalPptSkillAgent.Vsto/— 実際のPowerPointホスト(VSTOプロジェクト)LocalPptSkillAgent.Tests/— xUnit テスト
- Visual Studio 2022 で「Office/SharePoint 開発」ワークロードと .NET Framework 4.8 targeting pack を有効にする。
LocalPptSkillAgent.slnを開く。Any CPUでビルドし、LocalPptSkillAgent.Vstoを実行(F5)すると PowerPoint が起動してアドインが読み込まれます。
共有ロジックとテストは CLI でもビルド/実行できます:
dotnet build LocalPptSkillAgent/LocalPptSkillAgent.csproj
dotnet test LocalPptSkillAgent.Tests/LocalPptSkillAgent.Tests.csproj
VSTOホスト(
LocalPptSkillAgent.Vsto)は Visual Studio の MSBuild でのみビルドできます(dotnetCLI では Office 開発ターゲットが解決されません)。ClickOnce配布で署名する場合は各自の証明書でSignManifestsを有効化してください(既定は無効)。
- LM Studio を起動し、ローカルサーバーを開始してモデル(例: Qwen3.5-9B)をロード。
- PowerPoint で「Local AI」→「Open Panel」。
- 設定タブで Base URL・エンドポイント・(必要なら)APIキー・Text/Visionモデルを合わせる。
- チャット欄に相談や
@current 見た目を整えてなどを入力。
改造は歓迎です。 MITライセンスなので、フォーク・改変・再配布・商用利用いずれも自由です。特に歓迎する方向:
- バックエンドの差し替え(Ollama / llama.cpp / vLLM / 社内API など)
- 新しいSkillの追加(Markdownを置くだけ、またはGUIから作成)
- レンダリング/レイアウトの改善、他言語UI対応
Issue・PR も気軽にどうぞ。設計の意図は各READMEとコード内コメントに日本語で書いています。
このプロジェクトは Claude(Anthropic)と Codex(OpenAI)を使って開発しました。スライド設計の方針は、公開されているプレゼン作成スキル(OpenAI/Codex の Presentations、Anthropic の pptx スキル等)の考え方を参考にしています。
MIT License © 2026 light-suzuki