Every package in this directory is published to npm. Packages under ./internal/ are published under the @atproto-labs/* scope; all others use @atproto/*. Thin runtime wrappers for the services live in ../services/.
pds: The Personal Data Server (PDS) — account management, repo storage, blob storage, and OAuth provider. atproto's main server-side implementation.bsky: Theapp.bsky.*AppView — read-side service for timelines, profiles, feed generators, and view hydration.bsync: Cross-AppView synchronization service (mutes, notifications) over Connect-RPC.ozone: Moderation service implementing thetools.ozone.*API.
The modern, type-safe Lexicon toolchain. Most consumers only need @atproto/lex, which re-exports the core pieces.
lex: The umbrella SDK —lex install/lex buildCLI, typed XRPC client, and re-exports of the packages below.lex-schema: The runtime schema system that generated code is built on.lex-builder: Generates TypeScript schemas from Lexicon documents.lex-document: Validation of Lexicon documents themselves.lex-installer: Resolves and installs Lexicon documents into a project.lex-resolver: Resolves Lexicon documents from the network.lex-data: Core data-model types and utilities.lex-json: JSON encoding/decoding of Lexicon data.lex-cbor: CBOR (DRISL) encoding/decoding of Lexicon data.lex-client: HTTP (XRPC) client for Lexicon-defined APIs.lex-server: Request router for Lexicon-defined APIs.lex-password-session: Password-based client authentication, for scripts and bots.xrpc-server: Express-based XRPC server.server.add()registers routes from generated lexicon schemas; used by all four services in this repo.
oauth-provider: OAuth 2.1 provider, as used by the PDS.oauth-provider-api: Shared types between the OAuth provider and its UI.oauth-provider-ui: Sign-in and sign-up interface for the OAuth provider.oauth-client: Runtime-agnostic OAuth client base.oauth-client-browser: OAuth client for browsers (WebCrypto + IndexedDB).oauth-client-node: OAuth client for Node.js.oauth-client-expo: OAuth client for Expo applications.oauth-client-browser-example: Example single-page app using atproto OAuth.oauth-types: OAuth typing and validation.oauth-scopes: Manipulation and validation of atproto OAuth scopes.jwk: JSON Web Key abstractions, extended by the implementations below.jwk-jose:jose-backed implementation of@atproto/jwk.jwk-webcrypto: WebCrypto-backed implementation of@atproto/jwk.
syntax: Identifier and string-format validation: DID, handle, NSID, AT URI, TID, record key, datetime.did: DID parsing, resolution, and verification.identity: Decentralized identity resolution combining DIDs and handles.crypto: Cryptographic keys and signing.repo: The atproto repository implementation (a Merkle Search Tree) and CAR handling.sync: Firehose consumption and repo synchronization.tap: Client for the atproto tap (event stream) interface.ws-client: Long-lived WebSocket client connections.lexicon-resolver: Network resolution of Lexicon documents.
Being replaced by the Lexicon SDK above. Still used in parts of this repo; prefer @atproto/lex for new code.
api: Client library for atproto and Bluesky.lexicon: The original Lexicon schema language and validation library.xrpc: XRPC client implementation.lex-cli: Codegen tool for the@atproto/api/@atproto/lexiconstack.
Utility packages published under the @atproto-labs/* scope, all located in ./internal/.
fetch: Isomorphic wrappers around thefetchAPI.fetch-node: SSRF protection forfetch()in Node.js.pipe: Composition of multiple functions into one.did-resolver: DID resolution and verification.handle-resolver: Isomorphic handle-to-DID resolution.handle-resolver-node: Node-specific handle-to-DID resolution.identity-resolver: Full atproto identity resolution.simple-store: Minimal key-value store interfaces and utilities.simple-store-memory: In-memorySimpleStore.simple-store-redis: Redis-backedSimpleStore.xrpc-utils: XRPC server utilities for Node.js.rolldown-plugin-bundle-manifest: Generates a manifest of bundled files from a Rolldown build.
A few further shared libraries live at the top level under the @atproto/* scope:
common: Code shared between atproto packages (Node-friendly).common-web: The web-platform-friendly subset ofcommon.aws: AWS helpers (S3 blob storage, etc.) for atproto services.