DevProjex について
DevProjexは、フォルダーやGitリポジトリをフィルタリングし、トークン効率のよいコンテキストに変換する読み取り専用MCPサーバーです。GUIとCLIも備え、検出した秘密情報をマスクし、選択内容のプレビューとセッションメタデータのローカル記録を行えます。
主な機能
- 01読み取り専用のプロジェクト参照
- 02秘密情報と個人データのマスキング
- 03エージェント向けライブ選択
- 04トークン上限に合わせたコンテキスト作成
- 05フォルダーまたはZIPへの出力
- 06ローカルMCPセッションジャーナル
活用シーン
- 01コーディングエージェントに対象を絞ったリポジトリ情報を渡す
- 02AIチャット用に選択したファイルを準備する
- 03パックした内容の秘密情報漏えいを確認する
- 04フィルタリングしたプロジェクトのコピーを出力する
MCP 対応
MCPクライアントに、プロジェクトの参照とコンテキスト作成を行う8つの読み取り専用ツールを提供します。Live Contextでは、デスクトップアプリで選んだファイルがエージェントの次の呼び出しに反映されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
DevProjex:MCP/GUI/CLI/TUI をすべてひとつに
🏆 Avalonia UI チームにより App Showcase に選出
AI チャットやコーディングエージェント向けに、クリーンでトークン効率の高いコードベースのコンテキストを提供します。プロジェクトから何が送られるかを正確に確認でき、シークレットは送信前にマスクされます。
DevProjex は、あらゆるフォルダーや Git リポジトリを AI 向けのクリーンなコンテキストに変換します。ChatGPT や Claude に貼り付けたり、Claude Code、Codex、Cursor に読み取り専用の MCP サーバー経由でプロジェクトを読み込ませたりできます。デスクトップアプリ、ターミナルワークスペース、CLI、MCP サーバーは、Windows、macOS、Linux で、共通のエンジン、フィルター、マスキングパイプラインを使用します。
ファイルツリーで必要な項目にチェックを入れ、ライブプレビューとトークン数の見積もりを確認したら、結果を ASCII、Markdown、JSON、XML でコピーまたはエクスポートできます。または、プロジェクトのクリーンなコピーを フォルダーまたは ZIP として作成できます。
🔒 読み取り専用で、設計上テレメトリーはありません。 DevProjex がプロジェクトの内容をアップロードしたり、テレメトリーを収集したりすることはありません。
アプリのデモ 🖼️

