ewan's projects — docs
← all docs

bsky-to-gem

July 21, 2026 1 min read
pythonblueskyexportjson

bsky-to-gem exports public Bluesky posts to clean JSON format. No authentication required.

What It Does

  • Export public posts from any Bluesky handle
  • Output timestamped JSON files with post text, images, and alt text
  • Use exports for AI training data, personal backups, writing style analysis, or platform migration
  • Feed exports into Gemini Custom Gems for personalized AI writing style models

Setup

git clone git@github.com:ewanc26/bsky-to-gem
cd bsky-to-gem
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Run:

python export_posts.py your_handle.bsky.social

Output

Creates timestamped JSON files: {handle}_posts_YYYYMMDD_HHMMSS.json

[
  {
    "created_at": "2025-01-15T10:30:45.123Z",
    "text": "Your post content here...",
    "images": [
      {
        "url": "https://cdn.bsky.app/img/feed_fullsize/plain/...",
        "alt_text": "Description of the image"
      }
    ]
  }
]

Licence

MIT.


← all docs