At some point every "let me just paste my code into the AI" session hits a wall. You want the model to reason about the whole project — not one file — so you start copy-pasting directories. Three things go wrong, usually in this order:
- You paste a file with a live API key in it.
- You exceed the context window and get a truncation (or a silently partial answer).
- The model loses the plot because it can't see how the pieces fit.
Here's a workflow that handles all three, whether you build the tooling yourself or use an off-the-shelf one.
1. Flatten the repo into one ordered bundle
Models reason better over a single, well-ordered document than over 30 pasted snippets. Walk the repo, skip the noise (node_modules, build output, images, lockfiles), and emit each file with a clear header. A file index at the top helps the model build a mental map before it reads any code.
2. Redact secrets before the text leaves your machine
This is the step people skip. Anything credential-shaped — sk-..., ghp_..., AKIA..., sk_live_..., -----BEGIN PRIVATE KEY----- — should be masked automatically, not by remembering to check. A prompt log is a place secrets go to leak; treat the bundle like a public paste.
3. Budget against the model's context window
Estimate the bundle's token count and compare it to your target model (Claude ~200K, GPT-5 ~400K, Gemini 2.5 Pro ~1M). If you're over, don't truncate blindly — drop the largest file bodies but keep every file listed, so the model still knows the project's full shape.
Doing it in one command
ctxpack is a zero-dependency CLI that does all three:
# whole repo, budgeted for Claude, secrets masked, written to a file
npx github:trongtruong110-ux/ctxpack . --model claude-fable-5 -o context.md
# too big? fit it to a budget (keeps the file map, trims largest bodies)
npx github:trongtruong110-ux/ctxpack . --fit 150000 -o context.md
ctxpack: 214 files packed
tokens: ~147,900 (74% of Claude 200,000 ctx)
redacted: 3 secret(s)
Then paste context.md (or attach it) and ask your question against the full project.
The three rules, portable to any tool
- One ordered bundle beats scattered snippets.
- Redact before you send — assume the prompt is logged.
- Budget per model, trim by size, keep the map.
ctxpack is MIT-licensed and free: https://github.com/trongtruong110-ux/ctxpack. If you've got a workflow for feeding whole projects to an LLM, I'd like to hear it.
Top comments (0)