Introduction

FileConcat is a privacy-first tool that packs the files you pick into a single LLM-ready bundle. The output is one XML, Markdown, or plain-text file you can paste into Claude, ChatGPT, Gemini, or any other assistant that takes long-form context.

What it gives you

  • A single page at fileconcat.com to drop, filter, and copy files.
  • A published npm CLI (pnpm add -g @fileconcat/cli, or npx @fileconcat/cli) for the same flow from a shell.
  • Live token counting with OpenAI's o200k_base tokenizer, so you know how much of your context window the output consumes before you paste it.
  • Text extraction from documents: drop a PDF, Word, Excel or PowerPoint file, or any other format it reads, and its text is pulled out and included automatically, in your browser. Your files are not uploaded to us. Audio and video can be transcribed on request.
  • The same for files that are technically text but unreadable as text. A Jupyter notebook arrives as markdown instead of JSON wrapped around base64 plots. An .srt or .vtt caption track arrives as the transcript instead of a timestamp every two seconds. A saved .eml message arrives as the correspondence instead of MIME boundaries and base64 attachments.

How it works

Your files are not uploaded to us. The whole thing runs in your browser, with no upload step and no intermediate server. Anonymous usage analytics do run, and the privacy page says what they see. The core library (@fileconcat/core) is the same on fileconcat.com and in the CLI. What differs is the surface you drive it from.

Supported sources

You can feed FileConcat from any of these:

  • Local files and folders, dropped in or chosen with the file picker
  • GitHub repositories, including subdirectories
  • GitHub Gists
  • GitLab repositories, including nested groups
  • GitLab Snippets
  • Bitbucket repositories
  • Any other public URL via the URL fallback adapter

Next steps

  • Quick start walks through the first import.
  • File filtering covers the filter box, the type chips and the glob patterns that narrow the output.
  • Token estimation explains the counter and the model selector.