关于 DevProjex
DevProjex 是只读 MCP 服务,并提供 GUI 和 CLI,可将文件夹或 Git 仓库整理为经过筛选、节省 Token 的 AI Agent 上下文。它会遮蔽检测到的机密,支持预览选择内容,并在本地记录会话元数据。
主要功能
- 01只读浏览项目
- 02遮蔽机密和隐私数据
- 03为 Agent 实时选择上下文
- 04按 Token 限额打包上下文
- 05导出项目到文件夹或 ZIP
- 06本地 MCP 会话日志
适用场景
- 01为编码 Agent 提供聚焦的仓库上下文
- 02为 AI 对话准备选定文件
- 03检查打包内容是否泄露机密
- 04导出经过筛选的项目副本
MCP 相关
向 MCP 客户端提供八种只读工具,用于检查和打包项目上下文。Live Context 可将桌面应用中的文件选择应用于 Agent 的下一次调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
DevProjex:MCP / GUI / CLI / TUI 一体化
🏆 入选 Avalonia UI 团队的 App Showcase
简洁且节省 Token 的代码库上下文,适用于 AI 聊天和编码 Agent。你可以准确查看哪些内容会离开项目,机密信息会在导出前被屏蔽。
DevProjex 可将任意文件夹或 Git 仓库转换为适用于 AI 的简洁上下文。将其粘贴到 ChatGPT 或 Claude 中,或让 Claude Code、Codex 和 Cursor 通过只读 MCP 服务读取项目。桌面应用、终端工作区、CLI 和 MCP 服务共用一个引擎、一套过滤器和一条屏蔽流水线,支持 Windows、macOS 和 Linux。
在文件树中勾选所需内容,查看实时预览及 Token 估算,然后复制或导出为 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?💡
逐个将文件复制到聊天窗口中,无法扩展。打包工具很快,但你只能在打包完成后看到结果,而不是在选择时查看。拥有普通文件访问权限的编码 Agent 读取 .env 和读取 Program.cs 一样轻而易举,除非你告诉它使用的每个工具都忽略该文件。
DevProjex 的工作方式不同:可视化、精准,并且本地优先。
- **你能看到哪些内容会离开你的项目:**文件树、实时预览、令牌估算,以及记录每次 MCP 会话凭据的 Agent 日志。
- **你能控制哪些内容会离开项目:**智能忽略、Git 模式、机密和私人数据屏蔽、名称筛选器、已保存的配置。
- **你的 Agent 遵循相同规则:**MCP 服务为只读服务,其中的机密屏蔽无法关闭;启用实时上下文后,你勾选的文件就是 Agent 的关注重点。
- **你获得的不只是文本:**可作为文件夹或 ZIP 获取真实的项目副本。
以下是数据及其注意事项。在与 Repomix 的最后一轮盲测中(11 项任务、8 个代码仓库、6 种语言、双方各 22 次会话,Agent 和评审均使用 Claude Haiku 4.5),DevProjex 使用了 973,020 个令牌,而 Repomix 使用了 1,174,907 个;在 22 组结果中,评审有 17 组更信任 DevProjex 的答案,Repomix 只有 3 组。针对预先植入的 7 个凭据,两种工具都没有泄露任何值,但通过 DevProjex,凭据周围的代码在 7 个文件中均保持可读,而 Repomix 只有 1 个文件。任务由作者编写;Repomix 所需的工具调用更少,并且在宽泛的“X 是如何工作的”问题上表现更好。完整测试系列以及 Agent 和评审的原话结论,见 Docs/Benchmark-History.md。
适用场景
- **AI 助手:**为 ChatGPT、Claude、DeepSeek、Qwen、Kimi 提供干净的输入。
- **AI Agent:**任何 MCP 客户端都能通过只读且始终进行屏蔽的服务读取你的项目,你还可以通过复选框控制其关注重点。
- **CI 流水线:**如果机密会泄露到打包上下文中,就让构建失败,而且绝不打印这些值。
- **受限环境:**在不允许使用 AI Agent、远程索引或 IDE 插件的环境中,获取同样干净的上下文。
- **大型代码库:**提取单个模块,而不是整个代码仓库。
- **代码评审和教学:**分享项目结构,只包含重要文件。
开始使用
- 打开或拖入一个项目文件夹。
- 选择文件夹、文件、筛选器、忽略规则和输出模式。
- 预览,然后复制、导出、从终端运行相同的工作流,或通过 MCP → 实时上下文连接你的编码 Agent。
适用于任何语言、代码仓库或项目结构。
功能概览 ✨
选择与控制
- 智能忽略: 只有在发现证据时才隐藏构建输出、依赖文件夹和缓存。
- 隐藏机密信息: 在原处屏蔽检测到的凭据,适用于每次导出和每个 MCP 响应。
- 隐藏私人数据: 可选择屏蔽电子邮件、IP、MAC、电话号码和用户路径。
- 代码压缩: 保留签名并清空函数体;纯代码体积可缩小约 3 倍。
- 移除注释和空行: 使用 20 个语言包进行语法感知清理;不修改源文件。
- 带复选框、搜索和名称筛选器的文件树。
- Git 模式:
.gitignore、已跟踪文件、已暂存文件、所有当前更改,或两个 ref 之间的差异。
AI Agent
- 只读 MCP 服务: 为任何 MCP 客户端提供八种工具,使用与桌面应用相同的引擎。
- 实时上下文: 在桌面应用中勾选文件,Agent 在下一次调用时即可使用该选择。
- Agent 日志: 为每个会话生成记录,包含调用、已提供的路径、令牌和已屏蔽的值,但绝不包含文件正文。
- 严格边界: 根目录隔离、非可信数据标记,以及只能缩小可见范围的 Agent。
预览与导出
- 实时预览(树、内容或两者),并实时统计行数、字符数和令牌估算值。
- 滚动条标记可一目了然地显示搜索匹配项和屏蔽发现项。
- 可将树、内容或两者导出为 ASCII、Markdown、JSON 或 XML,保存到文件或复制到剪贴板。
- 将项目的干净副本导出到文件夹或 ZIP 归档。
工作流与界面
- 桌面应用、Terminal Workspace、CLI 和 MCP 服务:同一引擎,四种工作方式。
- 内置 Git 工具:通过 URL 克隆、切换分支、更新缓存副本。
- 本地配置会按项目记住你的设置。
- 提供浅色、深色和系统主题;采用平台原生键盘快捷键;支持 20 种语言的本地化。
- 即使面对非常大的文件夹,也能保持流畅。
项目副本导出
使用 File → Export project → To folder… 或 To ZIP archive… 创建当前所选内容的独立副本。也可以通过 devprojex export project 使用相同的工作流。
项目副本会遵循你选择的根文件夹、文件类型、忽略规则和勾选项;如果没有勾选任何项目,则导出整个当前文件树。目录结构、二进制文件和纳入的空文件夹都会保留。启用 Hide Secrets 或 Hide private data 后,文本文件中的检测值会被替换,二进制文件保持不变;因此,结果有意不与原项目逐字节相同,可能无法构建或运行。源项目绝不会被修改,导出结果也不能写入源项目内部。
MCP 服务 🤖
DevProjex 内置了安全的 Model Context Protocol 服务,基于官方 C# MCP SDK,可将任意本地文件夹或 Git 仓库转换为令牌高效的代码库上下文,供 AI Agent 使用:Claude Code、Codex、Claude Desktop、Cursor、Google Antigravity、VS Code 或任何 MCP 客户端。它使用与桌面应用、Terminal Workspace 和 CLI 相同的引擎。只需一行命令即可连接 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。你选择的子菜单决定注册是否会跟随已勾选的树。
- 终端工作区:
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,显示当前所选内容的树。”该调用会显示在 Agent 日志中。
实时上下文:勾选框决定 Agent 的关注范围

