Bluesky

Bluesky Bio Character Counter

Quick answer: Your Bluesky bio can hold up to 256 graphemes, and it has a second ceiling of 2,560 UTF-8 bytes. Whichever you hit first blocks the save. Spaces, line breaks, emoji and links all count. Paste your draft into the counter below and you will see both numbers update as you type.

If you are setting up a new profile, moving over from X, or polishing a bio for a brand, this page is built for you. You get a free counter, the exact limit for every profile field, and honest answers to the questions that trip people up: why a bio can fail under 256, what a link really costs, and how long a good bio actually needs to be.

Nothing you type leaves your browser, and there is no signup.

Last verified September 29, 2026

Count your Bluesky bio

Live grapheme, word, line, emoji and byte counts for every profile field, all in one place. Runs entirely in your browser.

This counter uses Intl.Segmenter, the same grapheme segmentation the AT Protocol uses. For English, accents and common emoji the count matches Bluesky exactly. Rare scripts and brand new emoji can differ by a few graphemes between Unicode versions, so leave yourself a small buffer if you write in an Indic script.
Start from a counted template:
0 / 256
graphemes
256 left
0words
0lines
0emoji
0 / 2,560utf-8 bytes
118 = median existing bio 155 = search snippet zone
Counted with your browser's Intl.Segmenter
Bluesky bios are plain text: no bold, no italic, no markdown. Spaces, punctuation, emoji and line breaks all cost 1 grapheme each, and links count at the length you type.
Link cost helper: what a URL really costs in your bio
0 / 64 graphemes 64 left
0 / 640bytes
Display name supports emoji and any Unicode characters, but every emoji is 1 grapheme and 4 or more bytes. Stack enough emoji and you can hit the 640-byte ceiling before the 64-grapheme limit. It is separate from your handle, so you can change it whenever you like. What you type here also fills the title line of the search preview on the Bio tab.
0 / 20 graphemes 20 left
0 / 200bytes
Where should your pronouns live?
In the dedicated pronouns field (20 graphemes)0 of 20 graphemes
In your display name (64 graphemes)0 of 64 graphemes
At the top of your bio, with a separator (256 graphemes)3 of 256 graphemes
Through a pronouns labeller0 graphemes anywhere
The pronouns field (20 graphemes, 200 bytes) is defined in the AT Protocol's app.bsky.actor.profile lexicon. The official app editor has not surfaced it yet: third party clients can write it, and a replacement pronouns labeller appeared in February 2026 after the original disappeared.
Half of Bluesky accounts have no bio at all, and the median bio that does exist is 118 graphemes. You do not need to fill all 256.
Your text never leaves your browser. Nothing is uploaded or stored.

All Bluesky Character Counters

Dedicated counters for every Bluesky field

Bluesky Character Counter
Count posts, replies, bios, display names, DMs, alt text, and threads against Bluesky's exact grapheme limits — with a URL cost estimator and thread splitter built in.
300 graphemes per post
You are here
Bluesky Bio Character Counter
Stay within the 256-grapheme bio limit. Plan your one-liner, proof line, and CTA line — and see exactly what a link in your bio costs.
256 graphemes

How many characters can a Bluesky bio have?

A Bluesky bio, which the AT Protocol calls the profile description, allows 256 graphemes and 2,560 UTF-8 bytes. Most guides say "256 characters", and for everyday text that is the same thing. The precise unit is graphemes, and that matters as soon as your bio includes emoji, accents or non Latin scripts.

Profile field Grapheme limit Byte ceiling Notes
Bio (profile description) 256 2,560 bytes Plain text only. Links, emoji and line breaks count.
Display name 64 640 bytes Separate from your handle. Emoji allowed.
Pronouns 20 200 bytes Exists in the protocol. Not in the official app editor in the sources checked.
Website Not capped by grapheme URI format Exists in the protocol. Not in the official app editor in the sources checked.
Handle (custom domain) 253 characters total DNS rules Each dot separated label is capped at 63. About 244 is the practical maximum because verification adds a prefix.
Handle (name.bsky.social) 3 to 18 characters DNS rules This applies to the part before .bsky.social.
Post (for comparison) 300 3,000 bytes Not the same as the bio limit.

Two mix ups come up again and again. The bio is not 300 like a post, and the display name is not 256 like the bio. The counter above has a tab for each field so you can draft them against their real limits.

What is a grapheme, and why does Bluesky count them?

A grapheme is one thing you would point at on screen and call a character, as defined by Unicode Standard Annex 29. Bluesky counts those, not the smaller pieces a computer stores underneath. That is why a single family emoji costs 1 against your 256, even though it is built from seven code points and takes 25 bytes.

