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.