☄️ Browser extension to automagically open AT-URIs
aturi atproto firefox
README.md

AT URL Install in Firefox Install in Chrome #

A browser extension for Firefox and Chrome that redirects at:// URIs from AT Protocol to your preferred AppView.

Supported AppViews #

In alphabetical order:

Supported collections #

Redirects these collections to your preferred AppView (or canonical URL in the case of standard.site):

Collection URL pattern
app.bsky.actor.profile /profile/<did>
app.bsky.feed.generator /profile/<did>/feed/<rkey>
app.bsky.feed.post /profile/<did>/post/<rkey>
app.bsky.graph.list /profile/<did>/lists/<rkey>
app.bsky.graph.starterpack /start/<did>/<rkey>
site.standard.document Record's canonicalUrl
site.standard.publication Record's url
sh.tangled.actor.profile https://tangled.org/<did>
sh.tangled.repo https://tangled.org/<did>/<value.name>
sh.tangled.string https://tangled.org/strings/<did>/<rkey>

Also, at://did:plc:... and at://did:web:... authorities are supported. For bare authority URIs, the handle is resolved from the DID document's alsoKnownAs field (falls back to the DID itself).

For all other collections (and any of the above with ?aturl=raw), it redirects to the PDS record URL directly — the browser renders the native JSON response with its built-in viewer.

Permissions and privacy #

On install, your browser warns that the extension can Access your data for all websites (Firefox) or Read and change all your data on all websites (Chrome). Browsers don't let extensions register a handler for at://, so the way this extension works is:

  1. pasted AT-URIs go to your default search engine
  2. the extension watches top-level navigations to spot at:// in the q, query, or p parameters
  3. if found, redirects the AT-URI to its handler page

It does not read page content, cookies, or form data.

Requests done on your behalf #

Resolving a URI might involve requests to:

  • plc.directory (DID document)
  • the handle's domain (/.well-known/atproto-did)
  • cloudflare-dns.com (DoH handle lookup)
  • the PDS listed in the DID document

Preferences and data flow #

Your AppView preference lives in the browser's sync storage (browser.storage.sync or chrome.storage.sync) — no telemetry.