Skip to content

Commit df49752

Browse files
chore: Add readme file for client and server
fix: When editor mode is switched to insert or command activate main_panel
1 parent 6c3ce60 commit df49752

15 files changed

Lines changed: 186 additions & 48 deletions

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,12 @@
1-
### Null Talk
1+
# Null Talk
2+
A secure, terminal-based encrypted chat system written in Rust.
3+
4+
## Why Null Talk?
5+
- End-to-end encrypted chat, CLI-native
6+
- Works across Linux, macOS, and Windows
7+
- Lightweight, no bloat, hacker-friendly interface
8+
- Ideal for devs who love tmux, ssh, and terminals
9+
10+
## Installation
11+
- [Client Guide](./client/README.md)
12+
- [Server Guide](./server/README.md)

assets/direct-message.png

190 KB
Loading

assets/group-chat.png

143 KB
Loading

assets/make-group.png

95.3 KB
Loading

assets/member-not-online.png

152 KB
Loading

assets/null-talk-config.png

68.8 KB
Loading

assets/null-talk-conn-err.png

99.9 KB
Loading

assets/null-talk-conn-success.png

126 KB
Loading

assets/show-user-id.png

177 KB
Loading

client/README.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
## Installation
2+
### From binaries (recommended)
3+
#### Linux (binary)
4+
```
5+
// Get the client binary from release
6+
wget https://github.com/ByteMaster2003/null-talk/releases/download/v1.0.0/null-talk-linux-client-v1.0.0
7+
8+
// Move it to bin directory
9+
mv null-talk-linux-client-v1.0.0 /usr/local/bin/null-talk
10+
11+
// Give permission to execute
12+
chmod +x /usr/local/bin/null-talk
13+
14+
// Run the command
15+
null-talk
16+
17+
```
18+
19+
#### MacOs (binary)
20+
```
21+
// Get the client binary from release
22+
wget https://github.com/ByteMaster2003/null-talk/releases/download/v1.0.0/null-talk-macos-client-v1.0.0
23+
24+
// Move it to bin directory
25+
mv null-talk-macos-client-v1.0.0 /usr/local/bin/null-talk
26+
27+
// Give permission to execute
28+
chmod +x /usr/local/bin/null-talk
29+
30+
// Run the command
31+
null-talk
32+
33+
```
34+
35+
## Configure server connection
36+
- create a configuration file `config.toml`
37+
```
38+
hostname = "localhost" // domain or IpAddress of server
39+
port = "8080"
40+
name = "ByteMaster"
41+
42+
public_key = "~/.ssh/id_rsa.pub"
43+
private_key = "~/.ssh/id_rsa"
44+
45+
```
46+
- Now run `null-talk config.toml`
47+
- If this file is not provided then `null-talk` will ask for it
48+
![Null Talk Demo](assets/null-talk-config.png)
49+
50+
- When connection to the server is successful then this screen will appear
51+
![Null Talk Connection Success](assets/null-talk-conn-success.png)
52+
53+
- If connection is failed then you will see this screen
54+
![Null Talk Connection Error](assets/null-talk-conn-err.png)
55+
56+
- Any Error of Information will be shown at the bottom of main panel
57+
58+
## Layout
59+
- This application has two panels `side_panel & main_panel`
60+
- By default `main_panel` is active
61+
- To switch panels we can use `⬅️ or h` and `➡️ or l`
62+
- Panel switching will only work in `NORMAL` mode
63+
64+
## Modes
65+
- This application has total 3 modes
66+
- `NORMAL, INSERT and COMMAND`
67+
- press `i` for insert mode
68+
- press `/` for cmd mode
69+
- press `esc` key for normal mode
70+
71+
## Available Commands in cmd Mode
72+
- `cmd: q` or `ctrl + c` exists the application
73+
- `cmd: my-id` will show your user_id.
74+
- user_id is a unique hash of `public_key` provided by user
75+
![Null Talk Show user_id](assets/show-user-id.png)
76+
- `cmd: mkgp path/to/make-group.toml` creates new group
77+
78+
```
79+
# required
80+
name = "Cypher"
81+
82+
# optional, if not provided server will create new id
83+
group_id = "53df4ec65397d404aa54ef7afda4005356a17388e49fb9e1859417af1ab45905"
84+
85+
# user_id of members, only these two member will be able to join the group
86+
members = [
87+
"8e9c9db840b1b66e77ba817b5bf341fbadd71c9388e4768410d590983742881a",
88+
"bc7e780e2b26dec01fa791a617ef51bb93755f404a8ae150279aeb9d55d5ccab",
89+
]
90+
91+
```
92+
![Null Talk Show user_id](assets/make-group.png)
93+
- `cmd: new path/to/session.toml` this will help us to `join group` or initiate `direct messages`
94+
```
95+
# [dm] direct_message
96+
# [group] group_chat
97+
# (required)
98+
connection_type = "group"
99+
100+
# it can be username or group name
101+
# (required)
102+
name = "Cypher"
103+
104+
# group_id or user_id
105+
id = "53df4ec65397d404aa54ef7afda4005356a17388e49fb9e1859417af1ab45905"
106+
107+
# encryption algorithm
108+
# Supported algorithms: AES256, ChaCha20 --> default(AES256)
109+
algo = "AES256"
110+
111+
```
112+
![Null Talk Show user_id](assets/direct-message.png)
113+
- If user is not online then we might get this error `Member is not online`
114+
115+
116+
## Sessions
117+
- to switch sessions press `esc` key for normal mode
118+
- press `⬅️ or h` to select side panel
119+
- and now use `⬇️ or j` and `⬆️ or k` to select some session
120+
- now press enter to activate that session
121+
122+
123+
# ⚠️ Current Limitations
124+
125+
### This is an early release, so a few features are not fully implemented yet:
126+
127+
- Encrypted private keys are not yet supported. Use unencrypted private keys when running the client.
128+
- Messages are not persistent — once the application is terminated, all messages are lost.
129+
- TLS integration and other security enhancements are planned for future versions.

0 commit comments

Comments
 (0)