Features Install Builder Formats Options Recipes Go live FAQ
v2.0.2 · pure bash · MIT

Your whole codebase.
One file. AI-ready.

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.

🐧 Linux · macOS · WSL 🔒 100% local — your code never leaves the machine 📦 zero hard dependencies
bash — my-project
71tests, all green
120+languages tagged
3output formats
0hard dependencies
Workflow

From folder to context in four moves

No daemons, no network — one clean pipeline, start to finish.

📡

Scan

Walks the repo, reading git ls-files so .gitignore is honoured.

git ls-files -z
🧹

Filter

Applies ‎--include/‎--exclude, ‎--ext-only, ‎--max-size and the token budget.

‎--include 'src/*'
✍️

Write

Streams every surviving file into one Markdown, XML or JSON document.

> my-project_dump.md
📋

Copy & report

Drops the dump on your clipboard and prints the summary + token estimate.

pbcopy · clip.exe
Features

Everything you need to brief an AI

One binary-free script, obsessively polished: 10+ bugs squashed, 71 tests, shellcheck-clean.

🌳

Directory tree

Drawn by a built-in pure-bash renderer — no tree(1) dependency — with --tree-depth support, so the AI always sees the project layout.

🎨

120+ language tags

Every fenced block gets the right language tag, so Markdown and XML dumps render with proper highlighting.

🧩

Precision filters

‎--ext-only ‎--exclude ‎--include — repeatable globs, byte-accurate ‎--max-size, .gitignore respected in git repos.

✂️

Dump only what changed

‎--since HEAD~5 — diff-driven file list plus untracked files, validated up-front.

💰

Token budget

‎--tokens-budget 60000 — stop adding files once the estimate hits your context window.

🎯

Three formats

Markdown for humans, XML <file> blocks for Claude, JSON for jq and scripts.

🔍

Dry-run preview

‎--list — see exactly which files would be dumped, with sizes, lines and tokens.

📝

Note for the AI

‎--note 'Review auth for XSS' — inject your task at the top of every dump.

📋

Clipboard everywhere

Auto-copies via pbcopy, wl-copy, xclip/xsel, clip.exe (WSL) and putclip (Cygwin).

🌿

Git-aware

Header carries branch @ sha (dirty?), scope line for ‎--since, and language breakdown.

🛡️

Can't break itself

Safe fence growth, CDATA splitting, XML escaping — adversarial filenames survive all three formats.

🩺

Explains itself

-v — verbose mode reports every skipped file and why.

Install

Up and running in 30 seconds

Requires bash 5.0+. Optional helpers picked up automatically when present: python3 (fast batch scanner) and jq (faster JSON quoting) — skipped gracefully if missing.

1

Clone

Grab the repo — it's tiny and dependency-free.

git clone https://github.com/CheginiSoroush/projdump.git
cd projdump
2

Install

Symlinks the binary and adds bash + zsh completions. git pull keeps it fresh.

./install.sh
# custom location:
./install.sh ‎--prefix /usr/local
3

Dump

Run it inside any project. The dump lands on your clipboard automatically.

cd ~/my-project
projdump
# → my-project_dump.md  ✓ copied
Playground

Build your perfect command

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.

≈ estimated tokens—
8K 32K 128K 200K 1M
Suggested flag:
Playground

Try it — no install needed

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.

bash — try projdump simulated
Output

One project, three shapes

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 } } }
}
Reference

Every flag, explained

Type to filter — the table searches both flag names and descriptions.

