Skip to main content

@wendy/atproto

v2026.04.12.1

AT Protocol / Bluesky extension for swamp. Manage posts, likes, reposts, follows, blocks, mutes, notifications, and more via the Bluesky XRPC API. Supports image, video, and link card embeds.

Labels

blueskyatprotosocialbskyat protocol

Contents

Quality score

How well-documented and verifiable this extension is.

Not yet scored.

A score will be generated the next time this extension is published. The owner can also trigger scoring manually.

Install

$ swamp extension pull @wendy/atproto

@wendy/atprotov2026.04.12.1atproto.ts

Global Arguments

ArgumentTypeDescription
handlestringAT Protocol handle, e.g. user.bsky.social
appPasswordstringApp password generated in Bluesky Settings → Privacy & Security → App Passwords
pdsUrlstringPDS base URL. Defaults to https://bsky.social; override for custom PDS hosts.
auditCount all records per collection without deleting anything. Run this before purge to see what will be removed.
purgeDelete activity records. Deletes all collections by default; pass `collections` to target specific ones. Rate-limit aware with automatic backoff on 429 responses.
ArgumentTypeDescription
_sleep?any
createPostCreate a text post. Supports replies, quote-posts, @mention and URL facets, and language tags. For posts with images, video, or link cards use createPostWithMedia.
ArgumentTypeDescription
textstringPost text (max 300 characters)
quotePost?stringAT URI of the post to quote-embed
createPostWithMediaCreate a post with attached media. Reads files from disk, uploads blobs, and creates the post record in one step. Supports up to 4 images, a single video, or an external link card. Combine with replyTo or quotePost to thread or quote.
ArgumentTypeDescription
textstringPost text (max 300 characters)
images?arrayUp to 4 images to attach (JPEG, PNG, GIF, WEBP). Mutually exclusive with video and link.
replyTo?stringAT URI of the post to reply to, e.g. at://did:.../app.bsky.feed.post/rkey
quotePost?stringAT URI of the post to quote-embed
languages?arrayBCP-47 language codes, e.g. ["en"]
_readFile?any
deletePostDelete a specific post by its AT URI.
getPostsFetch one or more posts by AT URI (max 25 per call).
getProfileFetch a user profile. Defaults to the authenticated account if no actor is specified.
updateProfileUpdate your profile's display name and/or description. Fields not provided are left unchanged.
getTimelineFetch the authenticated account's home timeline.
followFollow a user by handle or DID.
ArgumentTypeDescription
targetstringHandle or DID of the account to follow
unfollowUnfollow a user by handle or DID.
ArgumentTypeDescription
targetstringHandle or DID of the account to unfollow
getFollowersFetch accounts that follow a user. Defaults to the authenticated account.
getFollowingFetch accounts that a user follows. Defaults to the authenticated account.
likeLike a post by its AT URI.
ArgumentTypeDescription
uristringAT URI of the post to like
unlikeRemove a like from a post by its AT URI.
ArgumentTypeDescription
uristringAT URI of the post to unlike
repostRepost a post by its AT URI.
ArgumentTypeDescription
uristringAT URI of the post to repost
unrepostRemove a repost by its original post AT URI.
ArgumentTypeDescription
uristringAT URI of the original post to un-repost
searchPostsSearch posts by keyword. Optionally filter by author.
ArgumentTypeDescription
querystringSearch query text
cursor?stringPagination cursor from a previous search
searchActorsSearch for users by handle or display name.
ArgumentTypeDescription
querystringSearch query (handle fragment or display name)
cursor?stringPagination cursor from a previous search
getNotificationsFetch notifications (likes, follows, replies, reposts, mentions). Optionally marks them as seen.
getUnreadCountFetch the number of unread notifications.
putNotificationPreferencesUpdate notification preferences. Set priority to true to receive only high-signal notifications (replies and mentions from accounts you follow).
muteMute a user by handle or DID. Mutes are private and not visible to the muted account.
ArgumentTypeDescription
targetstringHandle or DID of the account to mute
unmuteUnmute a user by handle or DID.
ArgumentTypeDescription
targetstringHandle or DID of the account to unmute
blockBlock a user by handle or DID. Blocks are public records.
ArgumentTypeDescription
targetstringHandle or DID of the account to block
unblockRemove a block on a user by handle or DID.
ArgumentTypeDescription
targetstringHandle or DID of the account to unblock
getLikesFetch the list of actors who liked a post.
ArgumentTypeDescription
uristringAT URI of the post
cursor?stringPagination cursor from a previous getLikes call
getRepostsFetch the list of actors who reposted a post.
ArgumentTypeDescription
uristringAT URI of the post
createListCreate a new list. Purpose: curatelist (recommendation/subscription), modlist (mute/block), or referencelist.
ArgumentTypeDescription
namestringList name (max 64 characters)
deleteListDelete a list by its AT URI.
getListFetch a list and its members by AT URI.
ArgumentTypeDescription
uristringAT URI of the list
getListsFetch lists belonging to an actor. Defaults to the authenticated account.
addListItemAdd a user to a list.
ArgumentTypeDescription
liststringAT URI of the list
removeListItemRemove a user from a list.
ArgumentTypeDescription
liststringAT URI of the list

Resources

sessionCache(2h)— Cached authentication session. Reused between method invocations to avoid redundant createSession API calls and stay under rate limits.
auditResult(infinite)— Record counts per collection (non-destructive snapshot)
purgeResult(infinite)— Summary of a completed purge operation
post(infinite)— A post created via createPost or createPostWithMedia
profile(7d)— A fetched AT Protocol user profile
timeline(1h)— Home timeline snapshot
followRecord(infinite)— A follow relationship created by the follow method
likeRecord(infinite)— A like created by the like method
repostRecord(infinite)— A repost created by the repost method
blockRecord(infinite)— A block created by the block method
postSearchResult(1h)— Post search results
actorSearchResult(1h)— Actor (user) search results
notifications(1h)— Fetched notifications
notificationUnreadCount(15m)— Number of unread notifications
likesResult(1h)— Actors who liked a post
repostsResult(1h)— Actors who reposted a post
profileUpdate(infinite)— Result of a profile update operation
postsResult(1h)— Batch post lookup results
followersResult(1h)— Accounts following a user
followingResult(1h)— Accounts a user follows
listRecord(infinite)— A list created by the createList method
listItemRecord(infinite)— A list membership record created by addListItem
listResult(1h)— A fetched list with its members
listsResult(1h)— Lists belonging to an actor