$ show normen/whatscli
whatscli is a terminal-based (TUI) WhatsApp client written in Go. It connects via the WhatsApp Web API using the whatsmeow library, providing message sending/receiving, media attachment handling, group management, and desktop notifications. The architecture is a monolith with two goroutines: a tview-based UI main loop and a session manager that handles the WhatsApp connection and command dispatch through channels. The UI is highly configurable via an INI config file, supporting custom keybindings and color schemes. The codebase demonstrates good concurrency patterns with channel-based IPC and includes unit tests for the message storage layer. While the UI logic in main.go is tightly coupled to tview, the message database and event handling show clean separation and moderate reusability.
The LLM identified 1 files worth highlighting for reuse:
Provides a thread-safe in-memory message, chat, and contact store with read/write locks. Supports idempotent message insertion, metadata upgrades, unread tracking, chat read marking, message revocation, sorted retrieval, and contact/chat name resolution. Can be extracted and adapted for any chat-like application requiring a simple concurrent data store.