⚠ LLM Accent Removal Tool

unslop

Stop sounding like a bot. Strip curly quotes, em dashes, and ellipses: the invisible fingerprints AI leaves on everything it writes.

Decontaminate

Input
Output
Your cleaned text will appear here. Replacements are highlighted in green.
0 replacements
“” quotes ‘’ quotes em — en – … ellipsis nbsp

What We Strip

Character Unicode Name Replaced With
“ ” U+201C / U+201D Left & right double quotation marks "
‘ ’ U+2018 / U+2019 Left & right single quotation marks '
U+2014 Em dash -
U+2013 En dash -
U+2026 Horizontal ellipsis ...
[ ] U+00A0 Non-breaking space [ ]

Install the CLI

Grab a pre-built static binary for your platform, or build from source with Zig.

curl -Lo unslop https://github.com/jere-mie/unslop/releases/latest/download/unslop-linux-x86_64
chmod +x unslop && sudo mv unslop /usr/local/bin/
curl -Lo unslop https://github.com/jere-mie/unslop/releases/latest/download/unslop-linux-aarch64
chmod +x unslop && sudo mv unslop /usr/local/bin/
curl -Lo unslop https://github.com/jere-mie/unslop/releases/latest/download/unslop-macos-aarch64
chmod +x unslop && sudo mv unslop /usr/local/bin/
curl -Lo unslop https://github.com/jere-mie/unslop/releases/latest/download/unslop-macos-x86_64
chmod +x unslop && sudo mv unslop /usr/local/bin/
PowerShell
Invoke-WebRequest -Uri "https://github.com/jere-mie/unslop/releases/latest/download/unslop-windows-x86_64.exe" -OutFile "unslop.exe"
# Move to a directory on your PATH, e.g.:
Move-Item unslop.exe "$env:USERPROFILE\bin\unslop.exe"
curl -Lo unslop.wasm https://github.com/jere-mie/unslop/releases/latest/download/unslop-wasm32-wasi.wasm
Run with wasmtime
wasmtime --dir=. unslop.wasm myfile.txt

Requires wasmtime. Use --dir=. to grant filesystem access.

Requires Zig ≥ 0.14.

git clone https://github.com/jere-mie/unslop.git
cd unslop
zig build -Doptimize=ReleaseFast

The binary appears at zig-out/bin/unslop.

Usage

Syntax
unslop [options] <path>

Examples

# Clean a single file in-place
unslop README.md

# Preview changes without touching the file
unslop --dry-run README.md

# Recursively clean all files in a directory
unslop -r ./docs

# Recursive dry-run across a whole repo
unslop -r --dry-run ./
Flag Description
<path> File or directory to process. Required.
-r, --recursive Recursively process all files in a directory. Required when <path> is a directory.
--dry-run Print transformed output to stdout. Does not modify any files. Useful for previewing changes or piping output.
-h, --help Show the help message and exit.

Safe by design. When writing in-place, unslop uses atomic rename operations (file.tmpfile) so your data is never left in a half-written state.

Why Zig?

Zig

Zig treats UTF-8 as a first-class citizen. This matters enormously for a tool that operates at the byte level. The smart-quote and em-dash characters are multi-byte UTF-8 sequences (3 bytes each), and Zig lets us slice and match them with minimal overhead and zero ambiguity.

Zero dependencies, one binary. Zig compiles to a fully static native binary. No runtime, no interpreter, no package manager hell. Drop the binary on any machine and it runs.

Performance without ceremony. Processing a repository of thousands of Markdown files takes milliseconds. The entire operation fits comfortably in CPU cache. Zig's ReleaseFast build mode eliminates every unnecessary cycle.