DEV Community

How to give Claude or ChatGPT your entire codebase (the right way)

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:

  1. You paste a file with a live API key in it.
  2. You exceed the context window and get a truncation (or a silently partial answer).
  3. 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
Enter fullscreen mode Exit fullscreen mode
ctxpack: 214 files packed
  tokens: ~147,900  (74% of Claude 200,000 ctx)
  redacted: 3 secret(s)
Enter fullscreen mode Exit fullscreen mode

Then paste context.md (or attach it) and ask your question against the full project.

The three rules, portable to any tool

  1. One ordered bundle beats scattered snippets.
  2. Redact before you send — assume the prompt is logged.
  3. 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)