Configuration

FileConcat keeps its output and filtering choices in a few places: the result screen (the output format), the Files pane opened by Adjust what's included (what goes in), the model sheet (the cost estimate), and localStorage (the defaults that survive a page reload). This page documents each one in the order you encounter it.

Output controls on the result screen

Once your file is ready, the result screen carries the output format choice.

Format is a segmented control offering XML, Markdown, or Plain. XML wraps each file in named tags (recommended for Claude). Markdown uses fenced code blocks (recommended for assistants that emit Markdown themselves). Plain concatenates the files with lightweight separators and no markup.

The three differ by less than a percent in tokens on a real bundle, so the choice is about what reads unambiguously rather than what it costs. XML vs Markdown for LLM context sets out the measurements, what the prompt-format research does and does not support, and why there is no fourth option.

The Files pane

The Adjust what's included button in the result screen's top bar opens the Files pane. On a wide screen it sits beside the result, which stays live while you work. On a phone it covers the screen, with the token count and the context fit pinned to its bottom bar and a Done button. Everything in it updates the bundle live. You never have to touch any of it.

  • The filter box narrows the list by name or folder, or by a glob when you type * or ?. Take out N and Keep only these N act on every match at once, and an Undo follows each.
  • By type chips put a whole extension in or out in one click. Reset to defaults clears every manual choice and restores the default patterns.
  • The file tree gives every file a checkbox and its share of the readable text, sorted largest first or A to Z. Auto-skipped noise (binaries and pattern-excluded files) shows dimmed.
  • Patterns, closed at the bottom, holds the Ignore and Only include glob textareas. Ignore carries the default list (the same one the CLI uses); Only include is empty by default and acts as an exclusive whitelist when filled. See File filtering for the pattern syntax.

The model behind the context fit and the cost estimate is picked in a separate sheet, opened from the model name in the result's fit line. See Token estimation for how the model list is built.

Line numbers are off, and no control exposes a toggle for them. The engine can prefix every line with its 1-based number (addLineNumbers in packages/core/src/file-processing/transform.ts), and the preference persists in your config. It is not currently a UI control. See Token costs for why it is an expensive option.

There is no per-file size limit in the browser. A 32 MB cap used to apply at ingestion and silently leave out anything above it. So the one large data file or log a bundle was usually about never arrived. Nothing is excluded for its size now. What a heavy bundle costs is reported on the result screen instead: how much of the selected model's context window it fills, whether it has passed the 1 MB mark where the token count becomes a sampled estimate and Copy slows down, and which single file is carrying most of the weight.

The maxFileSizeMB field survives in the persisted config, unread in the browser. The CLI still caps, but explicitly and visibly, through --max-size.

Persistent configuration

The full UserConfig shape lives in apps/web/src/hooks/use-config.ts and is persisted under the fileconcat-config localStorage key. The fields that survive across sessions:

  • includePatterns and ignorePatterns (your textareas)
  • maxFileSizeMB (kept for compatibility; the browser no longer reads it)
  • showLineNumbers
  • outputStyle (xml, markdown, or plain)
  • defaultSourceType and autoSwitchSource

The store carries a version field. When FileConcat loads, anything older than the current version is run through migrateConfig and the upgraded shape is written back. The migration is silent and needs nothing from you.

CLI configuration

The CLI keeps its own configuration layer documented in CLI usage, including the --config flag and the FileConcatConfig shape that file accepts.