Join text lines with the separator you choose

Paste one item per line, choose a separator and join them in their original order. Review the result, then copy it or download TXT.

Paste lines and choose a separator

Processed in your browser · saves drafts when allowed Ready
Joined text

Join lines into one result in three steps

01

Paste a list

Type or paste one item per line in the order you want to keep. The tool uses the lines in this box; it does not open files or sort the list.

Choose a separator for your next step

Need to createJoin withCheck
A line separated by spacesSpaceItems stay in source order; existing spaces at line edges may double the gap if trimming is off.
A comma-separated listComma + spaceThe tool only inserts “, ” between lines; items containing commas are not escaped as CSV fields.
A semicolon-separated listSemicolon + spaceCheck for semicolons already present inside items before treating the result as separated data.
Your own separator or no gapCustomEnter the exact characters to insert, including any spaces. Leave this field empty to join items directly.

If separators or spacing look wrong

Two separators appear together
A blank line can create an empty item between two others. Enable Remove empty lines and join again; leave it off if empty positions matter, then review the output.
Spaces are missing or doubled
Trim each line removes spaces only at item edges; turn it off to keep indentation. With Custom, check spaces inside your separator too.
Result is empty
Check the input: if it contains only blank lines and Remove empty lines is on, nothing remains to join. Paste nonblank items and select Join lines again.

Drafts on this device when available

Line joining runs in your browser. When local storage is available, your text and options are kept for the next visit. Select Clear to remove the input, result and this tool’s draft; downloaded TXT files stay wherever you saved them.

Comments & feedback

Rate this tool

Loading ratings…

Write a commentNo account needed

Do not share passwords, sensitive information or the contents of files you are processing.

Reviewed before posting. Email stays private.

Embed this tool on your websiteFree · Copy once, receive tool updates automatically

Paste the iframe into HTML, WordPress or any platform that supports embeds. The tool runs in the visitor’s browser; adjust its height and theme as needed.

View the embed guide and supported platforms →

<div style="max-width:900px">
  <iframe data-kitotool-embed src="https://kitotool.com/embed/en/text-joiner/" title="Text Joiner — KitoTool" width="100%" height="920" style="display:block;width:100%;border:1px solid #dbe3ee;border-radius:12px" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
  <p style="margin:6px 2px 0;text-align:right;font:12px/1.5 system-ui,sans-serif;color:#64748b">Free tool by <a href="https://kitotool.com/en/text-joiner/" target="_blank" rel="nofollow noopener noreferrer" style="color:#2359d4;text-decoration:underline">KitoTool</a></p>
</div>

The code includes a visible credit below the iframe; its link uses nofollow for a widely distributed widget.

Optional: automatically resize the iframe

Add this script once to the page containing the iframe.

<script>
(function(){var origin="https://kitotool.com";function frames(){return document.querySelectorAll("iframe[data-kitotool-embed]")}function measure(f){if(f.contentWindow&&new URL(f.src).origin===origin)f.contentWindow.postMessage({type:"kitotool:measure"},origin)}window.addEventListener("message",function(e){if(e.origin!==origin||!e.data||e.data.type!=="kitotool:resize"||!Number.isFinite(e.data.height))return;frames().forEach(function(f){if(f.contentWindow===e.source&&new URL(f.src).origin===origin)f.style.height=Math.max(320,Math.min(12000,Math.ceil(e.data.height)))+"px";});});function connect(){frames().forEach(function(f){f.addEventListener("load",function(){measure(f)});measure(f)})}if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",connect,{once:true});else connect()})();
</script>