Paste your text, open the find bar, and replace every occurrence at once, or step through them one at a time with next and previous. Switch on regular expressions when a plain search is not enough, restrict a replacement to just the part you have selected, and undo the whole thing with a single keystroke if it went wrong. Nothing is uploaded, so this works on contracts, logs, and anything else you would not paste into a stranger's server.
Most online text tools send whatever you paste to a server, run the work there, and send a result back. Your words sit in someone else's logs, backups and databases, and you have to trust a privacy policy.
Local-first means the opposite: the whole tool is downloaded to your browser and runs on your own device. Nothing you type is transmitted anywhere: not to us, not to anyone. There is no server that could receive it, which is a stronger guarantee than a promise not to look.
Three consequences worth knowing:
You do not have to take that on trust. Open your browser's developer tools, watch the network panel, and type: nothing appears in it.The network's verify page walks through the same check on every Jamuny tool.
Reformatting names with a capture group
Pattern: (\w+), (\w+)
Replace: $2 $1
Text: Doe, John
Curie, MarieJohn Doe Marie Curie
Select the region first, then switch on "In selection" before replacing. The match count updates to reflect only that region, and everything outside it is left exactly as it was.
This is the safe way to do a replacement that is correct in one part of a document and wrong everywhere else: renaming a variable inside one function, or fixing a column of a pasted table without touching the rest.
Plain matching finds your text anywhere it appears, so searching for "cat" also hits "category", "concatenate" and "scatter". Whole-word matching requires a word boundary on both sides, so only the standalone word matches.
This is the single most common cause of a replace-all going wrong. If you are replacing a short word, switch it on before you press the button rather than after.
A replace-all is recorded as one undo step, so Ctrl+Z (Cmd+Z on a Mac) puts every occurrence back at once rather than making you press it two hundred times.
That is deliberate. A bulk edit you cannot cleanly reverse is a bulk edit you cannot safely try, and being able to try one and look at the result is most of the value of doing it here rather than in the file itself.
Switching on regular expressions turns the search field into a pattern. That buys you three things a plain search cannot do: matching text you can only describe rather than spell out, anchoring a match to the start or end of a line, and reusing part of what you matched in the replacement.
The reuse is the one people underestimate. Wrap part of the pattern in parentheses and it becomes a capture group, which you can refer to as $1 in the replacement, so swapping "Doe, John" into "John Doe" across a thousand rows is one operation rather than a thousand edits.
Two patterns cover most real use. `^\s+` with an empty replacement strips leading whitespace from every line. `\s+$` does the same for trailing whitespace, which is the usual cause of two apparently identical lines refusing to compare equal.
If a pattern is not behaving, build it in the regex tester first: it highlights every match live and shows what each group captured, which is far easier to reason about than watching a replacement go wrong.
Select the region first, then switch on the "In selection" toggle before replacing. The match count updates to reflect only that region, and everything outside it is left exactly as it was.
Turn on regular expression mode and wrap the part you want in parentheses, then write $1 for the first group, $2 for the second, or $<name> for a named one. Groups expand for selection-limited replacements too.
Plain matching finds your text anywhere, so searching for "cat" also hits "category". Whole word requires a word boundary on both sides, so only the standalone word matches.
Yes. A replace-all is a single undo step, so Ctrl+Z (Cmd+Z on a Mac) puts every occurrence back at once rather than one at a time.