bluesky viewer in the terminal
1# ROADMAP - "SkyCLI" 2 3## TUI view with bubbletea 4 5- Implement interactive feed-browser (pager) in terminal (scrolling list of posts, expand post details). 6- Command `tui` launches full-screen UI; allow selection of feed, filtering, unread collapse. 7- Done?: TUI runs, shows feed, allows basic navigation (up/down). 8 9## Save & Archive System 10 11- Unified Save Interface 12 - Introduce `save` domain layer handling all save operations (`SaveLink`, `SavePost`, `SaveMedia`). 13 - Add a CLI command family 14- Save Links 15 - Fetch OpenGraph metadata (title, description, image, favicon). 16 - Store link metadata in JSON (`links.json`) and cache preview thumbnails. 17 - Allow tagging (`--tags`) and searching by tag in TUI. 18- Save Posts (Account) 19 - Integrate with Bluesky API (`app.bsky.graph.like` or custom record type) to save posts to the user’s account. 20 - Mirror saved post metadata locally for offline viewing. 21 - Provide sync command `skycli sync saved`. 22- Save Posts (Local Markdown) 23 - Export selected posts as Markdown files to: 24 25 ```sh 26 ~/Library/Application Support/SkyCLI/saved/posts/ 27 ~/.local/share/skycli/saved/posts/ 28 ``` 29 30 - Markdown includes: 31 - Author handle and timestamp 32 - Post text, mentions, and embedded links 33 - YAML frontmatter (tags, source URL, Bluesky URI) 34- Download Images or Video 35 - Parse attached media from post records and download via HTTP with correct filenames. 36 - Save to `/media/images/` and `/media/videos/` subdirectories. 37 - Maintain reference paths in Markdown frontmatter. 38 39### Done? 40 41- `skycli save` commands handle links, posts, and media 42- Local Markdown and media files stored in per-user app data directory 43- Optional remote sync for account-level saved posts 44- "Saved Items" TUI panel displays and filters all saved entries 45- Repository and service layers fully abstract storage and network APIs 46 47## Feed definition management 48 49CLI commands for managing feeds on SkyFeed server (see `/server/ROADMAP.md`): 50 51- `skycli feed create` - Create new feed definition on server 52- `skycli feed list` - List user's feeds 53- `skycli feed edit` - Update feed definition 54- `skycli feed delete` - Delete feed 55- `skycli feed test` - Test feed algorithm locally with sample data 56- `skycli feed export/import` - Share feed definitions as JSON 57 58Done?: CLI can create, list, edit, delete, and test feed definitions via server API. 59 60## Collapsing unread logic & filter/search support 61 62- In TUI, support collapsed unread by author logic (as in extension). 63- Support advanced search: `search posts` with filters (author, tag, lang, domain). 64- Done?: TUI or CLI supports search returning results; collapse unread groups. 65 66## Feed publishing to Bluesky 67 68CLI commands for publishing feeds to AT Protocol (requires SkyFeed server): 69 70- `skycli feed publish <feedID>` - Publish feed to user's Bluesky account 71- `skycli feed unpublish <feedID>` - Remove published feed 72- `skycli feed share <feedID>` - Generate shareable at:// URI 73 74Publishing process: 75 761. Feed definition sent to SkyFeed server 772. Server creates feed generator record in user's repository 783. Feed becomes discoverable via at:// URI 794. Users can subscribe in any Bluesky client 80 81Done?: CLI publishes feeds via server, outputs at:// URI for sharing. 82 83## Server Management 84 85CLI commands for managing the SkyFeed server (see `/server/ROADMAP.md` for server architecture): 86 87- `skycli server init` - Initialize new feed generator service 88- `skycli server start` - Start local development server 89- `skycli server stop` - Stop running server 90- `skycli server deploy` - Deploy to configured platform (Fly.io, Docker, etc.) 91- `skycli server status` - Check service health and stats 92- `skycli server logs` - View server logs 93- `skycli server config` - Manage server configuration 94 95Done?: CLI can initialize, start, deploy, and manage SkyFeed server instances. 96 97## Packaging & distribution 98 99- Build binaries for major OSes (Windows, macOS, Linux). 100- Write unit tests (feed logic, collapse logic) and TUI smoke tests. 101- Release via GitHub, include versioning. 102 Done?: CI pipeline passes, binaries available.