ダウンロード 🚀
Microsoft Store: 👉 DevProjex
GitHub の最新リリース(Windows、macOS、Linux): 👉 github.com/Avazbek22/DevProjex/releases/latest
WinGet(Windows): winget install OlimoffDev.DevProjex
インストールせずに実行
CLI、ターミナルワークスペース、MCP サーバーは、npm または NuGet から、あるいはリリースのバイナリを直接実行できます:
npx devprojex tree . # Node.js 20+
dnx devprojex tree . # .NET SDK 10
./DevProjex tree . # release binary (DevProjex.exe on Windows)
npm パッケージと NuGet パッケージには CLI、ターミナルワークスペース、MCP サーバーが含まれますが、デスクトップアプリは含まれません。各プラットフォームの要件、ヘッドレス実行用のアーカイブ、非 root の Docker イメージについては、Docs/Installation.md をご覧ください。
DevProjex を選ぶ理由 💡
ファイルを 1 つずつチャットウィンドウにコピーする方法では、規模が大きくなると対応できません。パッキングツールは高速ですが、選択中ではなく、パッキング後に結果を確認することになります。また、通常のファイルアクセス権を持つコーディングエージェントは、使うすべてのツールに無視するよう指示しない限り、Program.cs と同じように .env を読み取れてしまいます。
DevProjex は、視覚的で、正確で、ローカルファーストという、異なるアプローチを取ります。
- プロジェクトから何が外部に出るかを確認できます: ファイルツリー、ライブプレビュー、トークン数の見積もり、そしてすべての MCP セッションの記録を残すエージェントジャーナル。
- 外部に出す内容を管理できます: スマート無視、Git モード、シークレットや個人データのマスキング、名前フィルター、保存済みプロファイル。
- エージェントにも同じルールが適用されます: MCP サーバーは読み取り専用で、シークレットのマスキングを無効にすることはできません。また、Live Context を使えば、チェックしたファイルがエージェントの注目対象になります。
- テキスト以上のものを取得できます: フォルダーまたは ZIP 形式で、プロジェクトの実際のコピーを取得できます。
注意点を含めた数値です。Repomix との最終ブラインドテスト(11 個のタスク、8 個のリポジトリ、6 種類の言語、各陣営 22 セッション、エージェントと判定者に Claude Haiku 4.5 を使用)では、DevProjex の使用トークン数は 973,020 で、Repomix は 1,174,907 でした。また、判定者は 22 組中 17 組で DevProjex の回答を信頼し、Repomix の回答を信頼したのは 3 組でした。7 個の認証情報を仕込んだテストでは、どちらのツールも値を漏らしませんでしたが、その周囲のコードは DevProjex では 7 ファイル中 7 ファイルで読みやすいまま保たれ、Repomix では 7 ファイル中 1 ファイルでした。タスクは作者が作成したもので、Repomix のほうがツール呼び出しは少なくて済み、「X の仕組みは?」という広範な質問には Repomix が勝ります。テスト全体と、エージェントおよび判定者の判定の逐語記録は、Docs/Benchmark-History.md にあります。
用途
- AI アシスタント: ChatGPT、Claude、DeepSeek、Qwen、Kimi に渡すクリーンな入力を作成できます。
- AI エージェント: どの MCP クライアントからでも、読み取り専用で常にマスキングを行うサーバーを通じてプロジェクトを読み取れます。チェックボックスで注目対象を指定できます。
- CI パイプライン: 値を一切出力せずに、シークレットがパッキングされたコンテキストに漏れる場合はビルドを失敗させられます。
- 制限された環境: AI エージェント、リモートインデックス作成、IDE プラグインが許可されない環境でも、同じクリーンなコンテキストを取得できます。
- 大規模なコードベース: リポジトリ全体ではなく、1 つのモジュールを取り出せます。
- コードレビューと教育: 構造と、重要なファイルだけを共有できます。
はじめに
- プロジェクトフォルダーを開くか、ドロップします。
- フォルダー、ファイル、フィルター、無視ルール、出力モードを選択します。
- プレビューしてから、コピー、エクスポート、ターミナルから同じワークフローを実行する、または MCP → Live context を通じてコーディングエージェントを接続します。
どの言語、リポジトリ、プロジェクト構造でも動作します。
機能の概要 ✨
選択と制御
- スマート無視: 証拠が見つかった場合に限り、ビルド出力、依存関係フォルダー、キャッシュを非表示にします。
- シークレットの非表示: 検出した認証情報をその場でマスクし、すべてのエクスポートとすべての MCP 応答に適用します。
- 個人データの非表示: メールアドレス、IP アドレス、MAC アドレス、電話番号、ユーザーパスを任意でマスクします。
- コード圧縮: シグネチャを残して関数本体を空にします。コードのみの場合、サイズを約 3 分の 1 にできます。
- コメントと空行の削除: 20 の言語パックで構文を認識して整理します。ソースファイルは変更しません。
- チェックボックス、検索、名前フィルターを備えたファイルツリー。
- Git モード:
.gitignore、追跡対象ファイル、ステージ済みファイル、すべての現在の変更、または ref 間の差分。
AI エージェント
- 読み取り専用 MCP サーバー: デスクトップアプリと同じエンジンを使用し、あらゆる MCP クライアント向けに 8 つのツールを提供します。
- ライブコンテキスト: デスクトップアプリでファイルにチェックを付けると、エージェントは次の呼び出しからその選択内容を使って作業します。
- エージェントジャーナル: 呼び出し、提供されたパス、トークン、マスクされた値を記録したセッションごとの受領記録です。ファイル本文は記録しません。
- 厳格な境界: ルートの監獄化、信頼できないデータのマーカー、表示範囲を狭めることしかできないエージェントを備えています。
プレビューとエクスポート
- ライブカウンターで行数、文字数、トークン数の推定値を確認できるライブプレビュー(ツリー、内容、または両方)。
- スクロールバーのマーカーで、検索結果とマスキング対象をひと目で確認できます。
- ASCII、Markdown、JSON、XML 形式で、ファイルまたはクリップボードにエクスポートできます。ツリーのみ、内容のみ、または両方を選択できます。
- プロジェクトのクリーンコピーをフォルダーまたは ZIP アーカイブにエクスポートできます。
ワークフローとインターフェース
- デスクトップアプリ、ターミナルワークスペース、CLI、MCP サーバーの 4 つの方法で、同じエンジンを使って作業できます。
- Git ツールを内蔵:URL によるクローン、ブランチの切り替え、キャッシュ済みコピーの更新。
- ローカルプロファイルで、プロジェクトごとの設定を保存できます。
- ライト、ダーク、システムの各テーマ、プラットフォーム標準のキーボードショートカット、20 言語のローカライズに対応しています。
- 非常に大きなフォルダーでも快適に動作します。
プロジェクトコピーのエクスポート
ファイル → プロジェクトをエクスポート → フォルダーへ… または ZIP アーカイブへ… を使うと、現在の選択内容の別コピーを作成できます。同じワークフローを devprojex export project からも利用できます。
プロジェクトコピーには、選択したルートフォルダー、ファイルの種類、無視ルール、チェック済みの項目が適用されます。何もチェックされていない場合は、現在のツリー全体がエクスポートされます。ディレクトリ構造、バイナリファイル、含めるよう指定した空のフォルダーは保持されます。シークレットの非表示または個人データの非表示が有効な場合、テキストファイル内の検出された値は置き換えられ、バイナリファイルは変更されません。その結果は意図的にバイト単位で同一のコピーにはならないため、ビルドや実行ができない場合があります。ソースプロジェクトは変更されず、結果をその中に書き込むこともできません。
MCP サーバー 🤖
DevProjex には、公式の C# MCP SDK を使用した、組み込みのセキュアな Model Context Protocol サーバーが付属しています。これにより、ローカルフォルダーや Git リポジトリを、AI エージェント向けのトークン効率の高いコードベースコンテキストに変換できます。Claude Code、Codex、Claude Desktop、Cursor、Google Antigravity、VS Code、またはあらゆる MCP クライアントに対応しています。デスクトップアプリ、ターミナルワークスペース、CLI と同じエンジンで動作します。デスクトップアプリのインストールの有無にかかわらず、1 行で Claude Code に接続できます。
claude mcp add devprojex -- npx -y devprojex mcp --root /absolute/path/to/project
内部では、すべてのクライアントが同じコマンド devprojex mcp --root /path/to/project を起動し、stdio 経由で通信します。
クライアントを接続する
- デスクトップアプリ: MCP → Live context または MCP → Standard を選択し、Open in Claude Code、Codex、Cursor、または VS Code を選びます。選択したサブメニューによって、登録がチェック済みのツリーに追従するかどうかが決まります。
- Terminal Workspace:
mcp connect <client> [live|standard]を実行すると、別のターミナルを開かずにサーバーを登録できます。ここではライブモードがデフォルトです。 - CLI:
devprojex mcp connect . --client <client>を実行します(--mode liveを指定しない限り、スタンダードモードになります)。クライアントを起動するには--openを、手動設定用の断片だけが必要な場合は--printを追加します。 - デスクトップアプリを使わない場合: npm または NuGet パッケージを使うと、
npx -y devprojexまたはdnx devprojexを通じて同じサーバーを実行できます。各クライアントの設定例は Docs/McpServer.md にあります。
Cursor と VS Code の場合は、プロジェクト内に .cursor/mcp.json または .vscode/mcp.json が作成されます。これらのファイルにあるほかのサーバー設定はそのまま保持されます。初回の呼び出しを確認するには、Claude Code で /mcp を使って DevProjex を確認するか、codex mcp list を実行してから、「DevProjex を使って、現在の選択範囲のツリーを表示してください」と尋ねます。この呼び出しはエージェントのジャーナルに記録されます。
Live Context:チェックボックスがエージェントのフォーカスになります

