Skip to content

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 --draft flag, 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.