Brief an AI on a bug
XML file blocks are Claude-friendly, and the note pins your task to the very top of the dump.
projdump --format xml \ --note "Login fails on Safari 17. Find the root cause." \ -x 'dist/*' -x '*.lock'
projdump packs any project — directory tree, sources, stats — into a single Markdown, XML or JSON file that drops straight into Claude, ChatGPT, DeepSeek or Gemini. No dependencies. One command.
No daemons, no network — one clean pipeline, start to finish.
Walks the repo, reading git ls-files so .gitignore is honoured.
git ls-files -z
Applies --include/--exclude, --ext-only, --max-size and the token budget.
--include 'src/*'
Streams every surviving file into one Markdown, XML or JSON document.
> my-project_dump.md
Drops the dump on your clipboard and prints the summary + token estimate.
pbcopy · clip.exe
One binary-free script, obsessively polished: 10+ bugs squashed, 71 tests, shellcheck-clean.
Drawn by a built-in pure-bash renderer — no tree(1) dependency — with --tree-depth support, so the AI always sees the project layout.
Every fenced block gets the right language tag, so Markdown and XML dumps render with proper highlighting.
--ext-only --exclude --include — repeatable globs, byte-accurate --max-size, .gitignore respected in git repos.
--since HEAD~5 — diff-driven file list plus untracked files, validated up-front.
--tokens-budget 60000 — stop adding files once the estimate hits your context window.
Markdown for humans, XML <file> blocks for Claude, JSON for jq and scripts.
--list — see exactly which files would be dumped, with sizes, lines and tokens.
--note 'Review auth for XSS' — inject your task at the top of every dump.
Auto-copies via pbcopy, wl-copy, xclip/xsel, clip.exe (WSL) and putclip (Cygwin).
Header carries branch @ sha (dirty?), scope line for --since, and language breakdown.
Safe fence growth, CDATA splitting, XML escaping — adversarial filenames survive all three formats.
-v — verbose mode reports every skipped file and why.
Requires bash 5.0+. Optional helpers picked up automatically when present: python3 (fast batch scanner) and jq (faster JSON quoting) — skipped gracefully if missing.
Grab the repo — it's tiny and dependency-free.
git clone https://github.com/CheginiSoroush/projdump.git cd projdump
Symlinks the binary and adds bash + zsh completions. git pull keeps it fresh.
./install.sh
# custom location:
./install.sh --prefix /usr/localRun it inside any project. The dump lands on your clipboard automatically.
cd ~/my-project projdump # → my-project_dump.md ✓ copied
Toggle the options, copy the command, paste it in your terminal.
💡 Start inside your project folder. The command updates live as you toggle options.
projdump
Pro tip: combine --sort size-desc with --tokens-budget to pack the most important (largest) files into a tight context window.
Weighted estimate — minified ≈ 23, data ≈ 32, code ≈ 35, prose ≈ 40 bytes/token. The same heuristic projdump prints in its summary.
A faithful simulation of the CLI on a small sample project. Type a command or press a chip — history works with ↑/↓, flags complete with Tab.
Same content, three serialisations — pick the one your model (or pipeline) loves.
# 📦 my-project — Project Dump **Generated:** 2026-10-08 12:00 UTC **Git:** main @ a1b2c3d (clean) ## 📄 Source Files ### `src/main.py` ```python print("hello") ``` ## 📊 Summary | Files | Lines | Size | |---:|---:|---:| | 128 | 4213 | 96.4KB | > Roughly 1,204 tokens (weighted per language)
<project name="my-project" tool="projdump v2.0.2" git="main @ a1b2c3d (clean)"> <file path="src/main.py" lang="python" lines="1" bytes="19"> <![CDATA[ print("hello") ]]> </file> <stats files="128" lines="4213" tokens="1204"> <language name="python" files="96"/> </stats> </project>
{
"project": "my-project",
"git": "main @ a1b2c3d (clean)",
"files": [
{ "path": "src/main.py", "lang": "python",
"lines": 1, "bytes": 19,
"content": "print(\"hello\")\n" }
],
"stats": { "files": 128, "lines": 4213, "tokens": 1204,
"languages": { "python": { "files": 96 } } }
}Type to filter — the table searches both flag names and descriptions.
Copy, paste, done — the six workflows projdump was built for.
XML file blocks are Claude-friendly, and the note pins your task to the very top of the dump.
projdump --format xml \ --note "Login fails on Safari 17. Find the root cause." \ -x 'dist/*' -x '*.lock'
Stop at 60k estimated tokens, biggest files first, skip anything over 200 KB.
projdump --tokens-budget 60000 \ --sort size-desc --max-size 200
Feed the diff since a ref — plus untracked files — straight into a code review.
projdump --since main \ --note "Review this diff for security issues."
A dry run sorted by extension shows sizes and token estimates per file — nothing is written.
projdump --list --sort ext
--stdout skips the file and the clipboard; JSON out means jq, python or curl can chew on it.
projdump --stdout --format json \ | jq '.stats.languages'
Two include globs and one exclude — the whole UI story in one tidy file.
projdump -i 'src/*' -i 'styles/*' \ -e '*.min.js' -o frontend.md
The docs you're reading live in /docs — GitHub Pages serves them with zero configuration. Follow the steps; then use the growth playbook.
cd projdump git init git add -A git commit -m "feat: v2.0.1 — docs sync, bilingual README" git branch -M main git remote add origin https://github.com/<user>/projdump.git git push -u origin main
Future updates are just: git add -A && git commit -m "…" && git push
بهروزرسانیهای بعدی فقط همین است: git add -A && git commit -m "…" && git push
https://<user>.github.io/projdump/https://<user>.github.io/projdump/ در دسترس است.If you prefer CI, add .github/workflows/pages.yml:
اگر CI را ترجیح میدهید، فایل .github/workflows/pages.yml را بسازید:
name: pages
on: { push: { branches: [main] } }
permissions: { contents: read, pages: write, id-token: write }
jobs:
deploy:
runs-on: ubuntu-latest
environment: { name: github-pages }
steps:
- uses: actions/checkout@v4
- uses: actions/upload-pages-artifact@v3
with: { path: docs }
- uses: actions/deploy-pages@v4A records → 185.199.108.153 / .109 / .110 / .111 (or CNAME → <user>.github.io).A به 185.199.108.153 تا 185.199.111.153 یا یک CNAME به <user>.github.io تنظیم کنید.sitemap.xml.bash cli llm chatgpt claude developer-tools prompt context-window.sitemap.xml را معرفی کنید.bash cli llm chatgpt claude developer-tools prompt.The honest matrix — what you get here that you would otherwise wire up yourself.
| Feature | projdump | Copy-paste | Typical tools |
|---|---|---|---|
| Whole project → one file, one commandکل پروژه ← یک فایل، یک دستور | ✓ | ✗ | ~ |
| Token budgeting (--tokens-budget)بودجهبندی توکن (--tokens-budget) | ✓ | ✗ | ~ |
| Dump only recent changes (--since)فقط تغییرات اخیر (--since) | ✓ | ✗ | ✗ |
| .gitignore honoured automaticallyرعایت خودکار .gitignore | ✓ | ✗ | ~ |
| md + xml + json from one toolmd + xml + json از یک ابزار | ✓ | ✗ | ~ |
| Auto-clipboard on every platformکپی خودکار در همهٔ پلتفرمها | ✓ | ~ | ~ |
| 71 green tests, shellcheck-clean۷۱ تست سبز، بدون خطای ShellCheck | ✓ | — | ~ |
Four releases so far — each obsessively tested. Details in CHANGELOG.md.
--stdout is machine-readable again: status messages moved to stderr, so --format json | jq works without --quiet--stdout دوباره ماشینخوان است: پیامهای وضعیت به stderr منتقل شدند و --format json | jq بدون --quiet کار میکند--help documents the --dry-run aliasنام مستعار --dry-run در --help مستند شد--configامنیت: فایلهای تنظیمات پروژه دیگر خودکار اجرا نمیشوند — فقط تنظیمات XDG خودتان خودکار بارگذاری میشود؛ تنظیمات پروژه نیازمند --config صریح است--config without a value failed silentlyرفع اشکال: --config بدون مقدار بیصدا شکست میخورد--prefix= guardتکمیل خودکار بومی zsh؛ محافظ --prefix= در uninstall--split chunked output; weighted token estimates (minified 23 · data 32 · code 35 · prose 40 bytes/token)خروجی چندبخشی با --split؛ تخمین توکن وزندار (مینیفای ۲۳ · داده ۳۲ · کد ۳۵ · نثر ۴۰ بایت/توکن)--model / --list-models presets, --tree-depth, --git-log, -j/--jobsپیشتنظیمهای --model / --list-models، --tree-depth، --git-log، -j/--jobs--config only since 2.0.1)فایلهای تنظیمات: XDG و پروژه (.projdumprc) — از ۲٫۰٫۱ فقط با --config صریح--since, --tokens-budget, --list, -i/--include, --sort, --note, -v--since، --tokens-budget، --list، -i/--include، --sort، --note، -vGive your AI the whole picture — in one command, in one file, right now.
⭐ Star projdump on GitHub