atproto
The AT Protocol SDK
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or higher.
- Credentials (handle and password, or app-specific password) needed to authenticate with an ATProto server.
- Low install friction with a pure-Python wheel and eight stable runtime dependencies.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions. You must include a copy of the license and copyright notice in distributions.
last release 2026-06-24 (51 days) · last repo commit 2026-08-14 · 656 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 901,045 downloads/mo, #4,773 on PyPI
Alternatives
Verify before relying
pip install atproto
from atproto import Client
client = Client()
client.login('my-handle', 'my-password')
client.send_post(text='Hello World!')- 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
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 on it.
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
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.
Requires Python 3.9 or higher. Credentials (handle and password, or app-specific password) needed to authenticate with an ATProto server.
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!')
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 packagesclickcryptographydnspythonhttpxlibipldpydantictyping-extensionswebsockets |
| 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 |
| Classifiers | 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 |
Evidence: atproto-0.0.69-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “bluesky api python client”
- atprotoPython SDK for the AT Protocol that provides typed, autogenerated…
- event-modelDefines and validates the formal data model for bluesky's streaming…
- ophyd-asyncophyd-async provides asynchronous hardware abstraction for experiment…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also bluesky · libipld · injective-py · xai-sdk · meilisearch-python-sdk · seam · event-model · types-aiobotocore-firehose · pytgcalls · go2rtc-client