AD
Launch on Firsto—Launch your project today — get a DR57 backlink instantly.
BSkyInfo LogoBskyInfo
All ToolsCategoriesCollectionsFeed DirectoryLabeler DirectoryArticlesGuidesGlossaryBluesky SDKsSponsor
Submit
All ToolsCategoriesCollectionsFeed DirectoryLabeler DirectoryGuidesGlossaryArticlesBluesky SDKsSponsorSubmit
  1. SDKs
  2. /Dart
  3. /atproto.dart
myConsciousness

atproto.dart

A Dart SDK for Bluesky and AT Protocol by myConsciousness

🦋 Production-Ready AT Protocol & Bluesky SDK for Flutter & Dart 💙

GitHub Stats

200stars
24forks
12contributors
6open issues

Dates

Created:March 7, 2023
Last updated:October 19, 2025

README

The following content is from atproto.dart's GitHub repository. All rights reserved by the original author.

atproto.dart

AT Protocol and Bluesky Social Things for Dart/Flutter


Test/Analyzer License Contributor Covenant GitHub Sponsor melos Reference


  • 1. About atproto.dart 💪
  • 2. Package Ecosystem 📦
    • 2.1. Core Libraries
    • 2.2. Client Libraries
    • 2.3. Utilities & Tools
    • 2.4. CLI Tool
    • 2.5. GitHub Actions Workflow
  • 3. Quick Start Guide 🚀
    • 3.1. Building a Bluesky Social App
    • 3.2. Building AT Protocol Services
  • 4. Project Development Setup 🛠️
    • 4.1. Prerequisites
    • 4.2. Quick Setup
    • 4.3. Development Commands
    • 4.4. Troubleshooting
    • 4.5. Contributing
  • 5. Who is using atproto.dart? 👀
  • 6. Support

Welcome to atproto.dart 🦋

The comprehensive Dart/Flutter SDK for the AT Protocol ecosystem - empowering developers to build the next generation of decentralized social applications with Bluesky and beyond.

1. About atproto.dart 💪

The AT Protocol represents a paradigm shift toward decentralized social networking, and Bluesky is leading this transformation. As the ecosystem grows rapidly with millions of users and thousands of developers building innovative applications, the need for robust, well-designed development tools has never been greater.

atproto.dart is the most comprehensive and battle-tested SDK for AT Protocol development in Dart and Flutter. Whether you're building mobile apps, web applications, bots, or backend services, our SDK provides everything you need to integrate with the AT Protocol ecosystem efficiently and reliably.

Why Choose atproto.dart?

For Mobile & Web Developers:

  • Build cross-platform social apps with Flutter using production-ready AT Protocol integration
  • Access the complete Bluesky API including posts, feeds, profiles, messaging, and moderation
  • Leverage built-in OAuth DPoP authentication for secure user sessions

For Backend & Bot Developers:

  • Create powerful automation tools and bots with comprehensive API coverage
  • Process real-time data streams using our optimized Firehose implementation
  • Build custom AT Protocol services and bridges to other platforms
  • Access Ozone moderation tools for administrative operations

For AT Protocol Enthusiasts:

  • Work with all core AT Protocol primitives: DIDs, NSIDs, AT URIs, Lexicons, and XRPC
  • Contribute to the growing ecosystem of decentralized social applications
  • Access cutting-edge features as the protocol evolves

Proven in Production: Used by popular applications like SkyFeed, deck.blue, SkyThrow, and many others serving thousands of users daily. Our SDK is actively maintained, thoroughly tested, and designed for the demands of production applications.

2. Package Ecosystem 📦

The atproto.dart ecosystem is organized into focused packages that work together seamlessly. Choose the packages that match your project's needs, from low-level AT Protocol primitives to high-level client libraries.

2.1. Core Libraries

Foundation packages for AT Protocol primitives and data structures

