Pack project files for AI context
Drag-drop code, notes, and configs from your project and AI Context Packer combines them into one clean Markdown file — ready to paste into ChatGPT, Claude, or DeepSeek. Everything runs in your browser. Private — runs in your browser.
<file path="..."> tags.
AI-ready context
Copy this into ChatGPT, Claude, or DeepSeek.
How to use AI Context Packer
Four simple steps — your files are read locally and combined into one Markdown file. Nothing is uploaded.
Add your files
Drag-drop files or a whole folder onto the dropzone, or click "browse files" / "browse folder". Binary files (images, PDFs, zips) are auto-skipped.
Reorder & configure
Drag the handle (or use arrow keys on mobile) to reorder. Open "Output configuration" to pick a template, set max file size, and toggle the file tree.
Watch the preview
The Markdown output updates live in the preview pane. The token counter (≈ chars ÷ 4) shows how much context you are about to send to the model.
Copy or download
Click "Copy to clipboard" to paste straight into ChatGPT, Claude, or DeepSeek — or download as .md / .txt for later.
Folder-aware drop
Drop an entire project folder and AI Context Packer reads the file tree, preserves relative paths, and skips binaries automatically.
Three output templates
Standard Markdown, Compact (just headings + code), or XML-tagged for Claude. Switch instantly and the preview updates.
Live token counter
A simple chars ÷ 4 heuristic gives an instant estimate of how many tokens your context will cost — no external library, no API calls.
Truly private
Files are read into memory on your device only. They are never uploaded, never stored, never logged. Verify it in your browser's Network tab.
Works Browser-based
No dependencies, no CDN, no service worker required. Save the page with Ctrl+S and run it from your disk on a plane.
Reorderable & filterable
Drag to reorder, filter by code/docs/configs, and remove files individually. The file tree at the top of the output reflects your chosen order.
Frequently asked questions
No. AI Context Packer runs entirely in your browser using vanilla JavaScript. Your files are read into memory on your own device, combined into a Markdown string, and offered as a preview / download / clipboard copy. Nothing is sent over the network. You can verify this in your browser's DevTools → Network tab while you work.
Yes. The app has zero external dependencies — no CDN, no fonts, no analytics. Once the page has loaded once you can disconnect from the internet and keep packing files. You can also save the page locally (Ctrl+S → "Webpage, Complete") and double-click the saved HTML to run it from disk.
We use a simple heuristic: tokens ≈ total characters ÷ 4. This is a well-known approximation that works reasonably well for English text and most code. It is not exact — real tokenizers (like OpenAI's tiktoken or Anthropic's tokenizer) will differ by ±10–20% depending on language, Unicode, and whitespace. Use it as a budgeting guide, not a guarantee.
Any text-based file is supported: code (.js, .ts, .py, .java, .go, .rs, .rb, .php, .c, .cpp, etc.), docs (.md, .txt, .rst, .tex), and configs (.json, .yaml, .toml, .ini, .env, .xml, .csv). Binary files (images, PDFs, Office documents, archives, executables, media) are automatically detected and skipped — they cannot be pasted into a chat as text anyway.
Standard markdown includes a "# Project Context" header, an optional file tree, and each file wrapped in a code fence with its language. Compact drops the headers and tree, keeping only a "### path" heading and a code block per file — useful when you are tight on tokens. XML-tagged wraps each file in <file path="..."> tags, which Claude in particular parses well as structured context.
By default each file is truncated at 100 KB (configurable in "Output configuration" → Max file size). When a file is truncated, a note is inserted into the output telling the model the file was cut off, so it does not hallucinate the rest. Files larger than 100 MB are skipped entirely to avoid crashing the browser.
Yes. You can either click "browse folder" (uses the webkitdirectory attribute on the file input) or drag a folder onto the dropzone (uses DataTransferItem.webkitGetAsEntry()). Both preserve the relative folder structure in the output paths and the file tree. Folder drag-drop works in Chrome, Edge, and Firefox; Safari has partial support.
Any modern browser from the last few years: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+, and equivalent mobile browsers. Internet Explorer is not supported. The Clipboard API requires a secure context (HTTPS or localhost) — if you open the file directly from disk via file://, copying to clipboard may fall back to a legacy method or fail silently; downloading still works.