在桌面应用中打开项目,并通过 MCP → Live context 连接。从此以后,你勾选的树就是 Agent 的工作范围:
- **勾选、取消勾选,即刻生效。**Agent 会在下一次调用时,通过共享的本地项目配置文件获取新的选择。无需重启,也无需新的提示词。
- **设定关注范围,而非限制行动。**树、搜索、分析、依赖项和打包操作都限定在已勾选的选择范围内。即使文件未勾选,也仍可按名称读取,但会显示超出关注范围的提示。
- **过滤器决定边界。**桌面应用的过滤器和秘密信息屏蔽规则会应用于 Agent 读取的所有内容;被过滤器排除的文件仍无法访问。
- **保存的结果如实反映选择。**已存储的包会固定为创建时的选择;更改勾选项后,Agent 会明确重新构建该包。
- **查看 Agent 获取的内容。**Agent 收到的每个文件都会在树中标记接收次数;窗口标题会显示当前客户端或会话数量;重新打开项目时,会恢复关注路径。
实时上下文使用 --live;Standard 连接相同的服务,但不会跟随窗口选择。
八种只读工具
八种只读工具涵盖整个工作流:list_projects、get_tree、analyze、search_project、related_files、get_file、pack_context 和 read_pack。
search_project可按名称查找文本或声明;get_file可读取精确的行范围或单个声明,而不是整个文件。related_files根据实际导入关系,回答“此文件实际使用了什么,以及哪些文件使用了它”;可针对单个文件或少量种子文件执行,因此追踪调用链不会扩大选择范围。pack_context会在max_tokens限制下打包所选内容:文件按确定的顺序纳入,直到达到限制;其余文件会列为已跳过,top_files则显示令牌的分配情况。pack_context和related_files会将超大结果存储为会话包;read_pack会按行范围读取该包,避免 Agent 的上下文被大量内容淹没。长时间运行的操作会报告标准 MCP 进度通知。- 树默认使用紧凑 Markdown;内容只声明一次根路径,并使用相对路径;每棵树末尾都有一行列出当前生效的过滤器,让 Agent 知道它未看到什么。
git_scope可将任意工具的范围缩小到暂存文件、当前更改或两个引用之间的差异;profile可在内置默认配置、已保存的桌面选择或可移植的配置文件之间切换。
Agent 日志:每个会话都有一份回执