デスクトップアプリでプロジェクトを開き、MCP → Live context から接続します。以降、チェックしたツリーを対象にエージェントが作業します。
- チェック、チェック解除、完了。 エージェントは共有ローカルプロジェクトプロファイルを通じて、次の呼び出しから新しい選択範囲を確認できます。再起動も、新しいプロンプトも不要です。
- 制約ではなく、フォーカスです。 ツリー、検索、分析、依存関係、パックの各操作は、チェック済みの選択範囲内で行われます。チェックされていないファイルも、名前を指定すれば読み取れます。その際はフォーカス範囲外であることが通知されます。
- フィルターが範囲を決めます。 デスクトップアプリのフィルターとシークレットのマスキングは、エージェントが読み取るすべての内容に適用されます。フィルターで除外したファイルにはアクセスできません。
- 保存済みの結果も正確です。 保存されたパックは、作成時の選択範囲に固定されます。チェック状態を変更すると、エージェントは明示的にパックを再構築します。
- エージェントが取得した内容を確認できます。 エージェントが受け取った各ファイルにはツリー内に受信回数が表示され、ウィンドウタイトルにはアクティブなクライアントまたはセッション数が表示されます。また、プロジェクトを再度開くと、フォーカス中のパスが復元されます。
Live context は --live を使用します。Standard も同じサーバーに接続しますが、ウィンドウの選択範囲には追従しません。
読み取り専用ツール 8 種
読み取り専用ツール 8 種で、ワークフロー全体をカバーします:list_projects、get_tree、analyze、search_project、related_files、get_file、pack_context、read_pack。
search_projectは名前からテキストまたは宣言を検索し、get_fileはファイル全体ではなく、正確な行範囲または 1 つの宣言を読み取ります。related_filesは、1 つのファイルまたは少数の起点ファイルを対象に、実際のインポート情報から「このファイルが実際に使っているもの」と「このファイルを使っているもの」を特定します。そのため、関連をたどっても選択範囲が広がることはありません。pack_contextは選択範囲をmax_tokensの上限内に収めます。ファイルは決定論的な順序で、収まる分だけ追加され、残りはスキップ対象として報告されます。top_filesではトークンの割り当て先を確認できます。pack_contextとrelated_filesは、上限を超える結果をセッションパックとして保存します。read_packは、その内容を一度にエージェントのコンテキストへ大量に流し込むのではなく、行範囲を指定して読み取ります。時間のかかる操作では、標準の MCP 進行状況通知が送信されます。- ツリーはデフォルトでコンパクトな Markdown 形式です。コンテンツではルートを一度だけ宣言し、相対パスを使用します。各ツリーの末尾にはアクティブなフィルターを示す行があり、エージェントは確認できなかった内容を把握できます。
git_scopeを使うと、任意のツールの対象をステージ済みファイル、現在の変更、または参照間の差分に絞り込めます。profileでは、組み込みのデフォルト、保存済みのデスクトップ選択、またはポータブルなプロファイルファイルを切り替えられます。
エージェントジャーナル:各セッションの記録

