To merge text files into one, you pick two to twenty local files in your intended order, choose how the tool should separate them, and download a single UTF-8 output without uploading anything. The operation is a plain concatenation: the first selected file contributes the first text, the chosen separator is inserted, the second file follows, and the pattern continues through the list. The result is deterministic, so the same files, the same order, and the same separator will always produce the same output. Source files are read and joined inside the current browser tab using the Text File Merger, which means the contents of your notes, log excerpts, or Markdown chapters never leave your computer. The downloaded file is named merged-text.txt and declares itself as UTF-8 plain text. This guide explains exactly how to set up the merge, what the preview will and will not show, and which limits decide whether the tool can complete the job for a given batch.

Three Separator Rules, Three Different Results
The merger gives you one explicit choice that controls every boundary between adjacent files: one newline, one blank line, or no separator at all. The tool inserts exactly the characters you select, and nothing else, between two decoded file strings. The first and last files in the batch do not gain a separator at the front or back; separators only appear between files.
| Option | Characters inserted between files | Best fit |
|---|---|---|
| One newline | Exactly one LF character | Continuous data, log lines, or numbered entries that already end with a line break |
| One blank line | Exactly two LF characters | Distinct sections, chapters, or notes that should read as their own block |
| No separator | Empty string | Files whose last character should butt directly against the next file's first character |
Existing line breaks inside each decoded file are left as the browser read them. If a file already ends with a trailing newline and you also pick the blank-line option, the result can contain three consecutive LF characters before the next file begins. The tool never trims, dedupes, or rewrites those internal boundaries, so the preview is the only reliable place to confirm the spacing before downloading.
What File Extensions the Tool Will Accept
The merger accepts files whose names end in .txt, .csv, .md, or .log. Those four extensions are recognized at the filename level only. Every accepted file is decoded and concatenated as plain text, so an extension does not make the tool a format-aware parser. CSV quoting, Markdown structure, log records, and field delimiters all remain ordinary characters in the output. That is convenient for chapters, raw exports, and long log excerpts, and it is exactly the wrong tool for combining CSV fragments whose schemas, headers, quoted multi-line records, or encodings do not already match. Renaming a binary file to one of the accepted extensions can decode it as replacement characters, which is another reason to read the preview before committing the download. File reading happens locally through the standard browser file APIs, with text decoding documented for the Blob interface on MDN.
Merge Text Files Into One in Three Browser Steps
- Open the Text File Merger and pick two to twenty files with .txt, .csv, .md, or .log extensions. The browser file picker preserves your selection order, and that order is the order the merger will use.
- Choose one separator: one newline, one blank line, or no separator. This single choice controls every boundary between adjacent files in the batch.
- Run the merge, scroll through the complete preview to confirm order and spacing, and then click download. The page produces a temporary Blob URL only when the download button is clicked, triggers the browser save, and revokes that URL immediately. The downloaded file is named merged-text.txt and uses UTF-8 plain text bytes with no byte-order mark.
Selecting a different set of files or a different separator clears the previous result and validation state, so a stale preview cannot be mistaken for the current inputs. Keep the originals until the downloaded file has been opened in its destination application.
Reading the Exact Preview Before You Download
The preview is the most useful safeguard the tool offers. It shows the complete generated string in the order the picker produced, with the chosen separator at every boundary. The first place to check is the seam between file one and file two: the inserted characters should match the rule you selected, and the surrounding content should look the way you expect. The second place to check is the very start and the very end: nothing is prepended or appended by the tool, so the first character of the output is the first character of the first file, and the last character of the output is the last character of the last file.
Because the merger does not sort by filename, modification date, size, or natural number order, two batches that contain the same files in a different picker order produce two different downloads. Browser file pickers normally preserve selection order, but a quick glance at the preview is the simplest insurance against a silent reordering, especially when the filenames are close alphabetically.
The Hard Limits That Decide Whether the Merge Completes
Two constraints bound the operation, and both are checked before any file content is read. The first is the file count: a merge requires at least two files, because a one-file operation would not actually be a merge, and the maximum is twenty. The second is the total size of the selected batch, which is capped at 10 MiB. Exactly 10 MiB is accepted; one byte beyond the cap is rejected up front, before decoding starts. These limits bound browser memory, parallel text decoding, preview rendering, and the size of the generated output.
Empty files are allowed as long as the batch otherwise meets the rules. An empty file contributes an empty string to the join, and the separator on each side is still inserted, which preserves the declared file sequence instead of silently dropping entries. A zero-byte final output is possible only when every file in the batch is empty and the no-separator option is selected. The maximum settings — twenty files totaling 10 MiB — produce a UTF-8 plain text download that is comfortable for any modern browser to handle.
Common Batch Combinations That Fit Comfortably
The merger is well suited to the small, self-contained batches that people actually accumulate: a folder of dated notes that belong in one running diary, exported list segments that should read as a single sequence, several Markdown chapters for a draft, or compatible CSV fragments whose headers and encodings already agree. It also handles short log excerpts cleanly, because the one-newline option keeps every record on its own line while still joining the files into one continuous file. For chapters and distinct notes, the blank-line option produces a visible gap between files, which is usually what readers expect from a single document made of many parts. For pure data files whose last line already lacks a trailing newline, the no-separator option joins them flush, which is helpful when the downstream tool expects one continuous stream with no extra characters at the seam.
When a Command-Line Utility Is the Better Fit
The browser tool is built for bounded convenience, not for archival preservation or lossless binary concatenation. The 10 MiB cap is the main reason to reach for a different tool: large log archives, multi-megabyte CSV exports, and concatenated code repositories will be rejected before decoding starts. Sensitive material is another reason to use a local command-line utility with explicit encoding and streaming behavior, because the browser tool is intended for routine, low-stakes combinations. For readers who want the command-prompt approach explained step by step, the Command Prompt merge guide walks through the same task without plugins or scripts. For anything that fits the 10 MiB envelope, the browser method gives you a verifiable preview, a deterministic result, and a single UTF-8 download with no server round trip and no account.