What you type Graphemes JavaScript length UTF-8 bytes
Letter a111
Letter é (e plus a combining accent)123
Basic emoji, like a smiley124
Flag emoji148
Thumbs up with skin tone148
Family emoji11125
One Japanese character113
Devanagari conjunct (क्षि)1412
Line break111

These numbers were counted with the same Intl.Segmenter engine the tool uses. A counter built on plain JavaScript string length would read that family emoji as 11 and a flag as 4. Those tools overcount, so you might trim words you never had to cut. Fifteen flags cost you 15 graphemes on Bluesky, but a naive counter reports 60.

It is also different from X. X applies weighted counting where Japanese, Chinese and Korean text is counted double on the free tier. On Bluesky a Japanese character is 1 grapheme, exactly like an English letter.

Why can my bio fail when the counter says I am under 256?

Because of the second ceiling. Every Bluesky text field has a grapheme limit and a byte limit, and the bio byte limit is 2,560. For plain English it can never be the problem, since a Latin letter is 1 byte and 256 letters is 256 bytes.

256 of this Bytes used Under 2,560? Where the byte ceiling stops you
Latin letters and spaces256YesNever before 256 graphemes
Japanese, Chinese or Korean characters768YesNever before 256 graphemes
Basic emoji1,024YesNever before 256 graphemes
Devanagari conjuncts like क्षि3,072NoAt 213 conjuncts
Family emoji6,400NoThe 103rd one breaks it

Here is the family emoji case in plain numbers. 102 of them is 2,550 bytes and still fits. The 103rd takes you to 2,575 bytes and the save fails, even though you are only at 103 of your 256 graphemes. If you love emoji heavy bios, watch the byte readout as well as the grapheme ring.

Can two grapheme counters disagree?

Yes, in rare cases, and it is not a bug in your counter. Unicode changes over time, and the rules for grouping characters into graphemes have been updated for some scripts. A GitHub report on the AT Protocol repository showed the Hindi word नमस्ते counted as 4 graphemes by an older library and 3 by the current standard. Bluesky engineers acknowledged that counts can shift between Unicode versions and implementations, and that the code now uses the browser style Segmenter when it is available, with a fallback library.

What this means for you: for English, accents and common emoji, expect exact agreement. If you write in an Indic script or use the newest emoji, leave yourself a small buffer of a few graphemes.

Do links count toward the Bluesky bio limit?

Yes, and they count at the length you type. Bluesky has no fixed link length like the 23 characters X uses or the 23 characters Mastodon uses. Your bio is stored as one plain text string in the profile record, and the app finds links when it displays your profile. There is no link markup to shorten, so what you type is what you spend.

Posts behave differently, which is a big reason for the confusion online. In the official app, the post composer swaps long URLs for a shortened display form and counts that shorter form. One 2026 analysis measured a 54 character docs link costing 29 in a post. Some counters still tell you links cost 22 characters, and some say they cost nothing. Neither is right for a bio.

A few ways to protect your budget:

  • Use the shortest domain you own, or a short link in bio page if you need several destinations.
  • Try leaving off the https:// prefix, which saves 8 graphemes. After saving, tap your profile link to confirm it still opens, because a bare domain only becomes tappable if the app recognizes it as a web address.
  • Write the bio first and add the link last. If it does not fit, change the link, not the pitch.
  • Pin a post for extra room. Bluesky supports one pinned post, and a post can hold 300 graphemes against the bio's 256.
  • Paste any URL into the link cost helper in the tool to see exactly what it leaves you.

Do emoji, line breaks and formatting count?

Emoji cost 1 grapheme each, however complex. Line breaks cost 1 each, and there is no separate limit on how many lines you can have. Spaces and punctuation cost 1 each. There is no free allowance for anything.

The bio is plain text. There is no bold, no italics, no markdown and no custom link text. If you type asterisks around a phrase, visitors see the asterisks. Your real formatting tools are capital letters, emoji, a separator such as a middle dot or a vertical bar, and line breaks.

You may see fancy font generators that swap in Unicode lookalike letters. They can look fun, but some of those generator sites warn that styled text can break screen readers and search, and Bluesky has a lot of accessibility minded users. For a bio you want people to find and understand, plain letters are the safer choice.

Does Bluesky have a website field or a pronouns field?

Inside the protocol, yes to both. A profile update from September 24, 2025 added an optional website field that takes a URL, and a pronouns field capped at 20 graphemes and 200 bytes. Inside the official app, the sources I checked in mid 2026 show an editor with just avatar, banner, display name and bio. That means the app has not surfaced either field yet, though a third party client can write them.

So what do people do today?

  • For links: paste the URL into the bio and pay for it in graphemes.
  • For pronouns: add them to the display name or the bio, use a third party client that supports the field, or use a pronouns labeller. The original labeller disappeared and a replacement appeared in February 2026.

This can change with any app update, so it is worth a quick look at your own Edit Profile screen. For comparison, Mastodon gives you four labeled link fields and a way to verify them.

