Atcute
a collection of lightweight TypeScript packages for AT Protocol, the protocol powering Bluesky.
Install / Use
/learn @mary-ext/AtcuteREADME
atcute
lightweight TypeScript packages for AT Protocol, the protocol powering Bluesky.
quick start
npm install @atcute/client @atcute/bluesky
import { Client, simpleFetchHandler } from '@atcute/client';
import type {} from '@atcute/bluesky';
const client = new Client({
handler: simpleFetchHandler({ service: 'https://public.api.bsky.app' }),
});
const { data } = await client.get('app.bsky.actor.getProfile', {
params: { actor: 'bsky.app' },
});
console.log(data.displayName);
// -> Bluesky
for authenticated requests, see the client docs or use the OAuth browser client for web apps.
packages
| Packages |
| ----------------------------------------------------------------------------------------------------------- |
| Client packages |
| cache: normalized cache store |
| client: XRPC HTTP client |
| firehose: XRPC subscription client |
| jetstream: Jetstream WebSocket client |
| password-session: password-based auth session handler |
| tap: Tap WebSocket client |
| Server packages |
| xrpc-server: XRPC web framework |
| xrpc-server-bun: Bun WebSocket adapter |
| xrpc-server-cloudflare: Cloudflare Workers WebSocket adapter |
| xrpc-server-deno: Deno WebSocket adapter |
| xrpc-server-node: Node.js WebSocket adapter |
| OAuth packages |
| oauth-browser-client: minimal OAuth client for SPAs |
| oauth-node-client: OAuth client for Node.js |
| Lexicon packages |
| lex-cli: generate TypeScript from lexicon schemas |
| lexicon-doc: parse and author lexicon documents |
| lexicon-resolver: resolve lexicons from the network |
| lexicon-resolver-node: Node.js lexicon resolvers |
| lexicons: core types and schema validation |
| Lexicon definition packages |
| atproto: com.atproto.* definitions |
| bluemoji: blue.moji.* definitions |
| bluesky: app.bsky.*, chat.bsky.* definitions |
| frontpage: fyi.unravel.frontpage.* definitions |
| leaflet: pub.leaflet.* definitions |
| lexicon-community: community.lexicon.* definitions |
| microcosm: blue.microcosm.*, com.bad-example.* definitions |
| ozone: tools.ozone.* definitions |
| pckt: blog.pckt.* definitions |
| standard-site: site.standard.* definitions |
| tangled: sh.tangled.* definitions |
| whitewind: com.whtwnd.* definitions |
| Identity packages |
| identity: handle, DID and DID document types |
| identity-resolver: handle and DID document resolution |
| identity-resolver-node: Node.js DNS-based handle resolver |
| did-plc: did:plc operation validation |
| Utility packages |
| car: CAR archive codec |
| cbor: deterministic CBOR codec |
| cid: content identifier codec |
| crypto: signing and verification |
| mst: merkle search tree utilities |
| multibase: base32/base64 encoding |
| repo: repository export reader |
| tid: timestamp identifier codec |
| varint: LEB128 varint codec |
| Bluesky-specific packages |
| bluesky-moderation: content moderation interpretation |
| bluesky-richtext-builder: rich text facet builder |
| bluesky-richtext-parser: parse rich text syntax |
| bluesky-richtext-segmenter: segment text by facets |
| bluesky-search-parser: search query tokenizer |
| bluesky-threading: atomic thread publishing |
contributing
this monorepo uses mise for runtime versioning and pnpm for package management.
# install runtimes
mise install
# build all packages
pnpm run -r build
# pull latest lexicons and regenerate definitions
pnpm run -r pull
pnpm run -r generate
Related Skills
node-connect
343.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
92.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Writing Hookify Rules
92.1kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
review-duplication
99.7kUse this skill during code reviews to proactively investigate the codebase for duplicated functionality, reinvented wheels, or failure to reuse existing project best practices and shared utilities.
