Features
Trotsky provides comprehensive support for the Bluesky AT Protocol. Below is a list of currently implemented features and planned additions.
Implemented Features
| Name | Status | Description | Example |
|---|---|---|---|
| StepActor | ✅ | Get an actor by its DID or handle. | Trotsky.init(agent).actor('bsky.app') |
| StepActorBlock | ✅ | Block an actor. | Trotsky.init(agent).actor('bsky.app').block() |
| StepActorFollow | ✅ | Follow an actor. | Trotsky.init(agent).actor('bsky.app').follow() |
| StepActorFollowers | ✅ | Get an actor's followers. | Trotsky.init(agent).actor('bsky.app').followers().each() |
| StepActorFollowings | ✅ | Get an actor's followings. | Trotsky.init(agent).actor('bsky.app').followings().each() |
| StepActorLikes | ✅ | Get an actor's likes. | Trotsky.init(agent).actor('bsky.app').likes().each() |
| StepActorLists | ✅ | Get an actor's lists. | Trotsky.init(agent).actor('bsky.app').lists().each() |
| StepActorMute | ✅ | Mute an actor. | Trotsky.init(agent).actor('bsky.app').mute() |
| StepActorPosts | ✅ | Get an actor's posts. | Trotsky.init(agent).actor('bsky.app').posts().each() |
| StepActors | ✅ | Get a list of actors by their DIDs or handles. | Trotsky.init(agent).actors(['bsky.app', 'handle']).each() |
| StepActorStarterPacks | ✅ | Get an actor's starter packs. | Trotsky.init(agent).actor('bsky.app').starterPacks().each() |
| StepActorStreamPosts | 🧪 | Stream an actor's posts. | Trotsky.init(agent).actor('bsky.app').streamPosts().each() |
| StepActorUnblock | ✅ | Unblock an actor. | Trotsky.init(agent).actor('bsky.app').unblock() |
| StepActorUnfollow | ✅ | Unfollow an actor. | Trotsky.init(agent).actor('bsky.app').unfollow() |
| StepActorUnmute | ✅ | Unmute an actor. | Trotsky.init(agent).actor('bsky.app').unmute() |
| StepCreatePost | ✅ | Create a post. | Trotsky.init(agent).createPost({ text: "Hello!" }) |
| StepList | ✅ | Get a list by its URI. | Trotsky.init(agent).list("at://did:plc:example/app.bsky.graph.list/listid") |
| StepListMembers | ✅ | Get a list's members. | Trotsky.init(agent).list("at://...").members().each() |
| StepLists | ✅ | Get a list of lists by their URIs. | Trotsky.init(agent).lists([uri1, uri2]).each() |
| StepPost | ✅ | Get a post by its URI. | Trotsky.init(agent).post("at://did:plc:example/app.bsky.feed.post/postid") |
| StepPostAuthor | ✅ | Get a post's author. | Trotsky.init(agent).post("at://...").author() |
| StepPostLike | ✅ | Like a post. | Trotsky.init(agent).post("at://...").like() |
| StepPostReply | ✅ | Reply to a post. | Trotsky.init(agent).post("at://...").reply({ text: "Great!" }) |
| StepPostRepost | ✅ | Repost a post. | Trotsky.init(agent).post("at://...").repost() |
| StepPosts | ✅ | Get a list of posts by their URIs. | Trotsky.init(agent).posts([uri1, uri2]).each() |
| StepSearchPosts | ✅ | Search posts. | Trotsky.init(agent).searchPosts({ q: "TypeScript" }).each() |
| StepSearchStarterPacks | ✅ | Search starter packs. | Trotsky.init(agent).searchStarterPacks({ q: "tech" }).each() |
| StepStarterPack | ✅ | Get a starter pack by its URI. | Trotsky.init(agent).starterPack("at://...").run() |
| StepStarterPacks | ✅ | Get a list of starter packs by their URIs. | Trotsky.init(agent).starterPacks([uri1, uri2]).each() |
| StepStreamPosts | 🧪 | Stream posts from the firehose. | Trotsky.init(agent).streamPosts().each() |
| StepTimeline | ✅ | Get the authenticated user's timeline. | Trotsky.init(agent).timeline().take(20).each() |
| StepSearchActors | ✅ | Search for actors by name/handle. | Trotsky.init(agent).searchActors({ q: "typescript" }).each() |
| StepPostLikers | ✅ | Get actors who liked a post. | Trotsky.init(agent).post("at://...").likers().each() |
| StepPostReposters | ✅ | Get actors who reposted a post. | Trotsky.init(agent).post("at://...").reposters().each() |
| StepPostQuotes | ✅ | Get quote posts of a post. | Trotsky.init(agent).post("at://...").quotes().each() |
| StepPostThread | ✅ | Get a full post thread with replies. | Trotsky.init(agent).post("at://...").thread() |
| StepPostUnlike | ✅ | Unlike a post. | Trotsky.init(agent).post("at://...").unlike() |
| StepPostUnrepost | ✅ | Unrepost a post. | Trotsky.init(agent).post("at://...").unrepost() |
| StepDeletePost | ✅ | Delete a post. | Trotsky.init(agent).post("at://...").delete() |
| StepActorBlocks | ✅ | Get all actors blocked by the user. | Trotsky.init(agent).blocks().each() |
| StepActorMutes | ✅ | Get all actors muted by the user. | Trotsky.init(agent).mutes().each() |
| StepActorKnownFollowers | ✅ | Get known followers (mutual connections). | Trotsky.init(agent).actor('bsky.app').knownFollowers().each() |
| StepActorSuggestions | ✅ | Get suggested actors to follow. | Trotsky.init(agent).suggestions().each() |
| StepFeed | ✅ | Get posts from a custom feed. | Trotsky.init(agent).feed("at://...").each() |
| StepFeedGenerator | ✅ | Get a custom feed generator. | Trotsky.init(agent).feedGenerator("at://...") |
| StepSuggestedFeeds | ✅ | Get suggested custom feeds. | Trotsky.init(agent).suggestedFeeds().take(10) |
| StepListFeed | ✅ | Get posts from a list feed. | Trotsky.init(agent).list("at://...").feed().each() |
| StepListBlock | ✅ | Block a list. | Trotsky.init(agent).list("at://...").block() |
| StepListUnblock | ✅ | Unblock a list. | Trotsky.init(agent).list("at://...").unblock() |
| StepListMute | ✅ | Mute a list. | Trotsky.init(agent).list("at://...").mute() |
| StepListUnmute | ✅ | Unmute a list. | Trotsky.init(agent).list("at://...").unmute() |
| StepNotifications | ✅ | Get user notifications. | Trotsky.init(agent).notifications().take(20) |
| StepNotificationsUnreadCount | ✅ | Get unread notification count. | Trotsky.init(agent).notificationsUnreadCount() |
| StepNotificationsUpdateSeen | ✅ | Mark notifications as seen. | Trotsky.init(agent).notificationsUpdateSeen() |
| StepThreadMute | ✅ | Mute a thread. | Trotsky.init(agent).post("at://...").threadMute() |
| StepThreadUnmute | ✅ | Unmute a thread. | Trotsky.init(agent).post("at://...").threadUnmute() |
✅ Implemented • 🧪 Experimental