VOOZH about

URL: https://qiita.com/gen99/items/b5ee04644ff6da7e7671

⇱ 個人開発で AI デスクトップ作ったら、チャットから cron / 並列バッチ / 編集可能な .pptx まで吐けるようになった #Python - Qiita


👁 Image
12

Go to list of users who liked

11

Share on X(Twitter)

Share on Facebook

Add to Hatena Bookmark

👁 Image
この記事誰得? 私しか得しないニッチな技術で記事投稿!
Qiita Tech Festa20262026年7月13日まで開催中!

個人開発で AI デスクトップ作ったら、チャットから cron / 並列バッチ / 編集可能な .pptx まで吐けるようになった

12
Last updated at Posted at 2026-06-23

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 サーバーがそのまま動く

👁 Microsoft Store からインストール

以下、具体的に何ができるかを 3 つのユースケースで紹介します。


ユースケース 1: 「毎週月曜の朝に...」とチャットしただけで cron 登録

ありがちな話: 「毎週この資料の変更点を要約してチームに共有したい」。普通なら:

  1. シェルスクリプト書く
  2. crontab で時間指定
  3. メール送信ロジック書く
  4. デバッグ
  5. 動かない、Slack 通知に乗り換え
  6. 結局やめる

Praxia Desktop だとこう:

ユーザ: 毎週月曜の朝 9 時に Documents フォルダ内のドキュメントの
 変更点を要約して、結果を workspace/weekly-summary.md に書いて

これを Chat タブで投げると:

  • LLM が「これは毎週繰り返し実行する必要があるタスク」と判断
  • POSIX cron 式 (0 9 * * 1) に変換
  • Schedules タブに登録される

👁 Schedules タブ

実行時間が来たら Praxia が自動的に動作:

  1. Documents フォルダの diff を取る
  2. LLM に要約させる
  3. ワークスペースに書き込み (承認制 — 詳細後述)

人間が cron 式を書く必要なし。後から「やっぱり水曜の朝も追加して」と言えば、また自然言語で書き換えできます。

ニッチポイント: 「自然言語 → POSIX cron 変換」自体は珍しくないですが、「cron で起動した後、Praxia 内部で agent loop が動いて、出力をユーザ承認制でディスクに書き込む」 までを 1 アプリで完結するのは結構珍しいと思います。


ユースケース 2: 50 個の PDF を並列で処理

「採用候補者から PDF 履歴書が 50 件届いた。それぞれの強みと弱みを抽出してマトリクスにまとめたい」。

普通だと:

  • 50 件を 1 件ずつ ChatGPT に投げる
  • もしくは Python スクリプトを書いて API を叩く
  • どっちも面倒

Praxia Desktop だとこう:

ユーザ: Documents/candidates/ にある PDF それぞれについて、
 強みと弱み、技術スタック、推奨ポジションを抽出して
 マトリクスにまとめて

Praxia の挙動:

  1. PDF 50 件を検出
  2. 50 個のエージェントを並列で spawn (LLM provider 側のレート制限内で)
  3. Batches タブでライブ進捗が見える
  4. 全件終わったら結果を集約

👁 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 の動作:

  1. Plan — スライド構成 (outline) を LLM が決める
  2. Generate — python-pptx を使う Python コードを LLM が生成
  3. Render — そのコードを Praxia 内部で実行して .pptx を出力
  4. Review — 生成したスライドを PNG に変換し、vision-LLM (GPT-4o / Claude 3.5 Sonnet etc.) に「レイアウト崩れていない? 文字はみ出てない? 配色一貫してる?」と聞く
  5. Iterate — 問題があれば修正コードを再生成

👁 PowerPoint 出力

ワークスペースに保存した .pptx完全に編集可能 — PowerPoint で開いて、テキスト変更・チャート編集・図形追加が普通にできます。

ニッチポイント: vision-LLM で生成 .pptx をチェックして自動修正するループ、ここまでやっているデスクトップアプリは多分国内でほぼ無い。Microsoft 365 Copilot の「PowerPoint 作成」も生成のみで、自己チェックループは入っていません。


ローカル完結という設計思想

会話履歴もドキュメントも すべて自分のディスク内。Praxia が運営する集中サーバーは存在しません。

LLM プロバイダへの送信は ユーザが Settings で選んだ 1 社のみ。OpenAI を選んだら OpenAI に、Ollama を選んだら手元の Ollama インスタンスに。完全オフラインで使いたいなら Ollama or LM Studio に切り替えれば ネットに 1 バイトも出ない

👁 Documents タブ

これは「ローカル 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 個を管理する必要がある。ただし機械翻訳ではなく、各言語ネイティブのチェックを入れています。

👁 Chat 画面 (日本語)


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 からインストール

質問・要望・「こんな機能欲しい」あれば GitHub Discussions か X (@praxia_dev) まで気軽にどうぞ。

12

Go to list of users who liked

11
0

Go to list of comments

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12

Go to list of users who liked

11