a collection of lightweight TypeScript packages for AT Protocol, the protocol powering Bluesky, featuring:
- an API client for making typed HTTP requests, with support for lexicons like WhiteWind or Bluemoji
- an OAuth client for SPA applications for authentication use-cases
- utility packages for various data formats, including CIDv1, DAG-CBOR, CAR and TID record keys
- Bluesky-specific utility packages like a rich text builder and a post threader
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 |
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