本地 Agent 日志会记录 MCP 会话的元数据和计数,绝不记录文件正文或检测到的机密值。每个会话都会显示客户端、模式以及汇总数据:调用次数、字符数、令牌估算值、已交付文件数、已屏蔽值数量和持续时间。打开一个会话,即可查看所有工具调用及其参数摘要、修订版本、耗时和提示。你可以通过桌面应用(MCP → Journal)、Terminal Workspace 或 CLI 查看日志,并导出 Markdown 或 JSON 上下文回执,其中会显示调用、已交付路径和汇总数据。想审查 Agent 获取的内容?在桌面应用中打开同一个项目:两者共用引擎和屏蔽流水线,使用相同配置文件和参数时,筛选结果也会一致。
安全边界
除了 DevProjex 的只读设计外,服务还会强制执行严格的安全边界:
- 只读设计。 工具无法修改项目文件或运行项目代码;除非明确为 Git URL 项目启用
--allow-remote,否则会禁用网络访问。 - MCP 模式下始终启用机密屏蔽,且无法关闭。 无论是服务标志还是工具架构中都没有关闭选项,因此配置错误或 Agent 本身都无法将其关闭。
- 可选的私密数据屏蔽,通过
devprojex mcp --hide-private-data启用,与 CLI 标志一致。 - 根目录监禁。 本地访问仅限于启动时指定的根目录;选择启用的远程 Git URL 检出会在首次使用时固定到对应位置;符号链接和联接点逃逸会被拒绝。
- Agent 只能缩小视图范围。 Agent 路径和 glob 模式只能缩小选择范围,
.git管理区域永远不会公开。 - 默认采用 Git 的视图。 Smart Ignore 和
.gitignore规则均会生效,同时Dockerfile、.github/、点文件和空文件仍会显示。扩大视图范围由你在启动时决定,而非 Agent:使用--exclude基线、--unrestricted预设,或选择启用--allow-agent-exclusions标志。 - 强化提示词注入防护。 返回的文件内容会用不可信数据标记包裹。
没有关闭选项是一项控制保证,而非检测保证。DevProjex 可以检测常见的机密格式,但检测基于启发式方法;将任何文件包发布到环境之外之前,请先逐一检查。
有关客户端设置、完整工具参考和安全模型,请参阅 Docs/McpServer.md。MCP 服务从 5.1 到 5.2 的相关测试数据,以及各 Agent 和盲审裁判的原话评语,请参阅 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 分析、导出、打开项目,或在其中启动 Terminal Workspace。 - 为 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 的 Shell 补全。 - 键盘优先的 Terminal Workspace,配备可搜索的操作面板,无需桌面应用,并支持与桌面应用相同的 Git 模式、排除项和配置文件。
完整命令参考请参阅 Docs/CommandLine.md,交互式终端界面请参阅 Docs/TerminalWorkspace.md。
DevProjex 绝不会做的事 🛡️
DevProjex 只读取你的项目。唯一的例外是明确建立 Cursor 或 VS Code MCP 连接时,会创建或更新 .cursor/mcp.json 或 .vscode/mcp.json。除此之外,DevProjex:
- 不会编辑、重命名、移动或删除已打开源项目中的文件。
- 不会在从用户文件系统打开的源仓库中提交、合并、推送或切换分支;分支操作仅限于应用自有的缓存克隆。
- 不会在文本或 AI 上下文输出中包含二进制文件内容;屏蔽规则不会扫描二进制数据。
- 仅会将生成的文件和项目副本写入你选择的目标位置,且目标位置位于源项目之外。
智能忽略的工作原理 🧠
智能忽略是一种本地、确定性的筛选器:它不是 AI 模型,也不是针对整个文件夹的一份大黑名单。它知道每个项目从哪里开始、在哪里结束,并且只在该项目内部应用相应规则。
它能识别项目边界。 DevProjex 会查找 .csproj、package.json、pyproject.toml、go.mod 或 Cargo.toml 等项目标记。该技术栈对应的规则(node_modules、bin/obj、虚拟环境、构建缓存)只会在所属项目内部生效。.NET 服务不会隐藏旁边无关文件夹中的 bin,前端应用也不会隐藏不属于自己的 node_modules。
它会先检查,再决定是否隐藏。 build、dist 或 vendor 之类的文件夹名称,既可能指向生成文件,也可能包含真正的源代码。智能忽略会先查找明确迹象:包文件、编译器输出、已知的构建目录结构。如果没有明确迹象,该文件夹就会保持可见。
它会将单体仓库中的项目分开处理。 每个嵌套项目(前端、后端、工具、文档)都会根据自身标记单独筛选。工作区中互不相关的部分不会相互影响。
Git 模式是单独的设置,不属于智能忽略:
| 模式 | 显示内容 |
|---|---|
.gitignore 模式 | 已跟踪文件,以及仓库本地 .gitignore 和 info/exclude 允许的未跟踪文件,遵循 git status;嵌入式仓库保持不透明,已声明的子模块保留各自的规则 |
| 仅已跟踪文件 | 当前记录在 Git 索引中的文件 |
| 已暂存 | 有已暂存更改的文件 |
| 更改 | 已暂存、未暂存和未被忽略的未跟踪文件 |
| 差异 | 两个 Git 引用之间发生更改的文件 |
一切由你掌控。 智能忽略、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 倍。在混合仓库中,节省的空间较少,因为压缩只处理代码,不处理测试夹具、JSON 资源或文档。
它支持 14 种语言,使用 Tree-sitter 语法进行解析,并应用 DevProjex 自有的语言规则,决定哪些内容必须保留(Kotlin 中的属性、Scala 中的 val/var、所有语言中的自由 lambda)。它也有意采取保守策略:无法安全处理的文件会保持完整。注释和空行剥离功能将同一语法引擎扩展到总共 20 个语言包:14 个代码语言包,以及 HTML、CSS、YAML 和 XML 项目文件等 6 个仅处理注释的语言包。无论是在桌面应用中,还是通过 CLI 中的 --compress-code,令牌统计、上下文文档以及文件夹或 ZIP 导出都使用相同的转换后内容。
📖 各语言规则和边缘情况请参阅 Docs/CodeCompression.md。
隐藏密钥和隐藏私人数据的工作原理 🔒
两个相互独立的层。两者都会替换输出中的值;它们绝不会删除文件,也不会修改你的项目。
隐藏密钥会查找凭据值(API 密钥、令牌、连接字符串),并在原处逐一遮蔽,同时保留文件和周围的所有代码:
var botToken = "110201543:AAHdqTcvE…"; // in your file
var botToken = "DEVPROJEX_REDACTED[telegram-bot-api-token#1]"; // in the export
检测会在 DevProjex 自有引擎上运行一套固定且经过审核的 Gitleaks 规则集,一个密钥也不会导致整个文件被隐藏。检测结果会标记在预览滚动条上,也可以直接在预览中按匹配项排除误报。在桌面应用中通过一个开关启用,或在 CLI 中使用 --hide-secrets;MCP 服务会始终启用此功能,详见安全边界。在流水线中,--findings 会输出规则、类别、文件和行号,但绝不输出值;--fail-on-findings 则会使构建失败。
隐藏私人数据是第二个可选层,用于处理个人痕迹:电子邮件地址、全球 IP 地址、本地用户路径、MAC 地址和国际电话号码会被替换为 DEVPROJEX_REDACTED[email#1]、[ipv4#1]、[local-user#1] 等内容;同一发现项在所有界面上使用相同的占位符,因此导出的代码保持一致。此功能默认关闭:真实项目中有许多看起来像 IP 地址的版本字符串,也有并非个人信息的示例电子邮件地址。可在桌面应用中按配置文件启用,或在 CLI 和 MCP 中使用 --hide-private-data。
📖 检测规则和边缘情况:Docs/HideSecrets.md · Docs/HidePrivateData.md
文档 📚
安装 · 智能忽略 · 隐藏密钥 · 隐藏私人数据 · 代码压缩 · 命令行 · 终端工作区 · MCP 服务 · Agent 日志 · 相关文件 · 基准测试历史 · 安全策略 · 贡献指南 · 行为准则 · 讨论
技术栈 🧩
使用 .NET 10 和 Avalonia UI 构建,采用 Tree-sitter 语法、Gitleaks 规则和官方 MCP C# SDK;鸣谢信息见 THIRD-PARTY-NOTICES.md。20,000 多项自动化测试(单元测试、集成测试、终端测试、UI 测试)在 Windows、Linux 和 macOS 上运行。
从源代码构建
git clone https://github.com/Avazbek22/DevProjex.git
cd DevProjex
dotnet build -c Release
dotnet test
参与贡献 🤝
欢迎提交问题和拉取请求。适合入手的方向:UX、性能调优、测试、本地化、文档和屏幕截图。不确定从哪里开始?请查看标记为 good first issue 的问题。
详情请参阅 CONTRIBUTING.md。
支持 💛
许可证(Apache-2.0)📄
DevProjex 采用 Apache License 2.0 授权:可免费使用、修改和分发,并明确授予专利许可。版权所有 (c) 2025–至今 Avazbek Olimov。详情请参阅 LICENSE。
代码签名: SignPath.io 免费提供代码签名,证书由 SignPath Foundation 提供。请参阅代码签名政策。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。