Files
bsky-firehose/README.md
2025-07-13 22:07:45 -07:00

2.4 KiB

Grand Aim

A semantically colored feed of bluesky skeets, for your perspective, someone else's or another group's.

Intermediate goals so far

  • Visualize bluesky data.
  • Read from jetstream
  • Extract interesting fields
  • Filter by commit/post type. Learning bsky data model just enough, filter also by keywords. Count limit.
  • Get color selection ergonomic for further development, 24-bit? 32-bit? color, the alpha paramter of colorama is quite useful
    • colorspace, hsla / hsl
    • Vary colors, find balance so nothing draws excessive attention, but noticeable, though gradual, color evolution occurs And, for ergonomic use to communicate meaning. Color for cluster / direction. Brightness, inverse to length, for ease of reading, uniformity of gestalt. Saturation for content searching versus scaffolding metadata. Errors in grey too.
  • Port to Rust for better performance and native compilation
  • Get semantic clustering working -- static color. Faiss? enough? Word2Vec? Queries?
  • Get sematic selection & filtering working, based on keywords, chosen posts
  • Get db/profiles/queries/modes set up -- so every taste selection input can inform any future use
  • Get a streaming web view working -- possibly even fully in-browser

Run it

# Build and run
cargo run

# With options
cargo run -- --count 10 --filters "+love,-hate" --cfilters "+create"

# Install and run
cargo install --path .
bsky-firehose-term --help

Python version

uv run --with websockets,colorama,munch,fire python3 bluesky-simple-print.py

Command-line options

Both versions support the same filtering options:

  • --skips: Skip certain types (comma-separated)
  • --only: Only show certain types (comma-separated)
  • --cfilters: Commit type filters (+include,-skip format)
  • --filters: Text filters (+include,-skip format)
  • --count: Stop after N posts

Examples:

# Show only posts containing "rust" or "programming"
cargo run -- --filters "+rust,+programming"

# Skip posts containing "spam"
cargo run -- --filters "-spam"

# Show only commit types containing "create"
cargo run -- --cfilters "+create"

# Show only 5 posts
cargo run -- --count 5

What it looks like

firehose screenshot firehose asciinema