PackageDescriptionpub.devDocs
at_primitivesAT Protocol primitive types (identifiers, URIs, NSIDs) - unified packagepub packageREADME
xrpcXRPC HTTP client with built-in retry and error handlingpub packageREADME
multiformatsIPFS multiformats support for content addressing (CIDs, multihash, etc.)pub packageREADME
lexiconLexicon schema parsing and validationpub packageREADME
atproto_coreShared utilities and base functionality for AT Protocol clientspub packageREADME

2.2. Client Libraries

High-level API clients for AT Protocol services

PackageDescriptionpub.devDocs
atprotoComplete AT Protocol client (com.atproto.* endpoints) with Firehose supportpub packageREADME / GUIDE
blueskyFull-featured Bluesky client (app.bsky.*, chat.bsky.* + AT Protocol)pub packageREADME / GUIDE
atproto_oauthOAuth DPoP authentication client for secure user sessionspub packageREADME
did_plcPLC Directory client for DID resolution and managementpub packageREADME

2.3. Utilities & Tools

Specialized packages for text processing

PackageDescriptionpub.devDocs
bluesky_textRich text parsing for mentions, links, hashtags, and formattingpub packageREADME / GUIDE

2.4. CLI Tool

ToolInstallDocs
bluesky_cli: command line tool for app.bsky.* endpointsdart pub global activate bluesky_cliREADME

2.5. GitHub Actions Workflow

WorkflowMarketplaceDocs
bluesky-post: workflow for scheduled post to Bluesky from GitHub Actionsbluesky-postREADME

3. Quick Start Guide 🚀

Get up and running with AT Protocol and Bluesky in minutes. Choose your use case below:

3.1. Building a Bluesky Social App

Perfect for creating mobile apps, web clients, or social features.

dart pub add bluesky
import 'package:bluesky/atproto.dart';
import 'package:bluesky/bluesky.dart';

void main() async {
  // Create authenticated session
  final session = await createSession(
    identifier: 'your-handle.bsky.social',
    password: 'your-password',
  );

  final bsky = Bluesky.fromSession(session.data);

  // Post to Bluesky
  await bsky.feed.post.create(text: 'Hello from atproto.dart!');

  // Get your timeline
  final timeline = await bsky.feed.getTimeline();
  for (final post in timeline.data.feed) {
    print('${post.post.author.displayName}: ${post.post.record}');
  }
}

Next Steps:

  • Complete Bluesky Guide - Authentication, posting, feeds, profiles
  • Supported Bluesky APIs - All available endpoints

3.2. Building AT Protocol Services

Ideal for bots, backend services, or custom AT Protocol implementations.

dart pub add atproto
import 'package:atproto/atproto.dart';
import 'package:atproto/firehose.dart';
import 'package:atproto/com_atproto_sync_subscriberepos.dart';

void main() async {
  final session = await createSession(
    service: 'https://bsky.social',
    identifier: 'your-handle.bsky.social',
    password: 'your-password',
  );

  // Connect to any AT Protocol service
  final atproto = ATProto.fromSession(session.data);

  // Create a record
  await atproto.repo.createRecord(
    repo: session.data.did,
    collection: 'app.bsky.feed.post',
    record: {
      'text': 'Hello AT Protocol!',
      'createdAt': DateTime.now().toUtc().toIso8601String(),
    },
  );

  final subscription = await atproto.sync.subscribeRepos();

  // Listen to the Firehose for real-time updates
  await for (final event in subscription.data.stream) {
    final repos = const SyncSubscribeReposAdaptor().execute(event);

    repos.whenOrNull(
      commit: (data) {
        print('New commit: ${data.repo}');
      },
    );
  }
}

Next Steps:

  • AT Protocol Guide - Repository operations, Firehose, authentication
  • Firehose Processing - Real-time data stream handling

4. Project Development Setup 🛠️

Contributing to atproto.dart or setting up the development environment? This project uses Melos for efficient monorepo management across all packages.

4.1. Prerequisites

  • Dart SDK: Version 3.8.0 or higher (Install Dart)
  • Git: For cloning and version control
  • IDE: VS Code, IntelliJ, or any Dart-compatible editor

