Configuration

FileConcat keeps configuration in three places: the ActionBar Options popover (per-output knobs), the FilterRail Advanced section (filtering and persistence knobs), and localStorage (everything that survives a page reload). This page documents each one in the order you encounter it.

ActionBar Options popover

The Options button sits in the sticky ActionBar at the bottom of the workbench. Clicking it opens a popover with three groups.

Format offers Single file or Multi-part. Single file produces one blob ready to paste. Multi-part splits the output so each chunk fits your model's per-turn limit; the popover notes that the recommendation switches to Multi-part above roughly 200K tokens. The recommended choice is marked with a small rec tag.

Style offers XML or Markdown. XML wraps each file in named tags (recommended for Claude); Markdown uses fenced code blocks (recommended for assistants that emit Markdown themselves). The button hints carry the same recommendation.

Chunk size appears only when Multi-part is the active format. It sets the target size per output chunk. Files larger than this value are split across chunks.

FilterRail Advanced section

The Advanced disclosure under the FilterRail textareas holds the toggles that are too settings-shaped for the main filter surface.

  • Show line numbers prefixes each line of every file with its 1-based line number. The hint text says it plainly: this adds roughly 40 to 50 percent to the token count. Treat it as a navigation aid for the assistant, not a saving. See Token costs for the measurement.
  • Max file size (MB) is the per-file size limit applied at ingestion. Files larger than this number of megabytes are excluded from the output. Default 32.
  • Default remote source picks which tab in the Source input is selected when you visit the workbench. The choices match the registered source adapters: GitHub, GitLab, Bitbucket, Gist, URL.
  • Auto-switch on paste toggles whether the source tab switches automatically when you paste a URL that belongs to a different source than the one currently selected.
  • Export and Import buttons at the bottom of the Advanced section serialise the full UserConfig to a JSON file, or load one back. The format matches the on-disk schema version (currently v5); older imported configs are upgraded transparently.

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
  • showLineNumbers
  • defaultOutputFormat (single or multi)
  • outputStyle (xml or markdown)
  • defaultSourceType and autoSwitchSource

The store carries a version field. When the app loads, anything older than the current version is run through migrateConfig and the upgraded shape is written back. You do not take action; the migration is silent.

Recent sources

The Source input remembers the URLs you have imported from in a separate store under fileconcat-recent-sources. The Recent sources dropdown next to the source input shows them with two affordances: per-entry remove and a clear-all action. No browser storage poking required.

CLI configuration

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