A Python CLI wrapper around the atproto package
Project description
atpcli
A Python CLI wrapper around the atproto package for interacting with Bluesky.
Documentation
Full documentation is available at docs/:
- Installation Guide
- Quick Start Guide - Learn how to get app passwords and use atpcli
- Login Command
- Timeline Command
- Feeds Commands - List and view custom Bluesky feeds
- Post Command
Or serve the docs locally:
make docs-serve
Quick Start
Installation
Install globally using uv:
uv tool install atpcli
This installs atpcli as a global tool, making it available from anywhere in your terminal.
Or for development:
git clone https://github.com/phalt/atpcli.git
cd atpcli
make install
Usage
Login
⚠️ Security Note: Use app passwords, not your main password! See the Quick Start Guide for instructions on creating an app password.
Login to an AT Protocol PDS (defaults to Bluesky):
atpcli login
Or login to a custom PDS:
atpcli login https://my-pds.com
You'll be prompted for your handle and password. The session will be saved to ~/.config/atpcli/config.json.
View Timeline
View your timeline:
atpcli bsky timeline
Options:
--limit N- Show N posts (default: 10)--p N- Show page N (default: 1)
Example:
atpcli bsky timeline --limit 20
atpcli bsky timeline --p 2
Post Messages
Create a post on Bluesky using the interactive editor:
atpcli bsky post
Or post directly with a message:
atpcli bsky post --message 'Hello, Bluesky!'
Note: When using special characters like !, use single quotes to avoid shell expansion issues, or use the interactive editor mode. See the Post Command documentation for more details.
Custom Feeds
List your saved Bluesky feeds:
atpcli bsky feeds
View posts from a specific feed:
atpcli bsky feed at://did:plc:xxx/app.bsky.feed.generator/discover
Options:
--limit N- Show N posts (default: 10)--p N- Show page N (default: 1)--format uri- Output only URIs (forfeedscommand)
Example:
# List feeds in URI format for scripting
atpcli bsky feeds --format uri
# View a feed with more posts
atpcli bsky feed at://did:plc:xxx/app.bsky.feed.generator/tech --limit 20
# Navigate to page 2
atpcli bsky feed at://did:plc:xxx/app.bsky.feed.generator/tech --p 2
See the Feeds Commands documentation for more details.
Development
Setup
make install
Run tests
make test
Build documentation
make docs-build
Serve documentation locally
make docs-serve
Format code
make format
Clean build artifacts
make clean
Requirements
- Python 3.10+
- uv package manager
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file atpcli-0.7.0.tar.gz.
File metadata
- Download URL: atpcli-0.7.0.tar.gz
- Upload date:
- Size: 125.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94971d46fab5fa335196b54fe50682690528287b4cb9e6514965346b25f05ca8
|
|
| MD5 |
f7ceb59d32d80735d9434fdf82d13a86
|
|
| BLAKE2b-256 |
9995b73df37df34f254c94997c59dfbba123a18a79c49da6c1f49092ca0af641
|
File details
Details for the file atpcli-0.7.0-py3-none-any.whl.
File metadata
- Download URL: atpcli-0.7.0-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f595e09dee1769106802328778437f3b3fe34f551554539c910d43eb935b3905
|
|
| MD5 |
b4899acb70ab768bd3229c6ded6110cf
|
|
| BLAKE2b-256 |
c457f24ddda06ce71fbd76bc5a430e80872512afe542e9d725a9c76ca33e2665
|