Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add jeffaf/bluesky-skill
Or install specific skill: npx add-skill https://github.com/jeffaf/bluesky-skill
# Description
Read, post, and interact with Bluesky (AT Protocol) via CLI. Use when user asks to check Bluesky, post to Bluesky, view their Bluesky timeline, search Bluesky, or check Bluesky notifications. Supports timeline, posting, profile lookup, search, and notifications.
# SKILL.md
name: bluesky
version: 1.2.0
description: Read, post, and interact with Bluesky (AT Protocol) via CLI. Use when user asks to check Bluesky, post to Bluesky, view their Bluesky timeline, search Bluesky, or check Bluesky notifications. Supports timeline, posting, profile lookup, search, and notifications.
homepage: https://bsky.app
metadata:
clawdbot:
emoji: "🦋"
requires:
bins: ["python3"]
Bluesky CLI
Interact with Bluesky/AT Protocol from the command line.
Setup
First-time setup requires an app password from Bluesky:
1. Go to bsky.app → Settings → Privacy and Security → App Passwords
2. Create a new app password
3. Run: bsky login --handle yourhandle.bsky.social --password xxxx-xxxx-xxxx-xxxx
Security: Password is NOT stored. The CLI exports a session token on login, which auto-refreshes. Your app password only exists in memory during login. Config stored at ~/.config/bsky/config.json with 0600 permissions.
Commands
Authentication
bsky login --handle user.bsky.social --password xxxx-xxxx-xxxx-xxxx
bsky logout # Clear session and log out
bsky whoami # Show current user info
Timeline
bsky timeline # Show home feed (default: 10 posts)
bsky timeline -n 20 # Show 20 posts
bsky tl # Alias
bsky home # Alias
Posting
bsky post "Hello world!" # Create a post (max 300 chars)
bsky p "Short post" # Alias
bsky post "Test" --dry-run # Preview without posting
# Smart features (automatic):
# - URLs become clickable links
# - @mentions resolve to profiles (e.g., @someone becomes clickable)
Delete
bsky delete <post_id> # Delete by post ID
bsky delete <url> # Delete by full bsky.app URL
bsky del <id> # Alias
bsky rm <id> # Alias
Profile
bsky profile # Your own profile
bsky profile @someone.bsky.social
bsky profile someone # Auto-appends .bsky.social
Search
bsky search "query" # Search posts (default: 10 results)
bsky search "topic" -n 20 # More results
bsky s "query" # Alias
Notifications
bsky notifications # Show recent notifications (default: 20)
bsky notif -n 30 # Alias with custom count
bsky n # Short alias
# Types: ❤️ like, 🔁 repost, 👤 follow, 💬 reply, 📢 mention, 💭 quote
Version
bsky --version
bsky -v
Output Format
Timeline posts:
@handle · Jan 25 14:30
Post text (truncated to 200 chars)
❤️ likes 🔁 reposts 💬 replies
🔗 https://bsky.app/profile/handle/post/id
Search results:
@handle: Post text (truncated to 150 chars)
❤️ likes 🔗 https://bsky.app/profile/handle/post/id
Error Handling
| Error | Meaning | Fix |
|---|---|---|
| "Session expired" | Token invalid | Run bsky login again |
| "Not logged in" | No saved session | Run bsky login |
| "Post is X chars (max 300)" | Too long | Shorten the text |
Installation
Use the wrapper script (auto-creates venv on first run):
{baseDir}/scripts/bsky [command]
Manual setup if needed:
cd {baseDir}/scripts
python3 -m venv venv
./venv/bin/pip install -r ../requirements.txt
./venv/bin/python bsky.py [command]
# README.md
🦋 Bluesky CLI
A Moltbot skill for interacting with Bluesky (AT Protocol) from the command line.
Version: 1.2.0
Features
- Timeline - View your home feed
- Post - Create posts with auto-linked URLs and @mentions
- Search - Search posts across Bluesky
- Notifications - Check likes, reposts, follows, mentions, quotes
- Profile - Look up user profiles
- Delete - Remove your posts
- Secure - Session-based auth (password never stored)
Setup
1. Get an App Password
- Go to bsky.app → Settings → Privacy and Security → App Passwords
- Create a new app password (looks like
xxxx-xxxx-xxxx-xxxx)
2. Login
bsky login --handle yourhandle.bsky.social --password xxxx-xxxx-xxxx-xxxx
Your password is used once to create a session token, then discarded. It's never stored on disk.
3. Verify
bsky whoami
Usage
Authentication
bsky login --handle user.bsky.social --password xxxx-xxxx-xxxx-xxxx
bsky logout # Clear session
bsky whoami # Show current user
Timeline
bsky timeline # Show 10 posts
bsky timeline -n 20 # Show 20 posts
bsky tl # Alias
bsky home # Alias
Posting
bsky post "Hello Bluesky!"
bsky p "Short post" # Alias
bsky post "Test" --dry-run # Preview without posting
Smart features (automatic):
- URLs become clickable links
- @mentions resolve to profiles and become clickable
Delete
bsky delete <post_id> # Delete by ID
bsky delete https://bsky.app/profile/.../post/... # Delete by URL
bsky del <id> # Alias
bsky rm <id> # Alias
Search
bsky search "query"
bsky search "topic" -n 20 # More results
bsky s "query" # Alias
Notifications
bsky notifications # Show 20 notifications
bsky notif -n 30 # Custom count
bsky n # Alias
Notification types: ❤️ like, 🔁 repost, 👤 follow, 💬 reply, 📢 mention, 💭 quote
Profile
bsky profile # Your profile
bsky profile @someone.bsky.social # Someone else's
bsky profile someone # Auto-appends .bsky.social
Version
bsky --version
bsky -v
Output Format
Timeline:
@handle · Jan 25 14:30
Post text here...
❤️ 42 🔁 5 💬 3
🔗 https://bsky.app/profile/handle/post/id
Search results:
@handle: Post text (truncated)...
❤️ 42 🔗 https://bsky.app/profile/handle/post/id
Requirements
- Python 3.8+
atprotopackage (auto-installed via venv)
Installation
Clone into your skills directory:
git clone <repo-url> ~/clawd/skills/bluesky
The wrapper script auto-creates a virtual environment on first run.
Configuration
- Location:
~/.config/bsky/config.json - Permissions: 600 (owner-only)
- Contents: Session token and handle (no passwords)
Security
- App password used only during
login, never stored - Session tokens (JWT) auto-refresh as needed
- Config file restricted to owner-only permissions
License
MIT
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.