個人開発で AI デスクトップ作ったら、チャットから cron / 並列バッチ / 編集可能な .pptx まで吐けるようになった
TL;DR
Praxia Desktop という Windows 用のローカル AI ワークスペースを作って、Microsoft Store に無料で公開しました。
何ができるか を一言で:
チャットから話しかけるだけで、cron スケジュール登録・複数ファイルへの並列バッチ実行・編集可能なネイティブ .pptx 出力までを一気通貫で実行できる
特徴をまとめると:
- ローカル完結 — ドキュメントも会話履歴もディスク内、サーバーには送らない
- 無料 — Microsoft Store 0 円、Apache 2.0 OSS
- 8 言語 UI — 日本語含む
- 20+ SaaS コネクタ — GitHub / Slack / Notion / kintone / etc.
- 任意の LLM プロバイダ — OpenAI / Anthropic / Azure / Gemini / Ollama (ローカル) / LM Studio
- MCP 対応 — Claude Desktop / Cursor 向けの MCP サーバーがそのまま動く
以下、具体的に何ができるかを 3 つのユースケースで紹介します。
ユースケース 1: 「毎週月曜の朝に...」とチャットしただけで cron 登録
ありがちな話: 「毎週この資料の変更点を要約してチームに共有したい」。普通なら:
- シェルスクリプト書く
- crontab で時間指定
- メール送信ロジック書く
- デバッグ
- 動かない、Slack 通知に乗り換え
- 結局やめる
Praxia Desktop だとこう:
ユーザ: 毎週月曜の朝 9 時に Documents フォルダ内のドキュメントの
変更点を要約して、結果を workspace/weekly-summary.md に書いて
これを Chat タブで投げると:
- LLM が「これは毎週繰り返し実行する必要があるタスク」と判断
- POSIX cron 式 (
0 9 * * 1) に変換 - Schedules タブに登録される
実行時間が来たら Praxia が自動的に動作:
- Documents フォルダの diff を取る
- LLM に要約させる
- ワークスペースに書き込み (承認制 — 詳細後述)
人間が cron 式を書く必要なし。後から「やっぱり水曜の朝も追加して」と言えば、また自然言語で書き換えできます。
ニッチポイント: 「自然言語 → POSIX cron 変換」自体は珍しくないですが、「cron で起動した後、Praxia 内部で agent loop が動いて、出力をユーザ承認制でディスクに書き込む」 までを 1 アプリで完結するのは結構珍しいと思います。
ユースケース 2: 50 個の PDF を並列で処理
「採用候補者から PDF 履歴書が 50 件届いた。それぞれの強みと弱みを抽出してマトリクスにまとめたい」。
普通だと:
- 50 件を 1 件ずつ ChatGPT に投げる
- もしくは Python スクリプトを書いて API を叩く
- どっちも面倒
Praxia Desktop だとこう:
ユーザ: Documents/candidates/ にある PDF それぞれについて、
強みと弱み、技術スタック、推奨ポジションを抽出して
マトリクスにまとめて
Praxia の挙動:
- PDF 50 件を検出
- 50 個のエージェントを並列で spawn (LLM provider 側のレート制限内で)
- Batches タブでライブ進捗が見える
- 全件終わったら結果を集約
途中で「8 番目だけ失敗した」みたいな状態も見えるので、個別に再実行できます。
完了後にチャットで「結果を 1 枚の表にまとめて」と言うと、各候補者の比較表が 1 画面に出ます。さらに「Q3 採用枠用に上位 5 名を絞って」と言えば LLM が ranking して理由付きで返してきます。
ニッチポイント: 並列度の制御を LLM provider のレート制限に従って自動調整 しているのが地味だけど大事。OpenAI / Anthropic / Gemini どれを設定しても、それぞれの TPM/RPM に合わせて自動で並列度が変わります。
ユースケース 3: チャットから「編集可能な」PowerPoint が出る
これが個人的には一番面白い機能です。「Praxia が画像ベースのスライドを作る」 ではなく、「実際に編集可能な .pptx ファイルを作成、保存する」。
ユーザ: 先週の Documents/sales/ の変化を Q3 振り返り資料として
作って。チャート 3 枚、要約スライド 1 枚、ネクストアクション
1 枚で。コーポレートカラーは紺と白基調で。
Praxia の動作:
- Plan — スライド構成 (outline) を LLM が決める
- Generate — python-pptx を使う Python コードを LLM が生成
-
Render — そのコードを Praxia 内部で実行して
.pptxを出力 - Review — 生成したスライドを PNG に変換し、vision-LLM (GPT-4o / Claude 3.5 Sonnet etc.) に「レイアウト崩れていない? 文字はみ出てない? 配色一貫してる?」と聞く
- Iterate — 問題があれば修正コードを再生成
ワークスペースに保存した .pptx は 完全に編集可能 — PowerPoint で開いて、テキスト変更・チャート編集・図形追加が普通にできます。
ニッチポイント: vision-LLM で生成 .pptx をチェックして自動修正するループ、ここまでやっているデスクトップアプリは多分国内でほぼ無い。Microsoft 365 Copilot の「PowerPoint 作成」も生成のみで、自己チェックループは入っていません。
ローカル完結という設計思想
会話履歴もドキュメントも すべて自分のディスク内。Praxia が運営する集中サーバーは存在しません。
LLM プロバイダへの送信は ユーザが Settings で選んだ 1 社のみ。OpenAI を選んだら OpenAI に、Ollama を選んだら手元の Ollama インスタンスに。完全オフラインで使いたいなら Ollama or LM Studio に切り替えれば ネットに 1 バイトも出ない。
これは「ローカル AI」を謳う他アプリと違って 本気のローカル完結。Anthropic / OpenAI への送信ですら「ユーザが明示的に選んだ場合のみ」。
加えて ディスク書き込みは全部承認制。LLM が「workspace/output.pptx を作りたい」と言ってきたら、ダイアログが出てユーザが Apply or Reject を選びます。勝手にファイルが作られることはありません。
8 言語対応で日本語もネイティブ
UI は最初から 8 言語: 英語 / 日本語 / 簡体中文 / 한국어 / Español / Français / Deutsch / Português (BR)。
日本語でチャットしたら日本語で返事が来ます。英語で書いたら英語で返事。表示言語の切り替えも Settings から即時。
これは個人開発でやるには地味に大変で、UI 文字列が 200 個 × 8 言語 = 1600 個を管理する必要がある。ただし機械翻訳ではなく、各言語ネイティブのチェックを入れています。
20+ SaaS コネクタ
GitHub / Slack / Notion / Google Drive / Dropbox / OneDrive / Linear / Jira / Trello / Asana / kintone / Salesforce / HubSpot / Confluence / Zendesk / Intercom / Discord / Telegram / Zoom / Microsoft Teams
各コネクタは per-user OAuth で接続。「Alice が Notion で見られないページは Praxia 経由でも見られない」という ACL 透過性を担保しています。サービスアカウント方式 (一般的 SaaS の手抜き実装) と違って、ユーザー間のデータ混線が発生しない設計です。
加えて MCP (Model Context Protocol) にも対応。Claude Desktop や Cursor 用に書いた MCP サーバー (stdio / HTTP/SSE 両方) がそのまま Praxia でも動きます。
中身は何で出来てる?
ざっくり構成:
┌──────────────────────────────────┐
│ Tauri 2 シェル (Rust + Svelte) │
│ └─ 子プロセスとして spawn │
│ ↓ localhost HTTP │
│ Python サイドカー (PyInstaller) │
│ └─ FastAPI + uvicorn │
│ └─ litellm / chromadb / ... │
└──────────────────────────────────┘
↓ (ユーザ承認制)
ローカルファイル (Docs / Workspace)
↓ (HTTPS, ユーザ設定の LLM)
OpenAI / Anthropic / Azure / Gemini / Ollama
- シェル: Tauri 2 (Rust + Svelte 4)。WebView2 ベースで Electron より軽量
- サイドカー: Python (FastAPI + uvicorn)。PyInstaller でフリーズした単一バイナリ
- エージェント: LLM 駆動の tool-use loop
- メモリ: 5-layer stack (personal / consolidation / shared / frozen / graph) で個人知見が組織知に昇格する設計
- 検証: hallucination 検出 + retrieval eval が組み込み
LLM が「何を呼ぶか」を自分で決めて、ツールを 15 種類から自律的に組み合わせます。コード編集 AI が file_read / file_write を選ぶのと同じ仕組み。
おまけ: Microsoft Store に通した話
これだけでも 1 記事書けるんですが、最後にダイジェストで:
- MSIX パッケージング → Partner Center にアップ → Microsoft が Store identity で再署名 してくれる仕掛けで SmartScreen 警告がゼロ になる
-
runFullTrustの justification を 真面目に 5 項目 書いたら 初回審査 4 日で通過 - 認定後すぐ Store 公開、しばらく経って Submission 2 で Store 用 updater (= GitHub 自動更新を無効化) を追加
試してみる
- Microsoft Store: https://apps.microsoft.com/detail/9p9lsr34hzf3?hl=ja-JP&gl=JP
- GitHub (Apache 2.0): https://github.com/praxia-dev/praxia
-
PyPI:
pip install praxia(CLI 版) - 4分デモ動画: https://youtu.be/ZMieRZZPn_Q
- 公式サイト: https://praxia.tools/
質問・要望・「こんな機能欲しい」あれば GitHub Discussions か X (@praxia_dev) まで気軽にどうぞ。
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
