bsky-cli
A command-line client for Bluesky, built with TypeScript.
Features
- Full timeline access — read your feed, stream the firehose with regex filtering, browse threads
- Rich posting — text, images, videos, replies, quotes, and deletions
- Threads — split long text into threads at sentence boundaries with interactive preview
- Drafts — automatic draft saving on network failure, manual
--draftflag, offline sync - Social graph — follow, block, mute, and view followers/following
- Bookmarks — save and manage posts locally
- Multi-account — named profiles for switching between accounts
- Shell completions — bash, zsh, and fish
- JSON output — pipe everything into
jq, scripts, or other tools - TOML config file — persistent defaults for any command, with CLI overrides
Quick install
npm install -g @harveyrandall/bsky-cli
brew install harveyrandall/bsky-cli/bsky-cli
Download a standalone binary from GitHub Releases.
curl -fsSL https://raw.githubusercontent.com/harveyrandall/bsky-cli/main/install.sh | sh
First steps
# Log in
bsky login alice.bsky.social
# Read your timeline
bsky tl
# Post something
bsky post "Hello from the command line!"
# Create a thread from long text
bsky create-thread "Your long text that exceeds 300 characters..."
# Stream the firehose, filtering for keywords
bsky stream --pattern "typescript|rust"
See the Getting Started guide for a full walkthrough.