OverviewFilesCommitsIssuesDocsReleasesPeers

keet-tui commits / 91ce441

README: the repo had none
Written from the source: commands and options come from the CLI's own usage text, paths from the code that builds them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
91ce44140fb155f35712d6d5012bffd7378217e5
by plankatron <fleeky@gmail.com> · 2026-09-10T15:42:21.000Z

Changed files (1) +64 -0

README.md +64 -0
……@@ -0,0 +1,64 @@
1# keet-tui
2
3A terminal UI for Keet P2P chat. MVU architecture on `bare-tty`.
4
5It holds no P2P state of its own — [`keet-daemon`](../keet-daemon) does the chat, and this
6renders it and sends keystrokes back.
7
8## Requires a running keet-daemon
9
10```sh
11keet-tui # connects to 127.0.0.1:3117
12keet-tui --port 3200 # or --port=3200
13```
14
15Nothing works without the daemon: the splash screen stays up and the status bar reports the
16connection error.
17
18## Layout
19
20```
21┌─ rooms ──┬─ chat ─────────────────────┬─ members ─┐
22│ │ │ │
23│ │ │ │
24├──────────┴────────────────────────────┴───────────┤
25│ input │
26├───────────────────────────────────────────────────┤
27│ status │
28└───────────────────────────────────────────────────┘
29```
30
31`?` opens help, which lists the current keys — that view is the authority, not this file.
32Navigation is arrows or `j`/`k`, with `home`/`end`/`pageup`/`pagedown` in the scrollback.
33
34## Architecture
35
36Model–View–Update. One `model` object holds all state; events (`connected`, `key`, `resize`,
37`rooms-updated`, `messages-updated`, `members-updated`, `connection-error`) produce a new model,
38and the views are pure functions of it.
39
40```
41lib/program.js the MVU loop, on bare-tty
42lib/client.js the keet-daemon connection
43lib/screen.js framebuffer + diffing
44lib/style.js colours
45lib/views/ splash, main, help
46lib/components/ room-list, chat-view, member-list, input-box, status-bar
47```
48
49Zero runtime dependencies.
50
51## Scripts
52
53- `keet-bot.sh [roomId]` — poll for new messages and write an alert file, so an agent can read
54 the inbox and reply
55- `keet-watch.sh`
56
57## Note
58
59Argument parsing reads `Pear.config.args`, which is on its way out — the app will need a plain
60`argv` read when `pear run` goes.
61
62## License
63
64Not yet declared.