ap
is a command-line client for the ActivityPub protocol.
I initially developed this program to illustrate how to write client code for the ActivityPub API as part of my book for O'Reilly Media, "ActivityPub: Programming for the Social Web".
I haven't pushed it to PyPI yet, so you'll have to install it from source:
git clone https://github.com/evanp/ap.git
cd ap
python setup.py install
ap
uses the subcommand pattern common with other large command-line programs like git
and docker
. The full list of subcommands is available by typing ap --help
. Familiarity with the ActivityPub protocol is helpful for understanding these commands!
Logs in as a user to an ActivityPub API server using OAuth 2.0. The <id>
argument is a Webfinger ID or the URL of the user's profile.
This stores the OAuth 2.0 token(s) in a file in the user's home directory, $HOME/.ap/token.json
, so that subsequent commands can use them.
Logs out of the current session by deleting the token file.
Shows the currently logged-in user.
Gets the object with the given ID and prints it to stdout.
Shows these collections for the currently logged-in user.
Follows the user with the given ID.
Accepts or rejects a follow request from the user with the given ID.
Unfollows the user with the given ID.
Creates a Note object with the given text.
Uploads the given file and prints the resulting URL.
- @evanp (Evan Prodromou; @evan@cosocial.ca on Mastodon)
I'm very interested in contributions to this project. Some quick notes:
- Please open an issue before starting work on a new feature. This will help us coordinate and make sure that the feature is a good fit for the project.
- Ideally, commands should map closely to the ActivityPub protocol. If you're not sure how to do that, please open an issue and we can discuss it.
- Please make sure that your code passes the existing tests, and add new tests as appropriate.
- Please make your code format correctly with Python Black.
Small note: If editing the Readme, please conform to the standard-readme specification.