How long should a Bluesky bio be?

There is no official ideal, and here is the interesting part: almost nobody fills the space. In a July 2026 sample of 3,712 Bluesky accounts, 52.2% had no bio at all. Among accounts that did have one, the median length was 118 graphemes, under half the allowance, and only 7.2% came within six graphemes of the cap.

Data note: this sample comes from one independent analysis by Agent Sky, taken from the followers of six well known accounts on a single day. Treat 118 as a rough band, not a law. The share of empty bios stayed near half across every draw they took.

So the real question is not "how do I fit in 256?" It is "what do I say so a stranger follows me?" A clear bio of around 100 to 150 graphemes puts you at or above the median. The rest is optional room. A simple three part shape works well:

  • Lead with your niche. The first words should make your category obvious. "Indie game dev posting devlogs" beats "creative human making things."
  • Give a reason to follow. Say what shows up in their feed: tips, news on a beat, daily drawings, behind the scenes.
  • End with one signpost. A link to your newsletter, portfolio or main project.

Be specific rather than generic. "Writing about seabirds and bad maps" tells someone far more than "lover of life and coffee." Use a separator like a middle dot to pack several ideas into one scannable line, and skip repeating your display name, since it is already shown right above your bio.

Your bio is also your search snippet

Bluesky profile pages are public web pages. When I checked a public profile, the page description and the social preview description were both the bio text itself. That means your bio can show up as the snippet when someone finds or shares your profile link.

Search engines choose their own snippet length, and it changes, but a common range is roughly 150 to 160 characters. So put the words a person would actually search, such as your job, topic or community, in the first line, and keep the important part inside the first 150 or so graphemes. The search preview in the Bio tab shows exactly where that cut lands on your draft, using your display name as the result title. A domain you own as your handle also acts as built in proof that the account is really you.

Five Bluesky bio templates, counted

Each of these was counted with the same grapheme engine as the tool. Domains are placeholders, so swap in your own. Each one also loads into the Bio tab with a single click on the template chips, so you can start from a template and edit it against the live counts.

Climate data viz · maps and charts daily · ex-NOAA · newsletter at climatemaps.example
86 graphemes · 89 bytes · 1 line
SEO writer for B2B SaaS. Ex-HubSpot. Free landing page teardowns every Tuesday. seoteardowns.com
96 graphemes · 96 bytes · 2 lines
Indie game dev posting devlogs and pixel art 🎮 Shipping a cozy farming game Wishlist: mygame.example
100 graphemes · 103 bytes · 3 lines · 1 emoji
Nurse, reader, plant person 🌿 Talking about burnout, books and bad houseplant decisions
87 graphemes · 90 bytes · 2 lines · 1 emoji
DevRel at ProtoSky I explain the AT Protocol in plain English. Weekly notes at protosky.example/notes
101 graphemes · 101 bytes · 3 lines

Notice that none of them spends even half of the budget. That is the point. You have room for a location, a second proof line or another link if you want one.

How does the 256 limit compare with other platforms?

Bluesky is more generous than most big networks for bios, and only Mastodon and Pinterest give you more space.

Platform Bio limit How it compares with Bluesky's 256
Bluesky 256 graphemes Links count at the length you type. 2,560 byte ceiling.
Mastodon 500 characters by default Almost double, and every link counts as just 23 characters. Also has four labeled link fields.
Pinterest 500 characters Same space as Mastodon. Older comparison tables still quote the previous 160 limit.
X 160 characters Bluesky gives you 96 more, or 60% more room.
Instagram 150 characters Bluesky gives you 106 more, about 71% more.
Threads 150 characters Same as Instagram. Bluesky gives you 106 more.
TikTok 80 characters Bluesky gives you more than three times the space.

Limits on other platforms change from time to time, so check the official help page of any network before you rely on its number. The Mastodon figures come from its official documentation.

Can I copy my X bio into Bluesky?

Almost always. A full 160 character X bio fits with about 96 graphemes left over, and emoji cost less on Bluesky than on tools that count raw characters. Two things to watch: any @mention or link is plain text and costs whatever you type, and a Mastodon bio of up to 500 characters may need trimming to fit 256. Paste it into the Bio tab and you will know in a second.

Other Bluesky text limits at a glance

If you are here for a different field, this table covers the rest. For posts, DMs and alt text, the full Bluesky character counter checks those fields live. These figures were read from the AT Protocol lexicons and the Bluesky app source in July 2026.

