An AI coding agent is great right up until it reads your .env and helpfully quotes an API key back into a chat log you don't control.
That thought bothered me enough that I built the masking into DevProjex at the deepest level I could. The built-in MCP server redacts detected secrets in every tool response, and there is no flag to turn it off. Not a config option, not an env var, nothing. A tool whose whole job is handing your code to an AI shouldn't be able to leak credentials, even if you ask it nicely.
DevProjex is bigger than that one feature though — it's a local, read-only desktop app for Windows, Linux and macOS that turns any folder or Git repo into clean, token-efficient context. GUI, terminal TUI, CLI and the MCP server all share one engine. The security part is just the piece I'm most proud of, so I'm starting there.
TL;DR
I built DevProjex, a desktop app that packs any folder or Git repo into one AI-ready document — with a visual file tree, live preview, token estimate, and secret masking before anything leaves your machine — plus a read-only MCP server for AI agents where masking is always on. Free, open source, runs locally on Windows/Linux/macOS.
Avazbek22
/
DevProjex
Build safe, token-efficient codebase context for LLMs, AI chats, and coding agents — local-first GUI, TUI, CLI, and a read-only MCP server with Smart Ignore, secret/PII redaction, Git scopes, and code compression.
DevProjex 📁🌳
🏆 Officially Selected by the Avalonia UI Team for the App Showcase
Turn a real codebase into clean, AI-ready context — and see exactly what you're sending.
DevProjex turns any folder or codebase into clean, ready-to-use context for AI chats, code reviews, and documentation. Use it as a GUI, a TUI, a CLI, or an MCP server for AI agents — whatever fits your workflow.
Choose what you need in an interactive file tree, check the result in a live preview, then export it as ASCII, Markdown, JSON, or XML. Need more than text? Export a real copy of your project — a clean folder or ZIP file — with the same filters applied.
🔒 Read-only and telemetry-free by design. DevProjex does not upload your project contents or collect telemetry.
App Demo 🖼️
Download 🚀
Download from Microsoft Store: 👉 DevProjex
Latest GitHub release:…
The secrets part
This is the part I care most about. One switch masks detected API keys, tokens, passwords and connection strings right in the output. The file stays in the pack, only the value gets masked, and every finding is marked in the preview — there are even little markers on the scrollbar so nothing hides below the fold. False positive? Override that one match, right there.
In CI you can go further: the CLI has a findings check that fails the pipeline if secrets are detected, without ever printing the values.
Background
Every time I wanted real help from an AI on my actual project, the ritual was the same. Open a file, copy, paste. Open another one, copy, paste. Write "here's some more context". Hit the token limit. Delete half. Realize the half I deleted was the part that mattered.
And the whole time there's this low-level anxiety: did I just paste a connection string in there? A key from some config I forgot about?
There are good CLI tools in this space already (Repomix, gitingest, code2prompt — they all do the pack-your-repo thing well). But I kept wanting to see what I was about to send. Not a glob pattern in a terminal — an actual tree with checkboxes and a preview that updates while I click things. So I built one. It started years ago as a tiny tool that just showed a project tree so I could copy it into a chat. It, uh, grew.
Features
- File tree with checkboxes and a live preview — you see exactly what you're sending, before you send it
- Token estimate up front, plus metrics for files, lines and characters
- Smart Ignore: filters out dependencies, caches and build artifacts based on actual evidence, not folder names — a
buildfolder with real source in it doesnt silently disappear - Git filtering beyond .gitignore: only tracked files, only staged files, current changes, or a diff between two refs
- Secret masking (Gitleaks-based rules) and optional private-data masking: emails, IPs, MACs, phone numbers, user paths
- Code compression: keeps declarations and signatures, empties method bodies — pure source shrinks about 3x
- Export as Markdown, ASCII, JSON or XML, or copy straight to the clipboard
- Same engine in four forms: GUI, terminal UI, CLI, and an MCP server
- Local, read-only, no telemetry, no account
Token optimization
Models have context windows, wallets have limits. Three things help:
- Code compression, as above — great when the question is about architecture, not one specific function
- Comment and blank-line stripping, 20 syntax-aware language packs
- A token budget: set a maximum, and it packs the largest files that fit and reports what was included and what was skipped
The diff scopes deserve a mention here too. Narrowing the pack to "what I'm working on right now" saves more tokens than any compression.
The terminal side
The same workflow runs as a keyboard-first TUI (works over SSH), and as a CLI for scripts:
devprojex # terminal workspace
devprojex help # CLI reference
MCP server
New in v5.1: a built-in read-only MCP server. For Claude Code it's one line:
claude mcp add devprojex -- devprojex mcp --root .
The agent gets read-only tools, sees only the folders you allowed, and can narrow the selection but never widen it. Secret masking in MCP mode is always on — there is no flag to turn it off, on purpose. I did not want "the agent decided to disable redaction" to be a sentence anyone ever says.
Conclusion
This started as a tool I built because I needed it, and it slowly turned into one binary with a GUI, a TUI, a CLI and an MCP server, in 20 languages, with 17,000+ automated tests (solo project — tests are how I sleep at night). Apache-2.0, on GitHub:
https://github.com/Avazbek22/DevProjex
Honest question for the comments: what do you actually paste into AI chats — whole repo, or hand-picked files? And does the secrets thing worry you, or am I paranoid?




Top comments (0)