Merge all your files into one. Beat the AI upload limit.
Hit the file limit on ChatGPT, Claude, or Gemini? Combine a repo, or a folder of PDFs and Office docs, into one clean file. It all gets read right here in your browser, even the PDFs. No setup, no account.
Drag a folder or files here
…and your file is ready a second later.
One file, structured so models read it cleanly.
Files arrive wrapped, tagged, and ordered for parsing. The model gets the tree first, then each file in a labeled block with its language and path. It navigates the bundle the way you navigate the repo.
- Tree
An ASCII map at the top, so the model knows the shape before it reads a single file.
- Tags
Every file wrapped in
<file path>, so references stay unambiguous. - Fences
Language-typed code fences. Highlighting carries through to whatever renders the reply.
# Project Structure
```
└── app/
├── hooks/use-theme.ts
├── components/button.tsx
└── README.md
```
# File Contents
<file path="app/hooks/use-theme.ts">
```typescript
import { useEffect, useState } from "react";
export function useTheme() {
const [theme, setTheme] = useState("light");
return { theme, setTheme };
}
```
</file>Drop the whole thing. The right files get through.
No need to hand-pick. The text gets combined and the noise gets left behind, automatically.
Combined
Skipped for you
Images are skipped, unless you say otherwise
An image isn't text, so it never joins the bundle on its own. If one is holding writing, FileConcat can read the writing off it here in the browser, on request. Describing what a picture shows is a different job and still needs a vision model.
We don’t upload your files.
Drag a folder in and it’s read, filtered, and combined right here in your browser. There’s no upload step to combine them, and no account to create.
Read and combined in your browser · no upload step
- 142 files read in this tab
- text pulled from 9 PDFs and 3 Word docs
- node_modules and build output left out
- combined into 1 file48k tokens
Rather work in the terminal?
The browser tool needs no install. The CLI is a separate package for the same engine, for when the files already live in your shell.
- Pipe
Stdout is the bundle, stderr is progress. Pipe it straight into
| llmwithout parsing noise. - Parse
Add
--parseand it pulls plain text out of PDFs, Word, Excel, and slides. - Json
--jsonprints a machine summary, so a wrapper script can read the token count and file list.
This is the command-line tool, not needed for the browser app.
$ npm install -g @fileconcat/cli$ file-concat ./your-folder→ wrote bundle to stdout · 412 tokens