Terminal client for keybase chat
- Dominant language
- Go
- Stars
- 9.2k
- Forks
- 1.3k
- Avg merge
- 12h 58m
- Merged PRs (30d)
- 56
Description
If you are on desktop, your options for using Keybase for interactive chat are either to run the Electron desktop app, or to run a sequence of `keybase chat send` and `keybase chat read` commands. The former isn't great from a security perspective (Electron apps are a notorious security problem due to the bundled browser and libraries), and _personally_ I don't like having more applications open than I need to. So, I have opted to (for now: #22140) use the command-line interface itself, paired with a [little demon](https://github.com/jonhoo/keybase-chat-notifier) that notifies me when I have new messages.
This works, but is _very_ cumbersome. If I get a message, I run `keybase chat read ` (which I think is also not tab-completeable?), get a list of messages, type `keybase chat send `, type my response in something is almost, but not quite, a `readline` environment, and then send. If they reply, I then repeat the process again and again.
It would be very handy if there was a (simple) TUI for having interactive chat sessions. Something straightforward like an ncurses interface for a _single_ conversation would help enormously. All it would need is to show new messages as they arrive, and allow me to type messages to respond. I _think_ this is all buildable through `keybase api`, but before I sit down and try to hammer something together myself, I figured I'd open an issue here in case this is something you've already thought about.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the existing `keybase chat send` and `keybase chat read` commands and the `keybase api` entry point. Done means a terminal interface for one conversation that displays new messages as they arrive and lets the user type and send replies.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100