Shorten text to fit any limit
Paste your text and pick a limit: an X post, an SMS, a meta description, or your own number of characters, words or bytes. You get shorter versions side by side, each counted the way that place counts. Need the exact text back later instead? The Lossless tab compresses it with gzip. Your text never leaves this page.
Character limits, and how each place counts
“280 characters” isn’t always 280 of what you see. These are the limits the presets use.
| Where | Limit | How it’s counted |
|---|---|---|
| X post | 280 | Links count as 23 whatever their length; emoji and Chinese, Japanese or Korean characters count as 2 |
| SMS | 160 | 160 in the basic SMS alphabet; a single emoji or curly quote switches the whole text to 70 |
| Bluesky post | 300 | Characters as you see them, so an emoji counts as 1 |
| Meta description | 155 | Google cuts by width; about 155 characters stay visible on a computer |
| Title tag | 60 | Cut by width; about 60 characters stay visible |
| YouTube title | 100 | Characters |
| Instagram bio | 150 | Characters |
| LinkedIn headline | 220 | Characters |
How to shorten text to a character limit
“Compressing” text can mean two things. Most of the time it means making it shorter while keeping what it says, which is what the main tab does: cutting padding first, then whole sentences, and never changing names, numbers or links. The other meaning is lossless compression, where the text becomes unreadable but much smaller and can be turned back into exactly the original. That’s the Lossless tab.
The same goes for files: to make a PDF, photo or ZIP smaller without losing anything that matters, use the PDF compressor or ZIP compressor, which also run in your browser.
- 1Paste your text. Paste the text into the box. It stays on this page: nothing is uploaded.
- 2Pick a limit. Choose where it’s going, like an X post, an SMS or a meta description, or set your own number of characters, words or bytes.
- 3Copy the version you like. Compare the tightened version, the key sentences and, in desktop Chrome, an on-device AI rewrite. Each shows its count against the limit.
Frequently asked questions
Is my text uploaded?
No. The text is shortened by JavaScript on this page, and the AI option uses the model built into Chrome, which runs on your own computer. Nothing is sent to a server.
How does it shorten text without AI?
Tightened replaces wordy phrases (“in order to” becomes “to”, “due to the fact that” becomes “because”), drops filler words like “very” and “really”, and tidies spacing. If the text is still too long, it ends at the last whole sentence that fits, or at a whole word with “…”. Key sentences instead keeps the sentences that share the most important words with the rest of the text, in their original order.
Why does my SMS only hold 70 characters?
Texts use a 7-bit alphabet that fits 160 characters. A single character outside it, like an emoji, a curly quote (’ or “) or a long dash, switches the whole message to Unicode, which fits 70. For SMS, the tool swaps curly quotes and dashes for plain ones so the text stays in the 160-character alphabet. Longer texts are sent in parts of 153 (or 67) characters.
How does X count characters?
Most letters, digits and punctuation count as 1, but emoji and Chinese, Japanese or Korean characters count as 2, and every link counts as 23 however long it is. The X post limit here counts the same way, so a version that fits here fits there.
Which browsers can use the on-device AI?
Chrome on a computer (Windows, macOS, Linux or a Chromebook Plus) with about 22 GB of free disk space and either a graphics card with more than 4 GB of memory or 16 GB of RAM. Chrome downloads its built-in model once; after that it runs offline. On phones and other browsers, the tightened and key-sentence versions still work.
What does the Lossless tab do?
It compresses text with gzip and writes the result as Base64, which you can paste into a message, a link or a config file and turn back into exactly the same text with Decompress, or with base64 -d | gunzip. It pays off for longer text like JSON or logs; a sentence or two comes out longer, because gzip and Base64 add a few dozen characters.