xiaYuTian11/maskit

数据面具 Data Maskit — 专为大模型打造的本地隐私脱敏网关(请求自动打码,回复流式还原;支持 Cursor / Claude Code / Codex / Pi 等任意可配 Base URL 工具)

Maskitとは?

Maskitは、開発ツール(Cursor、Claude Code、ChatGPTなど)と、呼び出す大規模モデルAPIの間に位置するローカルプライバシーゲートウェイです。リクエストがマシンを離れる前に、APIキー、データベースURL、個人ID、電話番号、デバイス上の小さなNERモデルが認識するエンティティなど、機密データを自動的に決定的なプレースホルダー(例:{{CONNSTR_zkpmqx}})に置き換えます。モデルが応答を返すと、Maskitは回答をストリーミングして戻し、プレースホルダーをメモリ内でミリ秒単位で元の値に交換するため、ユーザーエクスペリエンスは変わりません。

なぜ重要か

AIコーディングアシスタントにコードのデバッグやドキュメントの分析を依頼するとき、認証情報やプライベートなビジネス情報を含むスニペットを貼り付けることがよくあります。その生データをクラウドプロバイダーに送信すると、シークレットが漏洩する可能性があります。MaskitはAIツールに変更を加えることなく漏洩を防ぎます。ツールをローカルURLにポイントする(またはブラウザ拡張機能をインストールする)だけで、ゲートウェイがマスキングとアンマスキングを自動的に行います。

コア機能(READMEに記載の通り)

機能 説明
ディープなルールベースのマスキング 21の組み込み正規表現カテゴリ、デフォルトで7つ有効(APIキー、銀行カード、DB接続文字列、メール、ID番号、固定電話と携帯電話)。ユーザーは他の14カテゴリを有効にしたり、カスタムの単語や正規表現を追加できます。
マルチターン一貫性 同じエンティティは会話全体で同じプレースホルダーを取得するため、モデルは複数ターンにわたって正しく推論できます。
ローカルNERモデル(ONNX) 軽量な中国語エンティティ認識モデルが、正規表現では見逃す名前、組織、住所を識別します。100%オフラインで実行され、オプションです。
ブラウザ拡張機能 MV3 Chrome/Edge拡張機能が、人気のWebベースのAIポータル(ChatGPT、Claude、DeepSeek、その他14サイト)へのリクエストをインターセプトします。プロンプトをマスクし、アップロードされたOfficeファイルをマスクし、ページのタイピングエフェクトUIで回答を復元します。
SSEストリーム処理 OpenAI/Anthropicの text/event-stream 応答に対して、Maskitはプレースホルダーをチャンクごとに復元し、スムーズな「タイピングマシン」エクスペリエンスを維持します。
ゼロ証明書、フォールバックパススルー 各モデルは独自のローカルポート(例:OpenAIは18701)を持ちます。システム全体のルートCAインストールは不要です。ゲートウェイが停止した場合、トラフィックは変更されずに透過的に転送されるため、ツールがエラーになることはありません。
ローカルテストベッド UIパネルでテキストを貼り付けると、マスクされたバージョンと復元された出力が即座に表示され、ルールのデバッグに役立ちます。
エージェント向けスキル契約 組み込みのプレースホルダー契約(maskit-placeholders)をダウンロードできるため、Claude CodeやCursorなどのエージェントはプレースホルダーを不変トークンとして扱います。
フルスタックログと監査 リクエストごとのログに、マスクされたリクエスト、生の応答、タイミング、検出されたエンティティタイプの内訳が表示されます。オプションのモードは最小(生テキストを保存しない)から詳細(完全なトランスクリプト)まであります。
プロンプトインジェクション検出とコマンドブロッキング ゲートウェイは危険なモデル出力(例:rm -rf /)をフラグ付けまたは書き換えることができます。これはオプションで、ツールパラメータチャネルで動作します。
コスト追跡 モデルの価格表に基づいて、トークン使用量と金銭的コストを推定します。
導入オプション • Windows/macOS用デスクトップクライアント(自動更新付きインストーラー)。
• Dockerイメージ(マルチアーチ)で、ポート5801にWebコントロールパネル、プロキシポートは18701から始まります。
• 開発者向けソースビルド。

使用方法

  1. デスクトップ – 適切なパッケージをインストールし、トレイアプリを実行し、AIツールの ベースURL を http://127.0.0.1:18701/v1(または設定したポート)に設定します。ゲートウェイは送信プロンプトをマスクし、受信応答をアンマスクします。
  2. Docker – ghcr.io/xiayutian11/maskit:latest をプルしてコンテナを実行し、パネルポートと1つ以上のプロキシポートを公開します。UIに http://<host>:5801 でアクセスし、そこでクライアントを設定します。
  3. ブラウザ – リリースzipから拡張機能をロードし、実行中のMaskitインスタンスにトークンでリンクし、使用するサイトを有効にします。拡張機能は手動でURLを変更する必要はありません。

誰が使うべきか?

  • AIコーディングアシスタントを使用し、認証情報を非公開にしたい個人開発者。
  • サーバーまたはNASで共有AIゲートウェイを実行する小規模チーム。
  • 機密データが企業ネットワークを離れる前に100%オフライン処理を必要とするセキュリティ意識の高い組織。

制限事項(開示されている通り)

  • NERモデルはソースリポジトリには含まれていません。プリビルドバイナリとDockerイメージにのみ含まれています。
  • ファイルタイプのマスキングは現在ChatGPTとClaudeで実装されています。他のサイトでは、警告付きでファイルが変更されずに送信されます。
  • コマンドブロッキングはプレーンテキストのツールパラメータのみを検査します。難読化またはスクリプト化されたコマンドはバイパスされる可能性があります。
  • すべての処理はローカルCPUで行われます。大量の同時使用にはより多くのコアが必要になるか、NERコンポーネントを無効にする必要があるかもしれません。

TL;DR: Maskitは、AGPLライセンスのオープンソースのローカルプロキシで、LLM APIに送信されるプロンプトから機密情報を自動的に編集し、モデルの応答で元のデータを復元します。デスクトップアプリ、Dockerイメージ、ブラウザ拡張機能として利用できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト