Skip to main content

Overview

Package Selection​

Choose the right package for your project needs. Most developers will use one of the main packages below, while utility packages are automatically included as dependencies.

Quick Selection Guide

For most developers:

  • bluesky - Building Bluesky applications with social features, chat, and feeds
  • atproto - Core AT Protocol functionality for any AT Protocol service
  • bluesky_text - Rich text processing and facet generation for Bluesky content

Utility packages are included automatically as dependencies.

See the Install Package section for installation instructions.

Main Packages​

Packagepub.devDescription
blueskypub packageComplete Bluesky development toolkit with social features, chat, and all AT Protocol functionality. → Documentation
atprotopub packageCore AT Protocol functionality for any AT Protocol service. Ideal for infrastructure tools and multi-service applications. → Documentation
bluesky_textpub packageRich text processing and facet generation for Bluesky content. Essential for advanced text features. → Documentation

Utility Packages​

These packages are automatically included as dependencies and typically don't need direct installation:

Packagepub.devDescription
at_primitivespub packageAT Protocol primitive types (identifiers, URIs, NSIDs) - replaces at_identifier, at_uri, and nsid
xrpcpub packageHTTP client specialized for XRPC communication in AT Protocol
multiformatspub packageContent addressing and CID support for AT Protocol
atproto_corepub packageCore functionality and utilities for AT Protocol services
did_plcpub packageIndependent DID PLC Directory client with high-performance caching and streaming. → Documentation
atproto_oauthpub packageOAuth 2.0 with DPoP authentication for AT Protocol services

Tools​

CLI​

Namepub.devDescription
bluesky_clipub packageCLI tool to easily use Bluesky Social's APIs from the command line.

GitHub Actions​

NameMarketplaceDescription
bluesky-postbluesky-postUse this action to send a post to Bluesky Social from GitHub actions workflow.

Package Architecture​

atproto.dart uses a layered architecture where each package has clear responsibilities and can work independently. This modular design allows you to use only what you need while maintaining compatibility across the ecosystem.

The dependency graph below shows how packages relate to each other. Solid lines represent direct dependencies in pubspec.yaml, while dashed lines show compatible package relationships.

atproto.dart

at_primitives

atproto_core

multiformats

xrpc

atproto_oauth

atproto

bluesky

bluesky_text

bluesky_cli

did_plc