28
FlagDescription
[output]Output file (positional). Default: <project>_dump.md|xml|json.فایل خروجی (موضعی). پیش‌فرض: <project>_dump.md|xml|json.
-o, ‎--output FILEExplicit output path; missing parent directories are created for you.مسیر خروجی صریح؛ پوشه‌های والدِ ناموجود خودکار ساخته می‌شوند.
-f, ‎--format md|xml|jsonOutput format (default md). XML is Claude-friendly, JSON is jq-friendly.قالب خروجی (پیش‌فرض md). XML برای Claude و JSON برای jq مناسب است.
‎--split N[k|m]Write multiple parts, each ≤ N tokens (e.g. ‎--split 60k → <name>_dump.part1.md …).نوشتن چند بخش، هر بخش ≤ N توکن (مثلاً ‎--split 60k → <name>_dump.part1.md …).
-e, ‎--ext-only LISTOnly files with these extensions, comma-separated, case-insensitive. Spaces around commas are fine.فقط فایل‌های با این پسوندها، جداشده با ویرگول؛ بزرگی/کوچکی حروف بی‌اهمیت است.
-x, ‎--exclude GLOBSkip paths matching the glob. Repeatable.رد شدن از مسیرهای مطابق با الگو. قابل تکرار.
-i, ‎--include GLOBOnly include paths matching at least one glob. Repeatable; the inverse of ‎--exclude.فقط مسیرهای منطبق با حداقل یک الگو وارد شوند. قابل تکرار؛ معکوسِ ‎--exclude.
‎--since REFOnly files changed since a git ref (working-tree diff + untracked), with early validation.فقط فایل‌های تغییرکرده از یک رفرنس گیت (تفاوت با درخت کاری + فایل‌های untracked) با اعتبارسنجی زودهنگام.
‎--sort KEYname (default) · size · size-desc · ext — NUL-safe ordering.name (پیش‌فرض) · size · size-desc · ext — مرتب‌سازی امن برای نام فایل‌ها.
‎--tokens-budget NStop adding files once the estimated token count reaches N. The first file is always kept.پس از رسیدن تخمین توکن‌ها به N افزودن فایل متوقف می‌شود. فایل اول همیشه حفظ می‌شود.
‎--model NAMEPreset token budget for a model (see ‎--list-models).پیش‌تنظیم بودجهٔ توکن برای یک مدل (‎--list-models را ببینید).
‎--list-modelsShow available model presets and exit.نمایش پیش‌تنظیم‌های مدل و خروج.
‎--max-size NSkip files larger than N KB (default 500). Byte-accurate comparison.رد شدن از فایل‌های بزرگ‌تر از N کیلوبایت (پیش‌فرض ۵۰۰). مقایسه در سطح بایت.
‎--no-treeOmit the directory tree section.حذف بخش درخت دایرکتوری.
‎--tree-depth NLimit tree depth (default: unlimited).محدودکردن عمق درخت (پیش‌فرض: نامحدود).
‎--note TEXTInject a “note for the AI” block at the top of the dump (all three formats).درج بلوک «یادداشت برای هوش مصنوعی» در ابتدای خروجی (در هر سه قالب).
‎--git-log NInclude the last N commits in the dump.درج N کامیت آخر در دامپ.
-j, ‎--jobs NParallel workers for fallback probing (default: auto).workerهای موازی برای probing پشتیبان (پیش‌فرض: خودکار).
‎--config FILEUse this config file (default: XDG config; project-local .projdumprc is never auto-sourced).استفاده از این فایل تنظیمات (پیش‌فرض: XDG؛ فایل‌های پروژه فقط با همین فلگ و هرگز به‌خودی‌خود اجرا نمی‌شوند).
‎--no-configIgnore all config files.نادیده‌گرفتن همهٔ فایل‌های تنظیمات.
‎--listDry run: print the file list with sizes, lines and token totals, then exit.اجرای خشک: چاپ فهرست فایل‌ها با حجم، تعداد خط و تخمین توکن، سپس خروج.
‎--stdoutWrite the dump to stdout instead of a file — perfect for pipes (status messages go to stderr).نوشتن خروجی به stdout به‌جای فایل — عالی برای پایپ‌ها (پیام‌های وضعیت به stderr می‌روند).
‎--copy / ‎--no-copyForce or disable the automatic clipboard copy.اجبار یا غیرفعال‌سازی کپی خودکار در کلیپ‌بورد.
-v, ‎--verboseExplain every skipped file and the reason, plus skip totals in the summary.گزارش دلیل ردشدن هر فایل به‌همراه آمار کلی در خلاصه.
-q, ‎--quietSuppress the summary line.حذف خط خلاصه.
‎--versionPrint version and exit.چاپ نسخه و خروج.
-h, ‎--helpShow the full help.نمایش راهنمای کامل.
‎--dry-runAlias of ‎--list.مترادفِ ‎--list.
Cookbook

