Skip to content

We packed a small project with Repomix. Here is what went in and what did not

A real run of Repomix 1.18.1 on a sample project with the AWS documentation example keys and a made-up password. What the packed file held, what was left out, what the security check caught and the example keys it let through.

Published Sources checked

A goal moves through planning a step, using a tool, checking the result and continuing

Most Library pages are written from the creator's documentation. For Repomix, which packs a code project into one file for an AI assistant, we ran the tool ourselves on a small project we made for the test. We put the example keys from the AWS documentation and a made-up password in it on purpose. Below are the setup, what went into the packed file, what was left out and what we would check before pasting the file anywhere.

The setup

WhatDetails
ToolRepomix 1.18.1, run with npx -y repomix@1.18.1 and no config file (-y answers yes to the question npx asks before it downloads a package)
ComputerWindows 11, Node.js 24.18.0, npm 11.13.0
Project"Tip Splitter", a made-up command-line tool: a README, three small JavaScript files, a deploy script, a .gitignore and a one-pixel logo.png, in a Git repository (one commit, and a second one when src/db.js was added)
Planted on purposeThe deploy script holds the example access keys from the AWS documentation. .gitignore lists one file, notes-private.txt. From the second run on, src/db.js holds a database address with a made-up password
Date31 October 2026

We packed the same folder five times: the default, the default again after adding src/db.js, then with --style markdown, --compress and --ignore "scripts/**".

What the default run produced

npx -y repomix@1.18.1 in the project folder wrote repomix-output.xml next to the code and printed this summary near the end:

šŸ“Š Pack Summary:
────────────────
  Total Files: 6 files
 Total Tokens: 1,022 tokens
  Total Chars: 4,121 chars
       Output: repomix-output.xml
     Security: āœ” No suspicious files detected

The packed file opens with a short note for the AI model about how the file is laid out, then a directory tree, then the full text of each file inside <file path="…"> tags. The console also listed the five largest files by token count. Repomix counts tokens with the o200k_base encoding by default, the one used by OpenAI's GPT-4o, so the count in your own assistant may differ.

What it left out

  • notes-private.txt, the file named in .gitignore. It was missing from both the tree and the file contents.
  • The .git folder, which Repomix skips by default.
  • The contents of logo.png. Its name stayed in the directory tree, but binary files are not packed.

Everything else went in, including .gitignore itself. So the name notes-private.txt still appears in the packed file, though its text does not.

What the security check caught, and what it did not

First run: nothing flagged, and the keys went in. The deploy script was packed in full, with both AWS example keys, and the summary said "No suspicious files detected". This is how the check is built, not a fault. Repomix scans with Secretlint, and the source of Secretlint's AWS rule (in the version our run installed) lists exactly these two documentation values as exceptions. Its check for access key IDs is also off by default, and Repomix does not turn it on. We used documentation keys on purpose and did not try a real one.

Second run: the made-up password was caught. We added src/db.js, which sets a PostgreSQL address with a user name and a made-up password, and packed again:

šŸ”Ž Security Check:
──────────────────
1 suspicious file(s) detected and excluded from the output:
1. src\db.js
   - 1 security issue detected

These files have been excluded from the output for security reasons.
Please review these files for potential sensitive information.

The whole file was left out, not only the line with the password, so the assistant would not see the function in that file either. Its name stayed in the directory tree. The pack still had 6 files, and the token count rose by 4, for that one extra line in the tree.

A clean security line means no file matched a pattern Secretlint knows. It does not mean the file holds no secrets.

Three options we tried

--style markdown wrote repomix-output.md instead: the same six files, each under a heading such as ## File: src/split.js and inside a fenced code block. It came to 1,016 tokens against 1,026 for XML on the same files, so pick the style you or your assistant read more easily; size is not the reason.

--compress cut the pack from 1,026 to 817 tokens, about a fifth less. It keeps the outline of the code and drops what is inside functions:

<file path="src/split.js">
// Splits a bill between people, with a tip on top.
// Every share is rounded up to the cent, so the total collected
// can be a few cents more than the bill.
ā‹®----
function splitBill(amount, people, tipPercent = 0)
</file>

The checks on the amount and the rounding are gone. src/cli.js, which has no functions, kept only its first comment line. The README and the deploy script were not shortened. Compressed output suits questions about how a project is organised. Leave it off when you want help with a bug, because the line with the bug may not be in the file.

--ignore "scripts/**" left the deploy script out. That run packed 5 files, 926 tokens, and neither AWS key appeared anywhere in the output.

The one thing to check before you paste

Open the packed file and search it yourself for secrets: KEY, SECRET, TOKEN, PASSWORD, and web or database addresses with a password before the @. In our runs the security check caught the made-up password but let the AWS example keys through with a clean report. If you find something, leave that file out with --ignore or a .repomixignore file and pack again.

While the file is open, read the directory tree and the file list in the console summary. They show what the assistant will see and what it will not.

Should you use it

It is a good fit when you want an AI assistant to read a whole project at once instead of pasting files one by one. The token count tells you, before you upload anything, whether the file is likely to fit in your assistant's limit.

Packing ran on our computer and the packed file stayed in the project folder. Uploading it sends your code to the company behind your assistant, so follow your company's rules for source code. If you would rather see a project as a map than as one file, GitDiagram and Understand Anything do that.

Sources

  • Repomix README, read at commit 2050e90: npx use, --style, --compress, --ignore, the ignore rules, binary files, token counting and the security check.
  • Secretlint AWS rule: what the rule looks for and its enableIDScanRule option. The exceptions for the AWS documentation keys are in the rule's source code, which we read in the copy that Repomix 1.18.1 installed (@secretlint/secretlint-rule-preset-recommend 13.1.0).
  • Our own five runs on 31 October 2026. We quote the parts that matter above and keep the sample project and every packed file on record.