Hello RoseWire community! As part of our ongoing mission to make decentralized file sharing and chat accessible everywhere, we’re thrilled to share progress on the RoseWire TUI client—our terminal-based interface for connecting to modern RoseWire servers. 😎🖥️
✨ What is the TUI Client?
The RoseWire TUI client is a lightweight, cross-platform terminal app built with Go, Bubble Tea, and Lip Gloss. It lets you:
- 🗝️ Manage identities and keys
- 🔐 Connect securely via SSH
- 💬 Chat in real time
- 🔍 Search for files and users
- 🌐 See who’s online across the federated network
All from a beautiful, responsive text-based UI—no mouse required!
🚀 Recent Milestones
1. Robust Identity & Config Management
- Profile Manager: Create, store, and select identities (nicknames + SSH keys) with ease.
- Persistent Server Config: Your last-used server is remembered for quick reconnections.
2. Seamless SSH Integration
- Secure Logins: Automatically test your credentials before entering the network.
- Automatic Reconnection: If disconnected, the client retries gracefully with exponential backoff and friendly status updates.
3. Dynamic Multi-Panel UI
Switch between major views using Tab/Shift+Tab:
- Chat Panel: Live group chat with system and user broadcasts.
- Search Panel: Find files or users instantly; results grouped and sorted for clarity.
- Network Panel: Visualize the network—see users, relays, and transfer stats at a glance.
All panels resize dynamically to fit your terminal window, with thoughtful keyboard navigation throughout. 🎹
4. Modern UX in the Terminal
- Bubble Tea & Lip Gloss: Crisp borders, color-coded messages, and styled buttons bring modern UI polish to the CLI.
- Spinners, Status Bars: Loading states and errors are clearly communicated.
- Focused/Blurred States: Inputs and selections are visually distinct, reducing mistakes.
5. Extensible Architecture
- Command-Based Messaging: Panels communicate via structured message types, making new features easy to add.
- Async Operations: Profile loading, key generation, and network requests are all non-blocking for snappy performance.
🛠️ Under the Hood
Here’s a peek at how it all fits together:
- Modular Codebase: Clean separation of config, profile, SSH, and TUI logic.
- Panels as Models: Each view (chat, search, network, etc.) is its own Bubble Tea model.
- Network Awareness: The client parses and displays federated user lists, relay counts, and live transfer activity.
💡 What’s Next?
- File Sharing & Transfers: Upload, download, and manage files directly from the TUI.
- Library & Transfer Panels: Coming soon for browsing your own shared files and monitoring transfer progress.
- Improved Theming: Customizable styles for accessibility and personal taste.
- Federation Insights: See not just who’s online, but which servers they’re connected to.
🏁 How to Try It
If you’re comfortable with Go and the command line, clone the repo and run the TUI client today!
(Instructions and binaries coming soon—watch this space.)
🙏 Thanks for Your Feedback!
This project is driven by community ideas and real-world needs.
If you have suggestions, want to test, or just want to say hi, join us on RoseWire or open an issue!
Happy Sharing,
— The RoseWire Team 🌹
Leave a Reply