Inbox Zeroは、GmailとOutlookのメールをAIで自動整理する受信箱管理アプリです。自動振り分け・ラベリング・返信ドラフト作成などをルールベースで行い、ダイジェスト配信やコールドメール検出も備えます。WebアプリのほかElectron製デスクトップアプリやCLI、画像プロキシまで含む本格的なOSSプロダクトです。
中心はapps/webのNext.js製Webアプリで、PrismaでPostgresを操作し、RedisやUpstashでキューやレート制御を担います。README記載のdevcontainer構成図でも、App・Postgres・Redisが1つのコンテナ群にまとまり、外部のGoogle OAuthとLLM Providerに接続する形が示されています。ユーザーがGoogleでログインするとGmailやOutlookのメールを取得し、自然言語のプロンプトをAIがルールへ変換し、送信者の分類・返信ドラフト作成・ダイジェスト要約などを自動実行します。この判定ロジックはapps/web/__tests__のai-regression配下に多数のテストがあり、ai-choose-rule・ai-categorize-senders・ai-prompt-to-rulesなど個々のAI判断を単体で検証しています。apps/desktopはElectronでこのWebアプリをBrowserWindowとして開くだけの薄いシェルで、独自プロトコルinboxzero://でOAuthコールバックを受け取り、認証は結局Webアプリ側のGoogle OAuthフローに依存します。
- STEP 01
VS CodeでDev Containerを開くと、Postgresコンテナ・Redisコンテナ・Appコンテナが自動起動し、依存関係インストールとマイグレーションが走るのを目にします。
- STEP 02
apps/web/.envにGOOGLE_CLIENT_ID、GOOGLE_CLIENT_SECRET、DEFAULT_LLMSなどのAPIキーを自分で追記しないと先に進めないことに気づきます。
- STEP 03
pnpm devを実行してlocalhost:3000を開くと、まずログイン画面が表示され、Google OAuthでGmailと連携する手順を求められます。
- STEP 04
ルール作成画面で「未読の請求書メールにラベルを付ける」のような自然文を入力すると、AIがそれを実行可能なルールに変換する様子を確認できます。
- STEP 05
受信メールに対して実際にラベリングや返信ドラフトの生成が走り、その履行履歴がダッシュボードやダイジェストに反映されます。
- STEP 06
apps/web/__tests__のe2eやai-regressionを回すには、別途Gmail・Outlookのテスト用アカウントとLLM APIキーが必要だと分かります。
手元では、Gmail・Outlook上の受信箱をAIルールで自動整理するローカル動作の受信箱アプリと、その判断ロジックを検証する大量の回帰テスト一式が手に入ります。加えてElectron製デスクトップアプリ、CLI向けドキュメント、画像プロキシ用の別アプリまで、同じモノレポの中で一貫して確認できます。
AIによるルール判定や要約にはLLM APIキーが必須で、OpenAIなど外部プロバイダーの利用コストが実際に発生します。
GmailやOutlookへのアクセスにはGoogle OAuthクライアントの設定が必要で、本番相当のスコープを使う場合は審査対応が別途求められます。
apps/web/__tests__/e2eやai-regressionのテストは、実在のGmail・Outlookテストアカウントとwebhookエンドポイントを前提にしており、READMEの手順だけでは完結しません。
デスクトップアプリはWebアプリをElectronで開くだけの薄いシェルなので、結局サーバー側のセットアップが動いていないと使えません。
自分のメールをAIルールで自動振り分けしたい個人や、OSSのメールAI基盤をセルフホストで試したいチームに向いています。devcontainer構成、豊富なai-regressionテスト、CIワークフロー群が揃っているため、README記載の手順どおりに動く可能性は高いと判断できます。ただしLLMキーやOAuth設定など外部依存が多く、実際の稼働確認には自分の環境でAPIキーを用意する作業が避けられません。