2025-02-22 16:50:17 -08:00
# Grand Aim
A semantically colored feed of bluesky skeets, for your perspective, someone else's or another group's.
## Intermediate goals so far
2025-02-22 17:01:07 -08:00
- [x] Visualize bluesky data.
- [x] Read from jetstream
- [x] Extract interesting fields
2025-02-23 15:53:52 -08:00
- [x] Filter by commit/post type. Learning bsky data model just enough, filter also by keywords. Count limit.
2025-02-22 17:01:07 -08:00
- [x] Get color selection ergonomic for further development, 24-bit? 32-bit? color, the alpha paramter of colorama is quite useful
- [x] colorspace, hsla / hsl
- [x] 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.
2025-07-13 22:07:45 -07:00
- [x] Port to Rust for better performance and native compilation
2025-02-22 17:01:07 -08:00
- [ ] Get semantic clustering working -- static color. Faiss? enough? Word2Vec? Queries?
2025-02-22 16:50:17 -08:00
- [ ] 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
2025-02-22 17:01:07 -08:00
- fallen? [twitterfall ](https://twitterfall.com ) inspiration. [hatnote's L2W ](https://l2w.hatnote.com )
2025-02-22 16:50:17 -08:00
# Run it
2025-07-13 22:07:45 -07:00
## Rust version (recommended)
```bash
# 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
2025-02-22 16:50:17 -08:00
```
2025-07-13 22:07:45 -07:00
## Python version
```bash
2025-02-22 16:50:17 -08:00
uv run --with websockets,colorama,munch,fire python3 bluesky-simple-print.py
```
2025-02-22 17:02:44 -08:00
2025-07-13 22:07:45 -07:00
## 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:
```bash
# 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
```
2025-02-22 17:02:44 -08:00
# What it looks like

2025-02-23 15:47:03 -08:00
