Getting Started
Prerequisites
- Node.js >= 22 (for npm/yarn/pnpm/bun install methods)
- A Bluesky account
Installation
npm install -g @harveyrandall/bsky-cli
yarn global add @harveyrandall/bsky-cli
pnpm add -g @harveyrandall/bsky-cli
bun add -g @harveyrandall/bsky-cli
brew install harveyrandall/tools/bsky-cli
curl -fsSL https://raw.githubusercontent.com/harveyrandall/bsky-cli/main/install.sh | sh
Download a standalone binary for your platform from
GitHub Releases,
extract it, and move bsky to a directory on your PATH.
Verify the installation:
bsky --version
Authentication
Log in with an app password
Tip
Use an app password instead of your main password. App passwords can be revoked individually and don't grant full account access.
bsky login alice.bsky.social
# Enter your app password at the prompt (input is hidden)
Or pass the password directly:
bsky login alice.bsky.social my-app-password
Your first commands
Read your timeline:
bsky tl
Post a message:
bsky post "Hello from bsky-cli!"
View your profile:
bsky profile
Search for posts:
bsky search "bluesky cli"
JSON output
Every command supports --json for structured output:
bsky tl --json | jq '.[0].post.record.text'
Multiple accounts
Use named profiles to switch between accounts:
bsky login alice.bsky.social -p personal
bsky login bob.bsky.social -p work
bsky tl -p personal
bsky tl -p work
List all profiles:
bsky -p ? tl
Next steps
- Browse the full command reference
- Create a config file with
bsky config initfor persistent defaults - Set up environment variables for CI/scripts
- Install shell completions for tab completion