Six recipes for real work

Copy, paste, done — the six workflows projdump was built for.

Every recipe is verified against the real CLI.
R1

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.

--format xml · --note · -x

projdump --format xml \
  --note "Login fails on Safari 17. Find the root cause." \
  -x 'dist/*' -x '*.lock'
R2

Fit a big repo in a context window

Stop at 60k estimated tokens, biggest files first, skip anything over 200 KB.

--tokens-budget · --sort · --max-size

projdump --tokens-budget 60000 \
  --sort size-desc --max-size 200
R3

Review only what changed

Feed the diff since a ref — plus untracked files — straight into a code review.

--since · --note

projdump --since main \
  --note "Review this diff for security issues."
R4

Audit the language mix

A dry run sorted by extension shows sizes and token estimates per file — nothing is written.

--list · --sort ext

projdump --list --sort ext
R5

Pipe it into jq

--stdout skips the file and the clipboard; JSON out means jq, python or curl can chew on it.

--stdout · --format json · | jq

projdump --stdout --format json \
  | jq '.stats.languages'
R6

Frontend-only snapshot

Two include globs and one exclude — the whole UI story in one tidy file.

-i ×2 · -e · -o

projdump -i 'src/*' -i 'styles/*' \
  -e '*.min.js' -o frontend.md
Zero → 100

Ship this site to GitHub Pages — and get seen

The docs you're reading live in /docs — GitHub Pages serves them with zero configuration. Follow the steps; then use the growth playbook.

1
Create the repository on GitHubساخت مخزن در گیت‌هاب▾
  • Create a repo named projdump — public (required for free Pages), with a description and topics.
  • Don't tick “Add a README” if you already have one locally — it would need a merge.
  • یک مخزن عمومی به نام projdump بسازید (برای Pages رایگان، عمومی بودن لازم است) و توضیحات و تاپیک‌ها را وارد کنید.
  • اگر README را لوکال دارید، گزینهٔ «Add a README» را نزنید تا نیاز به Merge پیدا نکنید.
2
Push the project (first upload)پیش‌فرستادن پروژه (اولین آپلود)▾
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

3
Turn on GitHub Pages from the /docs folderروشن‌کردن GitHub Pages از پوشهٔ docs▾
  • Repo → Settings → Pages.
  • Source: Deploy from a branch → Branch main → Folder /docs → Save.
  • Wait ~1 minute → your site is at https://<user>.github.io/projdump/
  • No build step, no CI — the folder is already a finished static site.
  • در مخزن: Settings → Pages.
  • Source را روی Deploy from a branch بگذارید؛ شاخه main و پوشه /docs را انتخاب و Save کنید.
  • حدود یک دقیقه صبر کنید → سایت شما روی https://<user>.github.io/projdump/ در دسترس است.
  • نه بیلد می‌خواهد نه CI — پوشهٔ docs همین حالا یک سایت استاتیک کامل است.
4
Optional: deploy with GitHub Actions insteadاختیاری: استقرار با GitHub Actions▾

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@v4
5
Optional: custom domain + HTTPSاختیاری: دامنهٔ اختصاصی + HTTPS▾
  • Buy a domain, then add a CNAME file inside docs/ containing just the domain.
  • In DNS: A records → 185.199.108.153 / .109 / .110 / .111 (or CNAME → <user>.github.io).
  • Back in Settings → Pages: set the custom domain, then tick Enforce HTTPS.
  • دامنه را بخرید و فایل CNAME (شامل فقط نام دامنه) داخل docs/ بگذارید.
  • در DNS چهار رکورد A به 185.199.108.153 تا 185.199.111.153 یا یک CNAME به <user>.github.io تنظیم کنید.
  • در Settings → Pages دامنه را ثبت و تیک Enforce HTTPS را بزنید.
