Show HN: Klorn – AI対応受信箱が騒がしくなったので、メールファイアウォールを作った
Klornはオープンソースのメールファイアウォールで、チャット画面や提案カードを追加せずに、受信メールをSILENT、QUEUE、PUSH、AUTOの4段階に分類します。安価なAIモデルでスコアリングし、決定論的なルールで区分を決定することで、安全性と監査可能性を確保しています。セルフホストに対応し、完全なローカル開発ガイドも含まれています。
Klorn は、既存のAIメールツールとは全く異なるアプローチを取るメールファイアウォールです。他の多くのツールはメールに提案カードやAI下書き、バッジを追加し、受信箱をさらに騒がしくします。Klorn はその逆を行います。受信メールはそれぞれ SILENT(サイレント)、QUEUE(キュー)、PUSH(プッシュ)、AUTO(自動)のいずれかに分類され、その分類は決定に使用された正確なバイトデータに紐づけられます。チャット画面も提案カードもなく、出力は単一の判断であり、ほとんどの場合その判断は「これを見る必要はない」というものです。
Klorn の核心は4段階の分類システムにあります。SILENT は記録されるが表示されない(マーケティングメールや領収書など)。QUEUE はデフォルトで、後で自分のタイミングで確認する。PUSH はユーザーを中断する価値があるもので、通知が送られます。AUTO は可逆で手間のかからない自動処理ですが、そのアクション側は決定論的フロア(後述)の対象となります。
分類の決定は、LLMが直接階層を選ぶのではなく、まずモデルが各メールに対して信頼度、送信者信頼度、可逆性、緊急度の4つの特徴を0から1のスコアで評価し、その後、tier-policy.ts 内の決定論的なルールがこれらのスコアを階層にマッピングします。モデルは知覚の役割を担い、ルールは読み取り可能で単体テストが可能であり、モデルなしでも監査できます。
この分離により2つの重要な結果が生まれます。第一に、安価なモデルで十分であること。モデルが一貫して4つのシグナルを読み取るだけでよいため、最先端のモデルの推論深さは不要です。Klorn の50通の評価セットでは、gemini-2.5-flash が88%の精度で緊急メールの再現率100%を達成し、gpt-4o や gemini-2.5-pro(ともに82%)をコストの数分の一で上回りました。第二に、システムは安全にフォールバックします。LLMがダウンしたりレート制限された場合でも、キーワードによるフォールバックがゼロモデルコールで同じ4次元スコアを生成するため、緊急メールは確実に処理されます。
すべての分類はコンテンツハッシュによってバインドされています。スコアラーが読み取った正確なバイト(差出人、件名、スニペット、ラベル)は決定時にsha256ハッシュされ、行とともに保存されます。読み取りパスは再ハッシュし、不一致が発生すると AttentionHashMismatchError をスローするため、後続のエンリッチメントによって静かに階層が無効化されることはありません。
Klorn はさらに、元に戻せない操作(send_email、permanent_delete、forward_external)に対して決定論的フロアを設けています。これらの操作は分類器の信頼度だけで実行されることはなく、承認時に ActionReceipt が発行され、そのレシートは正規の受信者/件名/本文のペイロードバイト(sha256)を固定し、実行時に逸脱があれば操作は拒否されます。このメカニズムは強制されます。executeToolCall 内の中央ガードが、検証済みレシートなしで到着したフロアアクションに対して失敗閉鎖するため、自律パスでさえ承認を迂回して送信、転送、ハード削除を行うことはできません。
Klorn はまだ完成品ではありません。現在は1人の実ユーザー(作者)がいる初期の概念実証です。チャット機能はなく、マルチテナントクラウドではなく、セルフホストのみが現在のパスです。機能はオープンソースに対してゲートされておらず、Cloudエディションはマネージドホスティングや検証済みGmailスコープ、チームワークスペースを販売する予定ですが、ファイアウォールのドクトリンとコードは両エディションでリポジトリに残ります。
CI の赤いチェックは意図的なものです。Scope Budget は、変更がルート/ページ/スキーマの表面積を一定の予算を超えて増加させると失敗し、「はい、このスコープには価値があります」という意識的な確認を強制します。他のチェック(lint、型、テスト、ビルド、セキュリティ、評価)はすべて緑です。
ホストされているデモ (klorn.ai) は、Google OAuth テストモードで動作しています。これは gmail.modify スコープを使用するため、CASA Tier 2 検証を保留しているためです。セルフホストせずに試すには、テストユーザーとして追加される必要があります(最大100スロット)。最も速い方法は Issue を開くか、メールで連絡することです。
Klorn の最初の画面はチャットや受信箱ではなく、意思決定キューです。散在するシグナルがカードとして収集され、何を見るべきか、なぜ重要か、どのアクションが準備されているかの3つの質問に答えます。現在のインターフェースには、意思決定キュー、メール、カレンダー、ブリーフィング、設定が含まれます。
技術スタックは、フロントエンドに Next.js 15、React 19、TypeScript、Tailwind CSS、API に Fastify、TypeScript、Prisma、データベースに PostgreSQL、認証に JWT、bcrypt、Google OAuth、AI は OpenAI 互換(ローカル優先)で OpenRouter/Gemini フォールバック、リアルタイム通信に WebSocket と Web Push、課金に Stripe を使用しています。
ローカル開発には Node.js 22+、pnpm、PostgreSQL 16 が必要です。リポジトリをクローン後、環境ファイルをコピーし、暗号化キーを生成し、Google OAuth 認証情報を設定します。ローカル LLM を使用する場合は、Klorn を Ollama や LM Studio などの互換サーバーに向けることで、メール分類を完全にローカルで実行できます。データベースは docker-compose で PostgreSQL 16 を起動し、Prisma マイグレーションと生成を実行します。その後、API と Web の開発サーバーをそれぞれのターミナルで起動します。
まとめると、Klorn は知覚と判断の分離、コンテンツハッシュバインディング、決定論的フロアを通じて、既存のAI受信箱よりも静かで信頼性の高いメール処理方法を提供します。現時点では初期段階ですが、設計思想は明確で、コードはオープンソースであり、注目に値します。