skillfed

atproto

The AT Protocol SDK

atproto v0.0.69 901.0K downloads/30d#4,773 on PyPI656
Permissive license MIT Active released

What it is and what it does

atproto is a Python SDK for building clients and tools that interact with the AT Protocol, the decentralized social protocol behind Bluesky. It autogenerates type-hinted models and namespaced XRPC clients from lexicon schemas, so you get IDE autocomplete and static type safety when calling API methods. The SDK covers both high-level convenience methods (login, send_post, like) and low-level namespace-based access for full API coverage.

It ships with support for synchronous and asynchronous I/O, firehose data streaming, identity resolution (DID and Handle lookup), cryptographic utilities, and tools for working with AT URI schemes, CID, CAR files, and DID documents. The library depends on httpx for HTTP, pydantic for validation, cryptography for signing, websockets for real-time streams, and several other stable libraries. It is actively maintained but remains in alpha, meaning the public API may change before version 1.0.0.

Use it for:

  • Build a Bluesky bot or automation tool that posts, likes, follows, or manages direct messages programmatically
  • Consume real-time firehose data streams to index posts, build custom feeds, or monitor network activity
  • Integrate ATProto identity resolution (DID and Handle lookup) into a larger application
  • Generate code from custom lexicon schemas to build clients for non-Bluesky ATProto services
  • Implement server-side ATProto utilities like JWT handling or DID key management

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Python SDK for the AT Protocol that provides typed, autogenerated client bindings for Bluesky and other ATProto-compatible services, with both sync and async support.

Yes, if you need to build Bluesky or ATProto clients in Python. The SDK is actively maintained, has low install friction, carries no security vulnerabilities, and provides comprehensive type hints and async support. The main caveat is that it is still in alpha, so expect potential breaking changes before 1.0.0—pin your version if stability is critical.

Install

atproto on PyPI

pip

pip install atproto

uv

uv add atproto

poetry

poetry add atproto

Installing atproto

Before you install

Low install friction with a pure-Python wheel and eight stable runtime dependencies. Active maintenance with a recent release (51 days old) and 656 repository stars. Still in alpha (Development Status :: 3), so breaking changes between versions are explicitly not guaranteed until 1.0.0.

License in practice

MIT license permits commercial and private use with minimal restrictions. You must include a copy of the license and copyright notice in distributions.

Quickstart

pip install atproto

from atproto import Client

client = Client()
client.login('my-handle', 'my-password')
client.send_post(text='Hello World!')

Requires Python 3.9 or higher. Credentials (handle and password, or app-specific password) needed to authenticate with an ATProto server.

Verify before relying

  • Whether the SDK's autogenerated models remain stable across lexicon updates from atproto.com and bsky.app
  • Performance characteristics and rate-limit handling for high-volume firehose streaming
  • Compatibility guarantees for custom lexicon schemes beyond the bundled Bluesky lexicons

Package facts

License MIT (permissive)
Python support supports the current Python release (<3.15,>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 8 — click, cryptography, dnspython, httpx, libipld, pydantic, typing-extensions, websockets
Maintenance actively maintained — 51 days since the last release
Last repo commit
First released
Downloads 901,045/month — #4,773 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: atproto-0.0.69-py3-none-any.whl

Keywords: library, sdk, codegen, xrpc, xrpc-client, atprotocol, atproto, lexicon, parser, schema, bluesky, bluesky-api, at, uri, atp, nsid, did, cid

Development Status :: 3 - AlphaIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Topic :: Software DevelopmentTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: Pre-processors

Tags

bluesky api python clientat protocol sdkatproto python librarybluesky bot frameworkxrpc client pythonfirehose data streamingatproto async client
social-media-apiasync-supporttype-hinted

More Software Development packages