6
SEO & sharing cards (do this once)سئو و کارت‌های اشتراک‌گذاری (یک‌بار برای همیشه)▾
  • This site already ships meta/OG/Twitter tags, JSON-LD, sitemap.xml and robots.txt.
  • Register the URL in Google Search Console and Bing Webmaster; submit sitemap.xml.
  • Repo → Settings → Social preview: upload docs/assets/og-image.png.
  • Pick 10–15 topics: bash cli llm chatgpt claude developer-tools prompt context-window.
  • این سایت همین حالا متاتگ‌های OG/Twitter، JSON-LD، sitemap و robots.txt دارد.
  • نشانی سایت را در Google Search Console و Bing Webmaster ثبت و فایل sitemap.xml را معرفی کنید.
  • در تنظیمات مخزن، Social preview را با docs/assets/og-image.png آپلود کنید.
  • ۱۰ تا ۱۵ تاپیک اضافه کنید: bash cli llm chatgpt claude developer-tools prompt.
7
Growth playbook — getting traffic 🚀کتاب‌بازی رشد — جذب بازدید 🚀▾
  • Show, don't tell: a 20-second GIF of the terminal beats a paragraph. Post it with the repo link.
  • Hacker News: title “Show HN: Projdump – dump a codebase into one file for LLMs”, Tue–Thu morning US time.
  • Reddit: r/commandline, r/bash, r/LocalLLaMA, r/ChatGPTCoding — lead with the problem, link in the body.
  • Write an article: dev.to / Medium / Hashnode: “I built a tool that fits any repo into one prompt”.
  • Awesome lists: PR into awesome-bash, awesome-chatgpt-prompts, awesome-llm-tools…
  • Product Hunt launch with the OG image and a short demo video.
  • Answer questions on Stack Overflow / Quora about “how to paste a repo into ChatGPT” — link naturally.
  • GitHub Trending rewards: clean README (✓), badges (✓), GIF demo, topics, releases with notes, first-week stars.
  • نشان بده، تعریف نکن: یک گیف ۲۰ ثانیه‌ای از ترمینال از یک پاراگراف قوی‌تر است؛ همراه لینک مخزن منتشرش کن.
  • هکر نیوز: عنوان «Show HN» بهترین زمان سه‌شنبه تا پنجشنبه صبح به وقت آمریکاست.
  • ردیت: در r/commandline، r/bash، r/LocalLLaMA و r/ChatGPTCoding اول مشکل را مطرح کن، لینک را در متن بگذار.
  • مقاله بنویس: dev.to / Medium با عنوان «ابزاری ساختم که هر مخزنی را در یک پرامپت جا می‌دهد».
  • لیست‌های Awesome: برای awesome-bash و awesome-llm-tools پول‌ریکوئست بزن.
  • Product Hunt: لانچ با تصویر OG و یک ویدیوی کوتاه دمو.
  • پاسخ به سؤال‌ها در Stack Overflow دربارهٔ «ارسال مخزن به ChatGPT» با معرفی طبیعی ابزار.
  • ترند گیت‌هاب: README تمیز ✓، بج‌ها ✓، دمو، تاپیک‌ها، ریلیز با توضیحات و استارهای هفتهٔ اول.
8
Measure & iterateاندازه‌گیری و بهبود▾
  • Add a privacy-friendly counter (GoatCounter / Plausible / Umami) with one script tag.
  • Watch stars, forks, referrers (repo → Insights → Traffic) and clone counts.
  • Pin an issue titled “Roadmap” — contributors arrive when they see direction.
  • Release often with notes; each release is another excuse for people to look.
  • یک شمارندهٔ محترمانهٔ حریم خصوصی (GoatCounter / Plausible / Umami) با یک تگ اسکریپت اضافه کنید.
  • ستاره‌ها، فورک‌ها، Referrers و تعداد کلون‌ها را در Insights → Traffic دنبال کنید.
  • یک ایسو با عنوان «Roadmap» پین کنید؛ مسیرِ روشن، مشارکت‌کننده می‌آورد.
  • مرتب با توضیحات ریلیز بدهید؛ هر ریلیز بهانه‌ای تازه برای دیده‌شدن است.
