Skip to content

a collection of lightweight TypeScript packages for AT Protocol, the protocol powering Bluesky.

License

Notifications You must be signed in to change notification settings

mary-ext/atcute

Repository files navigation

atcute

a collection of lightweight TypeScript packages for AT Protocol, the protocol powering Bluesky, featuring:

looking for more? check out skyware, an additional collection of packages, built on top of atcute.


Packages
Core packages
client: API client library
lex-cli: CLI tool to generate type definitions for the API client
OAuth packages
oauth-browser-client: minimal OAuth browser client implementation
Lexicon definitions
bluemoji: adds blue.moji.* lexicons
bluesky: adds app.bsky.* and chat.bsky.* lexicons
ozone: adds tools.ozone.* lexicons
whitewind: adds com.whtwnd.* lexicons
Utility packages
tid: TID record key codec
car: CAR/repository decoder
cid: CIDv1 codec
cbor: DAG-CBOR codec
varint: Protobuf-style varint codec
multibase: multibase utilities
crypto: cryptographic utilities
Bluesky-specific packages
bluesky-richtext-builder: builder pattern for Bluesky's rich text facets
bluesky-richtext-parser: parse Bluesky's (extended) rich text syntax
bluesky-richtext-segmenter: segments Bluesky's rich text facets into tokens
bluesky-threading: create Bluesky threads containing multiple posts with one write

contribution guide

this monorepo uses mise to handle versioning, although it doesn't really matter. Node.js LTS is necessary to use the internal-dev-env package for testing the client package with the official PDS distribution, but otherwise you can (and should) use the latest available version.

# Install all the recommended runtimes
mise install

# Runs all the build scripts
pnpm run -r build

# Pull in the latest ATProto/Ozone/Bluesky lexicons, and generate the type declarations
pnpm run pull
pnpm run -r generate