Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Complete Bluesky CLI: post, reply, like, repost, follow, block, mute, search, threads, images. Everything you need to engage on Bluesky from the terminal.
Complete Bluesky CLI: post, reply, like, repost, follow, block, mute, search, threads, images. Everything you need to engage on Bluesky from the terminal.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Full-featured CLI for Bluesky/AT Protocol.
First: Check if logged in bsky whoami If shows handle โ ready to use commands below If "Not logged in" โ guide user through Setup section Common tasks: "Post to Bluesky" โ bsky post "text" "Check my timeline" โ bsky timeline "Like this post" โ bsky like <url> "Follow someone" โ bsky follow @handle
If user isn't logged in (bsky whoami shows "Not logged in"), guide them through setup:
Tell the user: Go to bsky.app โ click your avatar โ Settings โ Privacy and Security โ App Passwords โ Add App Password. Name it "OpenClaw" and copy the password (like xxxx-xxxx-xxxx-xxxx). You'll only see it once!
Once they have the app password, run: bsky login --handle THEIR_HANDLE.bsky.social --password THEIR_APP_PASSWORD Example: bsky login --handle alice.bsky.social --password abcd-1234-efgh-5678 Security: Password is used once to get a session token, then immediately discarded. Never stored on disk. Session auto-refreshes.
ActionCommandView timelinebsky timeline or bsky tlPostbsky post "text"Post with imagebsky post "text" --image photo.jpg --alt "description"Replybsky reply <url> "text"Quote-postbsky quote <url> "text"View threadbsky thread <url>Create threadbsky create-thread "Post 1" "Post 2" "Post 3" or bsky ctLikebsky like <url>Repostbsky repost <url>Followbsky follow @handleBlockbsky block @handleMutebsky mute @handleSearchbsky search "query"Notificationsbsky notifications or bsky nDelete postbsky delete <url>
bsky timeline # 10 posts bsky timeline -n 20 # 20 posts bsky timeline --json # JSON output
bsky post "Hello world!" # Basic post bsky post "Check this!" --image pic.jpg --alt "A photo" # With image bsky post "Test" --dry-run # Preview only
bsky reply <post-url> "Your reply" bsky quote <post-url> "Your take on this"
bsky thread <post-url> # View conversation bsky thread <url> --depth 10 # More replies bsky thread <url> --json # JSON output
bsky create-thread "First post" "Second post" "Third post" # Create a thread bsky ct "Post 1" "Post 2" "Post 3" # Short alias bsky create-thread "Hello!" "More thoughts" --dry-run # Preview only bsky create-thread "Look!" "Nice" --image pic.jpg --alt "A photo" # Image on first post
bsky like <post-url> # โค๏ธ Like bsky unlike <post-url> # Remove like bsky repost <post-url> # ๐ Repost (aliases: boost, rt) bsky unrepost <post-url> # Remove repost
bsky follow @someone # Follow user bsky unfollow @someone # Unfollow user bsky profile @someone # View profile bsky profile --json # JSON output
bsky block @someone # ๐ซ Block user bsky unblock @someone # Unblock bsky mute @someone # ๐ Mute user bsky unmute @someone # Unmute
bsky search "query" # Search posts bsky search "topic" -n 20 # More results bsky notifications # Recent notifications bsky n -n 30 # More notifications
bsky delete <post-url> # Delete your post bsky delete <post-id> # By ID
Add --json to read commands for structured output: bsky timeline --json bsky search "topic" --json bsky notifications --json bsky profile @someone --json bsky thread <url> --json
ErrorFix"Session expired"Run bsky login again"Not logged in"Run bsky login --handle ... --password ..."Post is X chars (max 300)"Shorten text"Image too large"Use image under 1MB
All <url> parameters accept either https://bsky.app/... URLs or at:// URIs Handles auto-append .bsky.social if no domain specified Image posts require --alt for accessibility (Bluesky requirement) Session tokens auto-refresh; password never stored
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.