Why projdump

How it stacks up

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✓—~
Changelog

What's new

Four releases so far — each obsessively tested. Details in CHANGELOG.md.

v2.0.2

The clean-pipe release

  • ‎--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 مستند شد
v2.0.1

The security release

  • Security: project-local configs are no longer auto-sourced — only your own XDG config loads automatically; project configs require explicit ‎--configامنیت: فایل‌های تنظیمات پروژه دیگر خودکار اجرا نمی‌شوند — فقط تنظیمات XDG خودتان خودکار بارگذاری می‌شود؛ تنظیمات پروژه نیازمند ‎--config صریح است
  • Fixed: ‎--config without a value failed silentlyرفع اشکال: ‎--config بدون مقدار بی‌صدا شکست می‌خورد
  • Native zsh completion; uninstall ‎--prefix= guardتکمیل خودکار بومی zsh؛ محافظ ‎--prefix= در uninstall
  • Docs site synced with v2همگام‌سازی سایت مستندات با نسخهٔ ۲
v2.0.0

The fast one

  • Batch scanner — dumps 7–25× faster on large reposپویشگر دسته‌ای — دامپ ۷ تا ۲۵ برابر سریع‌تر در مخازن بزرگ
  • ‎--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 files: XDG + project-local .projdumprc (explicit ‎--config only since 2.0.1)فایل‌های تنظیمات: XDG و پروژه (‎.projdumprc) — از ۲٫۰٫۱ فقط با ‎--config صریح
v1.1.0

The productivity release

  • ‎--since, ‎--tokens-budget, ‎--list, -i/‎--include, ‎--sort, ‎--note, -v‎--since، ‎--tokens-budget، ‎--list، -i/‎--include، ‎--sort، ‎--note، -v
  • Git header (branch @ sha), language breakdown, largest-files tableهدر گیت (branch @ sha)، تفکیک زبان‌ها، جدول بزرگ‌ترین فایل‌ها
  • WSL (clip.exe) + Cygwin (putclip) clipboard supportپشتیبانی کلیپ‌بورد WSL (clip.exe) و Cygwin (putclip)
  • Fixed: bash 5.2 escaping corruption, byte-accurate ‎--max-size, JSON trailing newlinesرفع اشکال: خرابیِ escaping در بش ۵٫۲، ‎--max-size دقیق در بایت، خطوط پایانی JSON
v1.0.0

The beginning

  • Three formats (md / xml / json), directory tree, 90+ language tagsسه قالب (md / xml / json)، درخت دایرکتوری، تگ ۹۰+ زبان
  • Filtering (‎--ext-only, ‎--exclude, ‎--max-size) + clipboard auto-copyفیلترها (‎--ext-only، ‎--exclude، ‎--max-size) + کپی خودکار در کلیپ‌بورد
  • bash/zsh completions, bats test suite and GitHub Actions CIتکمیل خودکار bash/zsh، مجموعهٔ تست bats و CI گیت‌هاب
FAQ

Questions people actually ask

