What it removes, and what it keeps
Emoji is not a fixed block of characters you can list once and forget about. This tool matches the Unicode Extended_Pictographic property, so it covers the set in use today and keeps working when Unicode adds more. A hard-coded list of numeric ranges goes stale within a year. A property match does not.
The visible ones: smileys and faces, people and gestures, animals, food, objects, transport, coloured pictographs, and flags. A flag is a pair of regional-indicator letters, so you never end up with half of one left over.
Skin-tone modifiers, U+1F3FB to U+1F3FF: five invisible selectors that sit after a hand or a face and recolour it. Delete the hand and keep the modifier and you have a leftover character that some fonts draw as a coloured square.
The variation selector U+FE0F: the flag that tells a system to render the colour emoji instead of the plain black-and-white glyph. Zero width, no glyph of its own, and easy to miss.
Zero-width joiners, U+200D: the glue inside multi-emoji sequences. A family emoji is four people fused by three joiners. Strip only the visible faces and those joiners stay behind, where a parser, a diff or a strict database column will still trip over them.
Kept by default: letters, numbers, standard punctuation, and common currency and maths symbols. Turn on "also remove other symbols" to take out arrows, stars, dingbats and geometric shapes as well.
On the Mac, emoji removal stops being a task you remember to do. Klipto keeps the same cleaner in the paste preview, so the stripped version is what lands in Slack, a spreadsheet or a Jira ticket, offline and in any app.
The cleaners stack, which is the useful part. Emoji, invisible characters, smart quotes and collapsed whitespace can all run in one paste, and the choice sticks until you change it. That is the same job as this page, minus the browser tab: get it automatically on every paste with Klipto.
How to use it
1. Paste your text into the input box. A Slack line, a spreadsheet column, a caption, an AI draft.
2. Press Clean. Everything goes in one pass, including the invisible modifiers most tools leave behind.
3. Press Copy, and paste the result where you needed it. Clear resets the box.
Two toggles change the result. "Collapse leftover spaces" is on by default and fixes the double space or the space before a comma that a removed emoji leaves. "Also remove other symbols" is off by default, because most people want their currency signs and arrows intact.
Why people strip them
Emoji break systems that expect plain text. They use four bytes, and legacy databases, CSV imports and older SQL columns still choke on that, so one party popper in one cell can fail an entire load. Plain-text fields, SEO metadata and consistent usernames all behave better without them.
Accessibility is the reason most people forget. A screen reader announces every emoji by name, so five fire emoji in a row are read out as "fire fire fire fire fire", and skin-tone or gender variants add more words on top (Pope Tech, Litmus). Cleaning them makes the text easier to hear, not only neater to look at.
One honest limit: this is text hygiene and nothing more. It does not rewrite your sentences, and it will not change what an AI detector says about your writing. Detectors score word choice and rhythm, not hidden characters.
Developers usually skip the page. To clean many files or a whole sheet, a regex on the Extended_Pictographic property in Python, or a library such as demoji, beats pasting blocks one at a time.
This free tool vs Klipto
| This free web tool | Klipto | |
|---|---|---|
| Strips skin-tone, flag and ZWJ sequences | Yes, manually | Yes, automatically |
| Runs on paste | No, paste in and copy back | Yes, on every Command-V |
| Works system-wide (Slack, CRM, code, CSV) | No, this page only | Yes, anywhere you paste |
| Needs a website or internet | Yes | No, native and offline |
| Privacy | In your browser | On-device, never touches the network |
| Cleans again on the next paste | No | Yes |
| Clipboard history and recall | No | Yes |
| Platform | Any browser | macOS 14+ |
| Price | Free | Free tier, $19.99 one-time Pro |