ローカルのエージェントジャーナルには、ファイル本文や検出された秘密情報の値を記録せず、MCP セッションのメタデータと件数を記録します。各セッションには、クライアント、モード、合計値(呼び出し回数、文字数、トークン推定数、配信ファイル数、マスクされた値、所要時間)が表示されます。セッションを開くと、各ツール呼び出しが引数の概要、リビジョン、タイミング、通知とともに一覧表示されます。デスクトップアプリ(MCP → Journal)、Terminal Workspace、または CLI から確認し、呼び出し、配信されたパス、合計値を示す Markdown または JSON のコンテキストレシートをエクスポートできます。エージェントが取得する内容を監査したい場合は、デスクトップアプリで同じプロジェクトを開いてください。エンジンとマスキングパイプラインは共通で、同じプロファイルとパラメーターを使用するとフィルターも一致します。
セキュリティ境界
サーバーは、DevProjex の読み取り専用設計に加えて、厳格なセキュリティ境界を適用します。
- 設計上、読み取り専用です。 ツールはプロジェクトファイルを変更したり、プロジェクトのコードを実行したりできません。Git URL プロジェクトで
--allow-remoteが明示的に有効になっていない限り、ネットワークアクセスは無効です。 - MCP モードでは秘密情報のマスキングが常に有効で、無効にする方法はありません。 サーバーフラグにもツールスキーマにもないため、設定ミスでもエージェント自身でも無効にはできません。
- 任意のプライベートデータのマスキングは、CLI フラグと同様に
devprojex mcp --hide-private-dataで有効にできます。 - ルート監獄。 ローカルアクセスは起動時のルートに固定されます。オプトインでチェックアウトするリモート Git URL は初回使用時に固定されます。シンボリックリンクやジャンクションによる逸脱は拒否されます。
- エージェントができるのは表示範囲を狭めることだけです。 エージェントのパスと glob は選択範囲を狭めることしかできず、
.git管理領域は決して公開されません。 - デフォルトでは Git の表示範囲です。 Smart Ignore と
.gitignoreが適用される一方、Dockerfile、.github/、ドットファイル、空のファイルは表示されたままです。この表示範囲を広げるかどうかは起動時に決めるもので、エージェントが決めることはありません。--excludeのベースライン、--unrestrictedプリセット、またはオプトインの--allow-agent-exclusionsフラグを使用します。 - プロンプトインジェクション対策。 返されるファイル内容は、信頼できないデータを示すマーカーで囲まれます。
無効にする方法がないことは、制御の保証であり、検出の保証ではありません。DevProjex は一般的な秘密情報の形式を検出しますが、検出はヒューリスティックです。環境外で公開する前に、各パックを確認してください。
クライアントの設定、すべてのツールのリファレンス、セキュリティモデルについては、Docs/McpServer.md を参照してください。5.1 から 5.2 にかけての MCP サーバーの測定結果と、エージェントおよびブラインド判定者の評価の逐語記録は、Docs/Benchmark-History.md にあります。
コマンドライン ⚙️
DevProjex はターミナルからも実行できます。対話型の作業に使う、キーボード操作を中心としたTerminal Workspaceと、繰り返し可能なスクリプト向けのプロジェクト分析および AI コンテキストのエクスポートに使う CLI を利用できます。