4.2. Quick Setup

# Clone the repository
git clone https://github.com/myConsciousness/atproto.dart.git
cd atproto.dart

# Install Melos globally
dart pub global activate melos

# Set up all packages (dependencies, code generation, etc.)
melos setup

The melos setup command handles everything: installing dependencies, running code generation, and preparing the development environment across all packages.

4.3. Development Commands

CommandDescription
melos setupComplete project setup - run this first!
melos getInstall dependencies for all packages
melos analyzeRun static analysis across all packages
melos testExecute all tests in the project
melos fmtFormat code and organize imports
melos buildRun code generation for all packages
melos genGenerate API clients from Lexicon schemas

4.4. Troubleshooting

Setup Issues:

  • "melos command not found": Ensure ~/.pub-cache/bin is in your PATH, or run dart pub global activate melos
  • Build failures: Try melos clean followed by melos setup to reset the environment
  • Version conflicts: Ensure you're using Dart 3.8.0+ with dart --version

Development Issues:

  • Import errors: Run melos build to regenerate code
  • Test failures: Check if you need to run melos gen to update generated API clients
  • Dependency issues: Use melos get to refresh all package dependencies

Need Help?

  • 📖 Contribution Guidelines - Detailed development workflow
  • 🐛 Issue Tracker - Report bugs or request features
  • 💬 Discussions - Ask questions and share ideas
  • 🌐 Documentation - Complete guides and API references

4.5. Contributing

We welcome contributions! Whether you're fixing bugs, adding features, or improving documentation:

  1. Fork the repository and create a feature branch
  2. Make your changes following our coding standards (melos fmt helps!)
  3. Add tests for new functionality (melos test to verify)
  4. Update documentation if needed
  5. Submit a pull request with a clear description

See our Contribution Guidelines for detailed information about the development process, coding standards, and how to submit changes.

5. Who is using atproto.dart? 👀

The following projects/services are using atproto.dart packages:

  • APOD BOT (bot) maintained by @shinyakato.dev
  • SkyFeed (web) maintained by @redsolver.dev
  • SkyBridge (proxy) maintained by @videah.net
  • SkyClad (mobile) maintained by @igz0.bsky.social
  • deck.blue (web) maintained by @deck.blue
  • SkyThrow (mobile) maintained by @rukari.bsky.social, @hidea.bsky.social

You can see more at showcase, special thanks!

6. Support

myconsciousness

Topics

apiatprotoblueskyclientdartfluttersdk

Related SDKs

skyfeed-devindexer

ATProto/Bluesky Indexer powered by SurrealDB.

38•Dart
videahSkyBridge

A work in progress bridge/proxy that lets you use Mastodon apps with Bluesky

603•Dart
myConsciousnessbluesky-post

Use this action to send a post to Bluesky Social from GitHub actions workflow.

43•Dart

Resources

GitHub RepositoryProject Website

License

BSD-3-Clause

Author

myConsciousness
myConsciousness
@igz0.bsky.social

Activity

Last commit: October 19, 2025
Commit frequency: Unknown

Our Sponsors

Your Brand Here!

50K+ engaged viewers every month

Limited spots available!

📧 Contact us via email🦋 Contact us on Bluesky
BSkyInfo LogoBskyInfo

The Most Comprehensive Bluesky Tools Directory

Stay updated with the latest Bluesky tools and ecosystem news 🦋

Bluesky butterfly logo
Quick LinksSubmit a ToolSponsorAboutLegal Information
ToolsFeed DirectoryLabeler DirectorySchedulingAnalyticsAll ToolsCategoriesCollectionsTags
ResourcesArticlesBluesky GuidesBluesky GlossaryBluesky SDKsBluesky ResourcesSkyRaffleMeida Coverage
Our ProductsRaffleBlueAiTeach ToolsLaiewAI affiliate listFirstoCoast Fire CalculatorAsphalt CalculatorDog Names World

This website may contain affiliate links

© 2025 BskyInfo. All rights reserved.