Skip to content

About

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

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Repository files navigation

FileConcat Banner Image

Privacy-first tool that turns a folder of files into one LLM-ready bundle. The product is the browser tool at fileconcat.com; the @fileconcat/cli npm CLI shares its core for local folders but reads fewer formats and is not kept in step. Your files are never uploaded on either.

Browser and CLI

Browser

Drop a folder, paste a public GitHub / GitLab / Bitbucket URL, or pick a recent source. The file tree updates live as you tune include / ignore globs; the token counter tracks running cost against any of 200+ LLM models. Copy or download the bundle as XML or Markdown.

Open at fileconcat.com.

CLI

npm install -g @fileconcat/cli
# or one-off:
pnpm dlx @fileconcat/cli ./your-folder

After install the bin is file-concat. Node 18 or newer.

file-concat ./service                                  # output.xml
file-concat ./service --style markdown -o ctx.md
file-concat ./service --expand-archives -o ctx.xml     # unpack zip/tar/gz too
file-concat ./service --stdout | claude -p             # pipe straight to a model
file-concat ./service --json                           # one-line summary on stdout

Full flag reference: packages/cli/README.md and the CLI docs.

What's in the bundle

Project tree at the top so the model sees the structure before any file body. Then every file in its own <file path="..." language="..."> block (or a fenced Markdown block under --style markdown). Binary files, lock files, and build output are dropped by default; the rest is shaped by include / ignore globs.

PDF, DOCX, XLSX, PPTX, ODT, ODS, ODP, RTF and EPUB are extracted to plain text by default (--no-parse turns it off in the CLI); the web app also reads Word, Excel and PowerPoint 97-2003 (DOC, XLS, PPT), XLSB and XLSM workbooks, Kindle books (MOBI, AZW3), Outlook messages (MSG), pages saved from a browser, scanned PDF pages (by text recognition), 7Z, RAR, BZ2 and XZ archives, and a video's own subtitle track, and it transcribes audio and video on request. Jupyter notebooks, .srt / .vtt caption tracks and saved .eml messages go the same way — a notebook arrives as markdown instead of JSON around base64 plots, a caption track as the transcript instead of a timestamp every two seconds, a message as the correspondence instead of MIME boundaries and base64 attachments. Which files qualify is decided by their leading bytes, not their name, so a renamed or extensionless document still gets read. Failed parses count as skipped and the run continues.

Workspace layout

pnpm workspace + Nx (pnpm-workspace.yaml, nx.json). Three members:

Path Name Role
apps/web @fileconcat/web TanStack Start app deployed to Cloudflare Workers
packages/cli @fileconcat/cli Commander CLI, published to npm, built with tsup
packages/core @fileconcat/core Shared engine: file processing, path utils, source adapters, models

@fileconcat/core is consumed via workspace:* and linked at source so neither the web app nor the CLI needs a build step to pick it up in dev.

Local development

pnpm install        # bootstrap the workspace
pnpm dev            # TanStack dev server (apps/web)
pnpm build          # web production build
pnpm build:all      # build every package
pnpm check          # tsc --noEmit per package
pnpm lint           # eslint .
pnpm format         # prettier --write .

Core has its own Vitest suite:

cd packages/core && pnpm vitest run

The CLI runs from source via tsx:

cd packages/cli && pnpm dev -- ./your-folder

Docs

Long-form docs at fileconcat.com/docs. Topics: getting started, the four-layer filter pipeline, GitHub / GitLab / Bitbucket import, token estimation and costs, configuration, and the CLI reference.

The docs describe the browser tool. The CLI shares its filter pipeline; the published CLI may lag behind it.

License

MIT.

About

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

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages