Skip to content
Harvey Randall edited this page Mar 28, 2026 · 3 revisions

FAQ

How do I use an app password instead of my main password?

Go to bsky.app/settings/app-passwords and create an app password. Use it with bsky login instead of your main password. App passwords can be revoked individually.

Where are credentials stored?

In ~/.config/bsky/. Each profile has its own file. Credentials never leave your machine.

Can I use bsky-cli in CI/CD?

Yes. Set BSKY_HANDLE and BSKY_PASSWORD as environment variables. No interactive login needed.

BSKY_HANDLE=bot.bsky.social BSKY_PASSWORD=my-app-password bsky post "Build passed!"

How do I pipe content into a post?

echo "Hello world" | bsky post --stdin
cat message.txt | bsky post --stdin

How do I get JSON output?

Add --json to any command:

bsky tl --json | jq '.[0]'

How do I stream with a filter?

bsky stream --pattern "keyword"
bsky stream --pattern "rust|go" --pattern-flags "gi"

How do I post a thread?

Use create-thread with long text. It splits at sentence boundaries and chains posts as replies:

bsky create-thread "Your long text that exceeds 300 characters..."
bsky create-thread --stdin < essay.txt

Add --thread-label for 🧵 1/N labels, --no-preview to skip the interactive preview, or --draft to save without posting.

What happens if posting fails mid-thread?

The remaining posts are saved as a draft with the reply chain intact. Use bsky drafts send <id> to resume from where it left off.

How do I manage drafts?

Drafts are created automatically on network failure or with --draft:

bsky drafts list          # list all drafts
bsky drafts show <id>     # view a draft
bsky drafts send <id>     # publish a draft
bsky drafts delete <id>   # remove a draft

Network drafts are offered for automatic sync next time you're online.

How do I schedule a post?

Use schedule post to schedule a post for future publication. You'll be prompted to pick a date and time:

bsky schedule post "Hello from the future!"
bsky schedule list    # see all scheduled posts

How do I set up automatic posting?

Two options:

Background scheduler (recommended) — runs silently via your OS task scheduler:

bsky schedule enable                  # every 1 minute
bsky schedule enable --interval 5     # every 5 minutes
bsky schedule status                  # check state
bsky schedule disable                 # pause without removing

Foreground watcher — stays open in your terminal:

bsky schedule watch                   # Ctrl+C to stop

How do I create a recurring post?

Use --repeat with an optional --times:

bsky schedule post "Daily standup" --repeat daily --times 5     # 5 times
bsky schedule post "Weekly digest" --repeat fortnightly          # forever

Available frequencies: hourly, daily, fortnightly, monthly, annually. Omit --times for infinite repeat (until you delete the post).

Something isn't working. How do I debug?

Add --verbose to see detailed output:

bsky tl --verbose

Include the full output when filing an issue.