devprojex # open the Terminal Workspace
devprojex open . --preview # desktop app on this folder, preview pane open
devprojex tree . # project tree
devprojex tree https://github.com/owner/repo --branch main # tree of a remote repository
devprojex analyze . --format json # files, lines, tokens, largest files
devprojex analyze . --git-mode tracked --exclude smart-ignore # tracked files only, with Smart Ignore applied
devprojex analyze . --hide-secrets --findings --fail-on-findings # CI gate: findings, never values
devprojex export context . --format markdown -o ../context.md # packed context for a chat
devprojex export context https://github.com/owner/repo -o - # straight from a Git URL to stdout
git diff --name-only | devprojex export context . --select-from - -o - # only the changed files
devprojex export project . --as zip --hide-secrets -o ../submission.zip # masked project copy
devprojex search Configure . --symbols # declarations by name
devprojex related src/App.cs --direction both # what a file uses, and who uses it
devprojex profile save . --hide-secrets on # remember these settings for this project
devprojex cache update https://github.com/owner/repo # refresh a cached clone
CLI が追加する機能
- CI パイプライン向けのスクリプト可能なエクスポート: JSON レポート、標準出力への出力、決定性のあるファイル。
- プロジェクトのソースとして Git リポジトリの URL を指定: 管理されたクローンキャッシュを介して(
devprojex cache、devprojex recent)、リポジトリの URL から直接、解析、エクスポート、オープン、またはターミナルワークスペースの起動ができます。 - CI 向けのシークレット事前チェック:
--findingsはルール、カテゴリ、ファイル、行を一覧表示し、値は表示しません。検出項目がある場合は--fail-on-findingsによってパイプラインを失敗させます。 - 組み合わせ可能な選択:
git diffや任意のツールからファイル一覧をパイプで--select-from -に渡せます。 - プロジェクトの検索と関連情報:
devprojex searchはテキスト、--regexパターン、または--symbolsを使った名前による宣言を検索します。devprojex relatedは、あるファイルが使用するファイルと、そのファイルを使用するファイルを一覧表示します。 - ドキュメント化されたエイリアスと短縮フラグ(
export ctx、export proj、-f、-n、-q)に加え、devprojex help <command>と bash、zsh、fish、PowerShell 向けのシェル補完。 - キーボード操作を優先したターミナルワークスペース: 検索可能なアクションパレットを備え、デスクトップアプリは不要です。デスクトップアプリと同じ Git モード、除外設定、プロファイルを利用できます。
コマンドの完全なリファレンスは Docs/CommandLine.md、対話型ターミナルインターフェースについては Docs/TerminalWorkspace.md を参照してください。
DevProjex が決して行わないこと 🛡️
DevProjex はプロジェクトを読み取るだけです。唯一の例外は、明示的に Cursor または VS Code の MCP 接続を行う場合で、その際は .cursor/mcp.json または .vscode/mcp.json を作成または更新します。それ以外に、DevProjex は次のことを行いません。
- 開いたソースプロジェクト内のファイルを編集、改名、移動、削除しません。
- ユーザーのファイルシステムから開いたソースリポジトリで、コミット、マージ、プッシュ、ブランチの切り替えを行いません。ブランチ操作は、アプリケーションが管理するキャッシュ済みクローンに限られます。
- テキストまたは AI コンテキストの出力にバイナリファイルの内容を含めません。マスキングルールはバイナリデータをスキャンしません。
- 生成ファイルやプロジェクトのコピーは、ソースプロジェクト外の、ユーザーが選択した保存先にのみ書き込みます。
Smart Ignore の仕組み 🧠
Smart Ignore はローカルで動作する決定的なフィルターです。AI モデルではなく、フォルダー全体に適用する巨大なブラックリストでもありません。各プロジェクトの開始位置と終了位置を把握し、そのプロジェクト内でのみ適切なルールを適用します。
プロジェクトの境界を把握します。 DevProjex は .csproj、package.json、pyproject.toml、go.mod、Cargo.toml などのプロジェクトマーカーを検出します。そのスタックのルール(node_modules、bin/obj、仮想環境、ビルドキャッシュ)は、それを所有するプロジェクト内でのみ適用されます。.NET サービスの隣にある無関係なフォルダー内の bin を隠すことはなく、フロントエンドアプリが、本来属さない場所にある node_modules を隠すこともありません。
隠す前に確認します。 build、dist、vendor などのフォルダー名は、生成ファイルを指す場合も、実際のソースコードを指す場合もあります。Smart Ignore はまず、パッケージファイル、コンパイラーの出力、既知のビルド構成など、確かな兆候を探します。明確な兆候がなければ、そのフォルダーは表示されたままになります。
モノレポを個別に扱います。 ネストされた各プロジェクト(フロントエンド、バックエンド、ツール、ドキュメント)は、それぞれのマーカーに基づいて個別にフィルタリングされます。ワークスペース内の無関係な部分に影響することはありません。
Git モードは Smart Ignore とは別の設定です:
| モード | 表示される内容 |
|---|---|
.gitignore モード | git status に従い、追跡対象のファイルと、リポジトリ内の .gitignore および info/exclude で許可された未追跡ファイルを表示します。埋め込みリポジトリは不透明なまま扱い、宣言されたサブモジュールにはそれぞれのルールが適用されます |
| 追跡対象ファイルのみ | 現在 Git インデックスに記録されているファイルのみ |
| ステージ済み | ステージされた変更があるファイル |
| 変更 | ステージ済み、未ステージ、および無視されていない未追跡ファイル |
| 差分 | 2 つの Git 参照間で変更されたファイル |
操作は常に自分で制御できます。 Smart Ignore、Git モード、基本フィルター(隠しファイル、ドットファイル、空のフォルダー)はすべて連携し、それぞれ個別にオン/オフを切り替えられます。「無視」とは、現在の表示、コピー、またはエクスポートから除外することを意味します。プロジェクトから何かが削除されることはありません。
📖 署名の照合、ワークツリーの処理、エッジケースを含む技術的な詳細は、Docs/SmartIgnore.md をご覧ください。
コード圧縮の仕組み 🗜️
AI が必要とするのは、実装のすべての行ではなく、コードの構造です。圧縮では宣言、シグネチャ、フィールド、クラス構造を残し、名前付きの実装本体を空にします:
// Before: what's in your file (unchanged on disk)
private Command BuildMcpCommand()
{
var command = new Command("mcp", L("Terminal.Command.Mcp"));
// … ~40 more lines of implementation
}
// After: what goes into the packed context
private Command BuildMcpCommand()
{ }
DevProjex 自体の C# ソース(619 ファイル)で測定したところ、圧縮後のコンテキストは約 69%縮小し、サイズはおよそ 3 分の 1 になりました。複数の言語が混在するリポジトリでは、テスト用フィクスチャ、JSON アセット、ドキュメントには手を加えず、コードのみを圧縮するため、削減率は低くなります。
14 の言語に対応し、Tree-sitter の文法で解析したうえで、保持すべき内容について DevProjex 独自の言語別ルールを適用します(Kotlin のプロパティ、Scala の val/var、あらゆる言語の自由形式ラムダなど)。また、安全に処理できないファイルは完全な状態を保つよう、意図的に保守的な動作をします。コメントと空行の除去にも同じ構文エンジンを使用し、HTML、CSS、YAML、XML のプロジェクトファイルなど、コメントのみを処理する 6 種類のパックを加えた合計 20 パックに対応します。同じ変換後のコンテンツが、デスクトップアプリと、CLI の --compress-code の両方で、トークンの指標、コンテキストドキュメント、フォルダーまたは ZIP のエクスポートに使用されます。
📖 言語別のルールとエッジケースは、Docs/CodeCompression.md をご覧ください。
Hide Secrets と Hide private data の仕組み 🔒
独立した2つのレイヤーがあります。どちらも出力内の値を置き換えます。ファイルを削除したり、プロジェクトを変更したりすることはありません。
Hide Secrets は認証情報の値(API キー、トークン、接続文字列)を検出し、ファイルと周囲のコードをすべて保持したまま、それぞれの位置でマスクします。
var botToken = "110201543:AAHdqTcvE…"; // in your file
var botToken = "DEVPROJEX_REDACTED[telegram-bot-api-token#1]"; // in the export
検出には、DevProjex 独自のエンジン上で、ピン留めされレビュー済みの Gitleaks ルールセットを実行します。1つのシークレットが見つかっても、ファイル全体が使えなくなることはありません。検出結果はプレビューのスクロールバーに表示され、誤検出はプレビュー内で該当箇所ごとに除外できます。デスクトップアプリのスイッチをオンにするか、CLI で --hide-secrets を指定すると有効になります。MCP サーバーでは常に有効です。セキュリティ境界を参照してください。パイプラインでは、--findings を指定するとルール、カテゴリ、ファイル、行が出力されますが、値は出力されません。また、--fail-on-findings を指定するとビルドが失敗します。
Hide private data は、個人に関する痕跡を対象とする2つ目の任意のレイヤーです。メールアドレス、グローバル IP アドレス、ローカルユーザーのパス、MAC アドレス、国際電話番号は、DEVPROJEX_REDACTED[email#1]、[ipv4#1]、[local-user#1] などに置き換えられます。同じ検出結果にはすべての出力先で同じプレースホルダーが使われるため、エクスポートされたコードの一貫性が保たれます。デフォルトではオフです。実際のプロジェクトには IP アドレスのように見えるバージョン文字列や、個人情報ではないサンプルのメールアドレスが多く含まれているためです。デスクトップアプリではプロファイルごとに有効にできます。CLI と MCP では --hide-private-data を指定して有効にできます。
📖 検出ルールと例外については、Docs/HideSecrets.md · Docs/HidePrivateData.md を参照してください。
ドキュメント 📚
インストール · スマート無視 · Hide Secrets · Hide private data · コード圧縮 · コマンドライン · ターミナルワークスペース · MCP サーバー · エージェントジャーナル · 関連ファイル · ベンチマーク履歴 · セキュリティポリシー · コントリビューション · 行動規範 · ディスカッション
技術スタック 🧩
.NET 10 と Avalonia UI を使用し、Tree-sitter の文法、Gitleaks のルール、公式の MCP C# SDK で構築されています。クレジット表記は THIRD-PARTY-NOTICES.md をご覧ください。Windows、Linux、macOS で、20,000 件以上の自動テスト(単体、統合、ターミナル、UI)を実行します。
ソースからビルド
git clone https://github.com/Avazbek22/DevProjex.git
cd DevProjex
dotnet build -c Release
dotnet test
コントリビューション 🤝
Issue とプルリクエストを歓迎します。取り組みやすい分野は、UX、パフォーマンスの調整、テスト、ローカライズ、ドキュメントとスクリーンショットです。どこから始めればよいかわからない場合は、good first issue ラベルの付いた Issue をご覧ください。
詳細は CONTRIBUTING.md をご覧ください。
サポート 💛
ライセンス(Apache-2.0) 📄
DevProjex は Apache License 2.0 のもとでライセンスされています。明示的な特許ライセンスの付与を含め、自由に使用、変更、配布できます。Copyright (c) 2025–present Avazbek Olimov。詳細は LICENSE をご覧ください。
コード署名: SignPath.io による無料のコード署名を利用しています。証明書は SignPath Foundation が提供しています。コード署名ポリシーをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。