Field Limit Note
Post300 graphemes, 3,000 bytesWhichever you hit first
Direct message1,000 graphemes, 10,000 bytes
Hashtag64 graphemes, 640 bytesPer tag
Image alt text2,000 graphemesA limit set by the official app, not the protocol
Video alt text2,000 graphemesApp level limit, same as images. The lexicon's old 1,000 cap was removed.
Feed name24 graphemes, 240 bytes
Starter pack name50 graphemes, 500 bytes
List name64 bytes onlyNo grapheme allowance, so non Latin names fit fewer characters
List, feed and starter pack descriptions300 graphemes, 3,000 bytes

How to use the Bluesky bio counter

  1. Pick your field. Open the Bio tab for the 256 grapheme profile description, the Display Name tab for the 64 grapheme name, or the Pronouns tab for the 20 grapheme field.
  2. Type or paste your draft. Or start from one of the five counted templates. The grapheme count, words, lines, emoji and UTF-8 bytes update on every keystroke, and the search preview shows how your bio reads as a snippet.
  3. Read the color signal. Blue means you are comfortably under the limit, amber means you are close, and red means you are over and need to trim.
  4. Test your link. Paste your URL into the link cost helper to see how many graphemes it takes from your 256 budget before you add it.
  5. Copy it into Bluesky. Press Copy, then paste the text into Edit Profile in the Bluesky app or on bsky.app and save.

Every tab has its own Clear and Copy buttons. The counter runs in your browser, so your draft is never uploaded or stored.

Frequently asked questions

Common questions about the Bluesky bio limit, grapheme counting and profile fields

A Bluesky bio can be up to 256 graphemes long, with a second ceiling of 2,560 UTF-8 bytes. Both are set in the app.bsky.actor.profile lexicon, and whichever you reach first blocks the save. For normal English text the 256 is the only limit you will ever feel.
No. Posts allow 300 graphemes (and 3,000 bytes), while the bio allows 256 graphemes (and 2,560 bytes). Your display name is shorter again at 64 graphemes. People mix these up because most guides quote the 300 post limit first.
Yes. Every emoji counts as 1 grapheme, including flags, skin tone emoji and family emoji. The catch is bytes. A family emoji costs 25 bytes, so about 103 of them would push a bio past the 2,560 byte ceiling long before 256 graphemes.
Yes. Each line break costs 1 grapheme, just like a letter or space. There is no separate limit on the number of lines, so a three line bio spends only 2 graphemes on its line breaks.
Yes, and they count at the length you type. The bio is stored as one plain text string, so there is nothing to shorten and no fixed 22 or 23 character rule like the ones on X or Mastodon. Use a short domain or a link in bio page to save room.
No. The bio is plain text. Asterisks and HTML tags show up exactly as typed. Capital letters, emoji, separators such as a middle dot, and line breaks are the tools you have for structure.
Your display name can be up to 64 graphemes with a 640 byte ceiling. It is separate from your handle, so you can change it whenever you like without touching your handle.
The pronouns field allows 20 graphemes and 200 bytes. It exists in the AT Protocol profile record, but the official Bluesky app editor did not show it in the sources I checked, so most people add pronouns to their display name or bio, or use a third party client or a pronouns labeller.
The protocol does. The profile record has an optional website field that accepts a URL. The official app editor only exposes avatar, banner, display name and bio in the sources I checked, so for now most people paste their link into the bio and pay for it in graphemes.
Most generic counters measure JavaScript string length or bytes instead of graphemes. Those overcount emoji, flags and accented letters, so they can say you are over when you are not. Rare scripts and brand new emoji can also differ slightly between Unicode versions.
Almost always. X bios are capped at 160 characters and Bluesky allows 256 graphemes, so a full X bio leaves about 96 to spare. Mentions and links are plain text on Bluesky and cost what you type. A Mastodon bio of up to 500 characters may need trimming.
The official app allows 2,000 graphemes of image alt text, and that limit comes from the app rather than the protocol. Video alt text used to be capped at 1,000 graphemes in the lexicon, but that cap was removed and the app now enforces the same 2,000 it uses for images. Pages that quote 1,000 for images are mixing it up with the old video cap.
There is no official ideal. In one July 2026 sample of 3,712 accounts, about half had no bio and the median bio among those that did was 118 graphemes. A clear bio of around 100 to 150 graphemes puts you at or above that median without filling all 256.
Bluesky profile pages are public web pages, and the page description is your bio text, so search engines and social shares often show it as the snippet. A common snippet range is roughly 150 to 160 characters, so lead with the words you want to be found for. The search preview in the Bio tab shows where yours would be cut.
I found no announced change as of September 29, 2026. The 256 and 2,560 caps live in the shared profile lexicon, so raising them would be a protocol level change rather than a simple app update.
Saif ul Rehman
Saif — Founder of TextCountify
Reviewed on September 29, 2026

I built TextCountify because I was tired of switching tabs to check character limits while managing social media content and SEO work. Every limit on this page is verified against official platform documentation monthly. If something is wrong, tell me directly — I read every message.

More about TextCountify →