Skip to main content

Simple bluesky client

Project description

🐦 ssky - Simple Bluesky Client

A lightweight, command-line Bluesky client that makes it easy to interact with the Bluesky social network from your terminal.

✨ Features

  • 🔑 Simple authentication and session management
  • 📝 Post, reply, quote, and repost content
  • 🔍 Search posts and users
  • 👥 Follow/unfollow users
  • 📊 View timelines and profiles
  • 🖼️ Support for images and link cards
  • 📦 Linux shell friendly output formats

🚀 Quick Start

Installation

pip install ssky

Login

ssky login your-handle.bsky.social:your-password

Or set credentials via environment variable:

export SSKY_USER=your-handle.bsky.social:your-password

📖 Basic Usage

Posting

# Simple post
ssky post "Hello, Bluesky!"

# Post with images
ssky post "Check out these photos!" --image photo1.jpg --image photo2.jpg

# Reply to a post
ssky post "Great post!" --reply-to at://did:plc:.../app.bsky.feed.post/...

# Quote a post
ssky post "Interesting!" --quote at://did:plc:.../app.bsky.feed.post/...

Reading

# View your timeline
ssky get

# View someone's profile
ssky profile user.bsky.social

# Search posts
ssky search "keyword"

# Search users
ssky user "username"

Social Actions

# Follow a user
ssky follow user.bsky.social

# Repost a post
ssky repost at://did:plc:.../app.bsky.feed.post/...

# Delete a post
ssky delete at://did:plc:.../app.bsky.feed.post/...

🔧 Advanced Usage

Output Formats

# Get only post IDs
ssky get --id

# Get only text content
ssky get --text

# Get full JSON output
ssky get --json

# Save posts to files
ssky get --output ./posts

Useful Examples

# Reply to your last post
ssky post "Update!" --reply-to $(ssky get myself --limit 1 --id)

# Search your own posts
ssky search "keyword" --author myself

# Save your timeline to files
ssky get --output ./timeline

🧪 Testing

To run the tests in the tests/ directory:

  1. Copy the environment configuration file and set your Bluesky credentials:

    cp tests/_env tests/.env
    

    Edit tests/.env and add your Bluesky handle and password.

  2. Run tests using pytest:

    # Run all tests
    pytest tests/ -v
    
    # Run individual feature tests
    pytest tests/test_login.py -v              # Login functionality
    pytest tests/test_post_and_delete.py -v    # Post and delete operations
    pytest tests/test_search.py -v             # Search functionality
    pytest tests/test_follow_unfollow.py -v    # Follow/unfollow operations
    pytest tests/test_get.py -v                # Timeline retrieval
    pytest tests/test_profile.py -v            # Profile display
    pytest tests/test_repost_unrepost.py -v    # Repost/unrepost operations
    pytest tests/test_user.py -v               # User functionality
    

📝 Requirements

  • Python 3.12 or later

📜 License

MIT License

👥 Author

SimpleSkyClient Project

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ssky-0.1.2.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ssky-0.1.2-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file ssky-0.1.2.tar.gz.

File metadata

  • Download URL: ssky-0.1.2.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.9 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for ssky-0.1.2.tar.gz
Algorithm Hash digest
SHA256 750943b835003931fabe031a1370b517ec4037ba7d0eeb363edfd08e6ef17590
MD5 dc27725e0f3cc626a77e1ca1ebd2b976
BLAKE2b-256 e002e28883cf14db83899ee0ec0a47d551076143cebeb46beb5f6da7e3bea747

See more details on using hashes here.

File details

Details for the file ssky-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: ssky-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 18.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.9 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for ssky-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fbea3d2fc1e62496663287d18540f6e3ed911046fde5f72347b735e1ea2eb696
MD5 807b50f68f0f7a3eac0639f67815e701
BLAKE2b-256 a336d5a017b24fb61a4efd3f35299b6fc51ac27973b562a42bcdb005d640a452

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page