Q1Is my code uploaded anywhere?آیا کدم جایی آپلود می‌شود؟▾
No. projdump runs 100% locally — it only reads files and writes one output file. Whatever happens next (pasting into a chatbot) is entirely your choice. That's also why there is no telemetry, ever.نه. پروج‌دامپ ۱۰۰٪ لوکال اجرا می‌شود؛ فقط فایل‌ها را می‌خواند و یک فایل خروجی می‌سازد. هر اتفاقی بعدش بیفتد (چسباندن در چت‌بات) کاملاً انتخاب خود شماست. به همین دلیل هیچ تلمتری هم وجود ندارد.
Q2Does it work on Windows?روی ویندوز کار می‌کند؟▾
Yes — via Git Bash or WSL. Clipboard support includes clip.exe (WSL) and putclip (Cygwin). Completions are generated for bash and zsh.بله — از طریق Git Bash یا WSL. پشتیبانی کلیپ‌بورد شامل clip.exe (WSL) و putclip (Cygwin) است. تکمیل خودکار برای bash و zsh تولید می‌شود.
Q3Why is XML recommended for Claude?چرا XML برای Claude توصیه می‌شود؟▾
Claude's training makes it respond well to explicit <file> boundaries. projdump emits stable attributes plus CDATA — even a source file containing ]]> cannot corrupt the dump.مدل Claude با مرزهای صریح <file> بهتر کار می‌کند. پروج‌دامپ attributeهای پایدار به‌همراه CDATA تولید می‌کند؛ حتی فایلی که ]]> دارد هم خروجی را خراب نمی‌کند.
Q4How accurate is the token estimate?تخمین توکن چقدر دقیق است؟▾
A weighted estimate by language class — minified ≈ 23, data ≈ 32, code ≈ 35, prose ≈ 40 bytes per token. Deliberately rough and dependency-free: good enough for budgeting a context window with ‎--tokens-budget; don't use it for billing.تخمین وزن‌دار بر اساس کلاس زبان — مینیفای ≈ ۲۳، داده ≈ ۳۲، کد ≈ ۳۵ و نثر ≈ ۴۰ بایت به‌ازای هر توکن. عمداً تقریبی و بدون وابستگی: برای بودجه‌بندی پنجرهٔ کانتکست با ‎--tokens-budget کافی است؛ برای محاسبهٔ هزینه استفاده نکنید.
Q5Does it respect .gitignore?به .gitignore احترام می‌گذارد؟▾
Inside a git repository it collects files with git ls-files, so ignored paths never enter the dump. Outside a repo it walks the tree itself and prunes known junk directories (node_modules, .next, __pycache__, …).داخل مخزن گیت فایل‌ها با git ls-files جمع می‌شوند؛ پس مسیرهای نادیده‌گرفته هرگز وارد خروجی نمی‌شوند. بیرون از مخزن، خود درخت را می‌پیماید و پوشه‌های آشغالِ معروف (node_modules، .next، __pycache__ و…) را حذف می‌کند.
Q6A file I dumped disappeared from the next dump — why?فایلی که دامپ کردم از دامپ بعدی غایب است — چرا؟▾
If you dumped to a custom name (e.g. projdump notes.md), that file becomes a normal project file and is included next time. Add it to .gitignore, or pass ‎--exclude 'notes.md'. The default *_dump.* name is always protected.اگر با نام سفارشی دامپ گرفته‌اید (مثل projdump notes.md)، آن فایل جزو فایل‌های معمولی پروژه حساب و دفعهٔ بعد وارد خروجی می‌شود. آن را به .gitignore اضافه کنید یا از ‎--exclude 'notes.md' استفاده کنید. نام پیش‌فرض *_dump.* همیشه محافظت می‌شود.
Q7Is it safe to run projdump in an untrusted repository?آیا اجرای projdump در مخزن نامطمئن امن است؟▾
Yes. Since v2.0.1 only your own XDG config is auto-loaded — a project-local .projdumprc is never sourced unless you pass it explicitly with ‎--config. projdump makes no network requests, and the dump never executes project code.بله. از نسخهٔ ۲٫۰٫۱ فقط تنظیمات XDG خودتان خودکار بارگذاری می‌شود — فایل .projdumprc پروژه هرگز خوانده نمی‌شود مگر اینکه صریحاً با ‎--config به آن بدهید. پروج‌دامپ هیچ درخواست شبکه‌ای نمی‌زند و دامپ هرگز کد پروژه را اجرا نمی‌کند.

Stop pasting folders. Start shipping.

Give your AI the whole picture — in one command, in one file, right now.

⭐ Star projdump on GitHub