Comparison

X-Pat vs X-Posed, and the rest of the shelf.

About twenty extensions put a country flag next to an X handle. Three of them have meaningful numbers of users. Here is what each one actually does, what X-Pat does differently, and the three things X-Posed does better — which is the part most comparison pages leave out.

Feature by feature

Every cell comes from a public store listing or a public repository, read on 2 August 2026. A dash means the listing does not say — for the two closed-source extensions that is not the same as a no, and it would be unfair to draw it as one.

X-Pat compared with the three most-installed X location extensions
FeatureX-PatX-PosedFlags & TimeRegion Blocker
Country shown inline, without opening a menuRead from X's own “About this account” data, not guessed from an IP address.yesyesyesnot stated
Warning when X cannot verify the locationX marks some accounts as having a location it cannot verify. That is X declining to confirm the country — not proof of a VPN, and nobody here can prove one.yesyesyesnot stated
Sign-up source — Apple, Google Play or webyesyesnot statednot stated
Account ageyesyesnot statednot stated
Handle-change countyesyesnot statednot stated
Hide or collapse by country and regionCollapse behind a “Show” button is the default here, because a timeline that silently drops posts is one you cannot audit.yesyesyesyes
Language filterX's per-post language field is unreliable enough that shipping a filter on top of it generates bug reports. Deliberately not built yet.noyesnot statednot stated
Always-show allowlist and per-rule exceptionsyesyesnot statednot stated
Shared cache, so flags survive the rate limitX allows one browser about 50 profile lookups per 15 minutes. Without a shared cache that ceiling is the whole experience.yesyesyesno
Cache server source publishedThe server that receives contributions, not just the extension that sends them. Ours is in the same repo, with deploy docs — you can read it, or run your own.yesnononot applicable
Cached entries cross-checked between installsOurs keeps per-install votes and serves the consensus, with a confidence threshold you can raise. X-Posed documents storing the last accepted value for a handle.yesnonot statednot applicable
Extension source publishedyesyesnono
Automated test suite in the repoUnit, end-to-end against recorded traffic, and visual regression. The number is what CI runs on every push.518 tests518 testsnonenonenot applicablenot applicable
Firefoxnoyesyesno
iPhone / iPad companion appnoyesnono

Where X-Posed is ahead

  1. X-Posed is the mature one

    Roughly 7,000 Chrome installs against our handful, four years of releases, and a community cache holding millions of profiles where ours holds thousands. A bigger cache genuinely means more instant flags on day one. That is a real advantage and it is not close.

  2. It ships on more surfaces

    Firefox desktop, Firefox for Android, and a companion iPhone app. X-Pat is Chromium-only today — Chrome, Edge, Brave, and Lemur on Android. Firefox is planned, iOS is not.

  3. It has a language filter

    We do not, on purpose. X's per-post language field is wrong often enough that filtering on it produces posts vanishing for no visible reason. That is a defensible call rather than a missing feature — but if filtering by language is what you came for, X-Posed has it and we do not.

What actually differs

Everything in this category depends on a shared cache. X allows one browser roughly fifty profile lookups every fifteen minutes, and a busy thread has more accounts than that — so every extension here that keeps working past the limit does it by reading a cache other people filled. The question is not whether there is a server. It is what that server is allowed to do.

Ours is published, and you can run your own. The cache server is in the same repository as the extension, with deployment docs for both Cloudflare Workers and a plain VPS. X-Posed publishes its extension — genuinely, and under MIT — but not the Worker its contributions are sent to. That is the piece you cannot check by reading the code you installed.

A cached answer here needs corroboration. Contributions are stored as per-install votes and the consensus is what gets served, with a confidence threshold you can raise in the options page. X-Posed's own documentation describes storing the last accepted value for a handle, which means the most recent contributor decides. Both designs are honest about the same underlying problem: neither server can prove a contribution really came from X.

Lookups carry no identifier. Reads are an unsigned list of handles, so the server has nothing to join them against and cannot build "this install looked at these accounts". Counting readers would take one line and would end that property, which is why the published stats undercount on purpose.

And the rate limit is rationed rather than raced: background work stops at seventy percent of the window, so the last fifteen lookups are still there for accounts you actually hover. The mechanism is drawn out on the homepage.

Sources

Read on 2 August 2026. Install counts and features move; if something below is out of date, it is an error rather than a position, and the issue tracker is the fastest way to have it corrected.

Questions people actually ask

What is the best X-Posed alternative?
It depends what you need. X-Posed is the most established option and has a language filter, Firefox builds and an iPhone app that X-Pat does not. X-Pat differs on the shared cache: its server is published and self-hostable, cached entries are cross-checked between installs before being served, and lookups carry no identifier the server could use to build a profile of what you looked at.
Is X-Pat open source?
Yes, MIT licensed, and so is the cache server it talks to — both live in the same repository, with deployment docs for Cloudflare Workers and for a plain VPS. X-Posed also publishes its extension under MIT; what it does not publish is the Worker that receives community-cache contributions.
Do these extensions need my X password?
None of the ones compared here do. They reuse the X session already open in your browser to make the same request X makes when it shows you a profile. There is no login, no API key and no third-party account.
Why does the flag stop appearing halfway down a thread?
X allows one browser about fifty account lookups every fifteen minutes, and a busy thread contains more accounts than that. Extensions that hit the ceiling simply stop filling in flags. A shared cache is what avoids it — most profiles cost no lookup at all because someone else already resolved them — and X-Pat additionally reserves the last thirty percent of the window for accounts you hover yourself.
Can the cache server tell what accounts I looked at?
Not X-Pat's. Lookups are sent as a plain list of handles with no identifier attached, so there is nothing for the server to join them against. Contributions do carry an anonymous per-install id, because the consensus model needs to know that two votes came from two different installs, and that id covers only the handles you personally resolved from X rather than everything you read.

Stop guessing where the timeline comes from.

Add to Chrome

Free, and it works the moment it installs. There’s no account to create.