ChaTerminal 2.0.0__tar.gz → 2.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- chaterminal-2.0.2/ChaTerminal.egg-info/PKG-INFO +234 -0
- chaterminal-2.0.2/ChaTerminal.egg-info/SOURCES.txt +33 -0
- chaterminal-2.0.2/ChaTerminal.egg-info/entry_points.txt +2 -0
- chaterminal-2.0.2/ChaTerminal.egg-info/top_level.txt +1 -0
- chaterminal-2.0.2/PKG-INFO +234 -0
- chaterminal-2.0.2/README.md +198 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/core/events.py +14 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/core/state.py +2 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/main.py +3 -0
- chaterminal-2.0.2/chaterminal/services/auth_service.py +188 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/services/firebase_service.py +33 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/services/message_service.py +30 -6
- chaterminal-2.0.2/chaterminal/services/presence_service.py +170 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/services/websocket_service.py +15 -6
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/storage/database.py +15 -4
- chaterminal-2.0.2/chaterminal/ui/console.py +26 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/ui/terminal_ui.py +83 -42
- {chaterminal-2.0.0 → chaterminal-2.0.2}/setup.py +2 -2
- chaterminal-2.0.0/ChaTerminal/services/auth_service.py +0 -119
- chaterminal-2.0.0/ChaTerminal/services/presence_service.py +0 -82
- chaterminal-2.0.0/ChaTerminal/ui/console.py +0 -28
- chaterminal-2.0.0/ChaTerminal.egg-info/PKG-INFO +0 -158
- chaterminal-2.0.0/ChaTerminal.egg-info/SOURCES.txt +0 -33
- chaterminal-2.0.0/ChaTerminal.egg-info/entry_points.txt +0 -2
- chaterminal-2.0.0/ChaTerminal.egg-info/top_level.txt +0 -1
- chaterminal-2.0.0/PKG-INFO +0 -158
- chaterminal-2.0.0/README.md +0 -122
- {chaterminal-2.0.0 → chaterminal-2.0.2}/ChaTerminal.egg-info/dependency_links.txt +0 -0
- {chaterminal-2.0.0 → chaterminal-2.0.2}/ChaTerminal.egg-info/requires.txt +0 -0
- {chaterminal-2.0.0 → chaterminal-2.0.2}/LICENSE +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/__init__.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/__main__.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/core/__init__.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/core/logger.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/core/threads.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/crypto/__init__.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/crypto/encryption.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/services/__init__.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/storage/__init__.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/storage/session_store.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/ui/__init__.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/ui/panels.py +0 -0
- {chaterminal-2.0.0/ChaTerminal → chaterminal-2.0.2/chaterminal}/ui/splash.py +0 -0
- {chaterminal-2.0.0 → chaterminal-2.0.2}/setup.cfg +0 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ChaTerminal
|
|
3
|
+
Version: 2.0.2
|
|
4
|
+
Summary: A terminal-based encrypted chat system for MemerDevs
|
|
5
|
+
Home-page: https://github.com/Gofaone315/ChaTerminal
|
|
6
|
+
Author: Gofaone Tlalang
|
|
7
|
+
Author-email: gofaone315@memerdevs.com
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Topic :: Communications :: Chat
|
|
13
|
+
Classifier: Topic :: Security :: Cryptography
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: colorama
|
|
18
|
+
Requires-Dist: pyfiglet
|
|
19
|
+
Requires-Dist: pyreadline3; platform_system == "windows"
|
|
20
|
+
Requires-Dist: requests
|
|
21
|
+
Requires-Dist: cryptography
|
|
22
|
+
Requires-Dist: rich
|
|
23
|
+
Requires-Dist: prompt_toolkit
|
|
24
|
+
Requires-Dist: keyring
|
|
25
|
+
Requires-Dist: websocket-client
|
|
26
|
+
Dynamic: author
|
|
27
|
+
Dynamic: author-email
|
|
28
|
+
Dynamic: classifier
|
|
29
|
+
Dynamic: description
|
|
30
|
+
Dynamic: description-content-type
|
|
31
|
+
Dynamic: home-page
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
Dynamic: requires-dist
|
|
34
|
+
Dynamic: requires-python
|
|
35
|
+
Dynamic: summary
|
|
36
|
+
|
|
37
|
+
# ChaTerminal
|
|
38
|
+
|
|
39
|
+
**ChaTerminal** is the official terminal chat client for [MemerDevs](https://memerdevs.com). It lets you send end-to-end encrypted direct messages to other MemerDevs users from your terminal.
|
|
40
|
+
|
|
41
|
+

|
|
42
|
+

|
|
43
|
+

|
|
44
|
+

|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Features
|
|
49
|
+
|
|
50
|
+
- End-to-end encrypted direct messages
|
|
51
|
+
- Real-time messages when both users are online
|
|
52
|
+
- Offline message sync when a linked recipient comes back online
|
|
53
|
+
- Recent chat history on startup
|
|
54
|
+
- Online user list for users who choose to show terminal presence
|
|
55
|
+
- One active terminal session per MemerDevs account
|
|
56
|
+
- Web settings for privacy, linking, and session revocation
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Installation
|
|
61
|
+
|
|
62
|
+
ChaTerminal requires **Python 3.10 or later**.
|
|
63
|
+
|
|
64
|
+
Install it with pip:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
pip install ChaTerminal
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
To update an existing install:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install --upgrade ChaTerminal
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Quick Start
|
|
79
|
+
|
|
80
|
+
### 1. Run ChaTerminal
|
|
81
|
+
|
|
82
|
+
Open your terminal and run:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
ChaTerminal
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
If this is your first time using ChaTerminal, or if your session was revoked, the app will show an activation code.
|
|
89
|
+
|
|
90
|
+
Example:
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
ChaTerminal - Link Account
|
|
94
|
+
|
|
95
|
+
1. Open MemerDevs in your browser
|
|
96
|
+
2. Go to Settings -> ChaTerminal
|
|
97
|
+
3. Enter the activation code
|
|
98
|
+
|
|
99
|
+
Activation code: A1B2C3D4
|
|
100
|
+
|
|
101
|
+
Waiting for authorisation 04:59
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Activation codes expire after a few minutes. If the timer runs out, restart ChaTerminal to get a new code.
|
|
105
|
+
|
|
106
|
+
### 2. Link Your MemerDevs Account
|
|
107
|
+
|
|
108
|
+
1. Go to [memerdevs.com/settings](https://memerdevs.com/settings).
|
|
109
|
+
2. Scroll to the **ChaTerminal** section.
|
|
110
|
+
3. Enter the activation code shown in your terminal.
|
|
111
|
+
4. Click **Link Terminal**.
|
|
112
|
+
|
|
113
|
+
Keep ChaTerminal open while you do this. Once linking succeeds, the terminal will continue automatically.
|
|
114
|
+
|
|
115
|
+
### 3. Start Chatting
|
|
116
|
+
|
|
117
|
+
After linking, ChaTerminal shows your recent message history and opens a prompt:
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Type a command and press **Enter**.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Commands
|
|
128
|
+
|
|
129
|
+
| Command | What it does |
|
|
130
|
+
| --- | --- |
|
|
131
|
+
| `/dm <username> <message>` | Send a private message |
|
|
132
|
+
| `/list` | Show currently online ChaTerminal users |
|
|
133
|
+
| `/help` | Show available commands |
|
|
134
|
+
| `/exit` | Disconnect and close ChaTerminal |
|
|
135
|
+
|
|
136
|
+
Examples:
|
|
137
|
+
|
|
138
|
+
```text
|
|
139
|
+
> /dm gofaone315 Hey, are you online?
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
```text
|
|
143
|
+
> /list
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Usernames
|
|
149
|
+
|
|
150
|
+
Use the MemerDevs username slug from a profile URL.
|
|
151
|
+
|
|
152
|
+
For example, if the profile URL is:
|
|
153
|
+
|
|
154
|
+
```text
|
|
155
|
+
https://memerdevs.com/u/johndoe
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Send a message with:
|
|
159
|
+
|
|
160
|
+
```text
|
|
161
|
+
> /dm johndoe Hello from ChaTerminal
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Privacy And Sessions
|
|
167
|
+
|
|
168
|
+
You can manage ChaTerminal from [MemerDevs Settings](https://memerdevs.com/settings).
|
|
169
|
+
|
|
170
|
+
In the **ChaTerminal** section, you can:
|
|
171
|
+
|
|
172
|
+
- Link a terminal session
|
|
173
|
+
- Revoke your active terminal session
|
|
174
|
+
- Choose who can message you
|
|
175
|
+
- Show or hide your terminal online status
|
|
176
|
+
|
|
177
|
+
If you hide your online status, you will not appear in other users' `/list` results.
|
|
178
|
+
|
|
179
|
+
ChaTerminal allows one active terminal session per account. If you link or start ChaTerminal on another device, the previous terminal session will be signed out.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Message Delivery
|
|
184
|
+
|
|
185
|
+
Messages are encrypted before they leave your machine.
|
|
186
|
+
|
|
187
|
+
When both users are online, messages are delivered in real time. If the recipient has a linked ChaTerminal session but is offline, the message is delivered when they reconnect.
|
|
188
|
+
|
|
189
|
+
If a user has not linked ChaTerminal, or their terminal session was revoked, you may see a message saying that they do not have an active terminal session.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Troubleshooting
|
|
194
|
+
|
|
195
|
+
### The activation code expired
|
|
196
|
+
|
|
197
|
+
Restart ChaTerminal and enter the new code in MemerDevs Settings.
|
|
198
|
+
|
|
199
|
+
### The activation code is not accepted
|
|
200
|
+
|
|
201
|
+
Make sure you entered all 8 characters exactly as shown. If it still fails, restart ChaTerminal and use the new code.
|
|
202
|
+
|
|
203
|
+
### I was signed out
|
|
204
|
+
|
|
205
|
+
This can happen if:
|
|
206
|
+
|
|
207
|
+
- You revoked the session from MemerDevs Settings
|
|
208
|
+
- You linked ChaTerminal on another device
|
|
209
|
+
- Your MemerDevs session expired
|
|
210
|
+
|
|
211
|
+
Run `ChaTerminal` again and link your account if prompted.
|
|
212
|
+
|
|
213
|
+
### I cannot message someone
|
|
214
|
+
|
|
215
|
+
The other user may not have linked ChaTerminal, may have revoked their terminal session, or may only allow messages from followers.
|
|
216
|
+
|
|
217
|
+
### `/list` does not show someone
|
|
218
|
+
|
|
219
|
+
They may be offline, or they may have disabled terminal online status in MemerDevs Settings.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## License
|
|
224
|
+
|
|
225
|
+
This project is proprietary. See `LICENSE` for more info.
|
|
226
|
+
|
|
227
|
+
## Author
|
|
228
|
+
|
|
229
|
+
**Gofaone Tlalang**
|
|
230
|
+
GitHub: [@Gofaone315](https://github.com/Gofaone315)
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
**ChaTerminal** - real-time end-to-end encrypted chat from your terminal.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
setup.py
|
|
4
|
+
ChaTerminal.egg-info/PKG-INFO
|
|
5
|
+
ChaTerminal.egg-info/SOURCES.txt
|
|
6
|
+
ChaTerminal.egg-info/dependency_links.txt
|
|
7
|
+
ChaTerminal.egg-info/entry_points.txt
|
|
8
|
+
ChaTerminal.egg-info/requires.txt
|
|
9
|
+
ChaTerminal.egg-info/top_level.txt
|
|
10
|
+
chaterminal/__init__.py
|
|
11
|
+
chaterminal/__main__.py
|
|
12
|
+
chaterminal/main.py
|
|
13
|
+
chaterminal/core/__init__.py
|
|
14
|
+
chaterminal/core/events.py
|
|
15
|
+
chaterminal/core/logger.py
|
|
16
|
+
chaterminal/core/state.py
|
|
17
|
+
chaterminal/core/threads.py
|
|
18
|
+
chaterminal/crypto/__init__.py
|
|
19
|
+
chaterminal/crypto/encryption.py
|
|
20
|
+
chaterminal/services/__init__.py
|
|
21
|
+
chaterminal/services/auth_service.py
|
|
22
|
+
chaterminal/services/firebase_service.py
|
|
23
|
+
chaterminal/services/message_service.py
|
|
24
|
+
chaterminal/services/presence_service.py
|
|
25
|
+
chaterminal/services/websocket_service.py
|
|
26
|
+
chaterminal/storage/__init__.py
|
|
27
|
+
chaterminal/storage/database.py
|
|
28
|
+
chaterminal/storage/session_store.py
|
|
29
|
+
chaterminal/ui/__init__.py
|
|
30
|
+
chaterminal/ui/console.py
|
|
31
|
+
chaterminal/ui/panels.py
|
|
32
|
+
chaterminal/ui/splash.py
|
|
33
|
+
chaterminal/ui/terminal_ui.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
chaterminal
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ChaTerminal
|
|
3
|
+
Version: 2.0.2
|
|
4
|
+
Summary: A terminal-based encrypted chat system for MemerDevs
|
|
5
|
+
Home-page: https://github.com/Gofaone315/ChaTerminal
|
|
6
|
+
Author: Gofaone Tlalang
|
|
7
|
+
Author-email: gofaone315@memerdevs.com
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Topic :: Communications :: Chat
|
|
13
|
+
Classifier: Topic :: Security :: Cryptography
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: colorama
|
|
18
|
+
Requires-Dist: pyfiglet
|
|
19
|
+
Requires-Dist: pyreadline3; platform_system == "windows"
|
|
20
|
+
Requires-Dist: requests
|
|
21
|
+
Requires-Dist: cryptography
|
|
22
|
+
Requires-Dist: rich
|
|
23
|
+
Requires-Dist: prompt_toolkit
|
|
24
|
+
Requires-Dist: keyring
|
|
25
|
+
Requires-Dist: websocket-client
|
|
26
|
+
Dynamic: author
|
|
27
|
+
Dynamic: author-email
|
|
28
|
+
Dynamic: classifier
|
|
29
|
+
Dynamic: description
|
|
30
|
+
Dynamic: description-content-type
|
|
31
|
+
Dynamic: home-page
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
Dynamic: requires-dist
|
|
34
|
+
Dynamic: requires-python
|
|
35
|
+
Dynamic: summary
|
|
36
|
+
|
|
37
|
+
# ChaTerminal
|
|
38
|
+
|
|
39
|
+
**ChaTerminal** is the official terminal chat client for [MemerDevs](https://memerdevs.com). It lets you send end-to-end encrypted direct messages to other MemerDevs users from your terminal.
|
|
40
|
+
|
|
41
|
+

|
|
42
|
+

|
|
43
|
+

|
|
44
|
+

|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Features
|
|
49
|
+
|
|
50
|
+
- End-to-end encrypted direct messages
|
|
51
|
+
- Real-time messages when both users are online
|
|
52
|
+
- Offline message sync when a linked recipient comes back online
|
|
53
|
+
- Recent chat history on startup
|
|
54
|
+
- Online user list for users who choose to show terminal presence
|
|
55
|
+
- One active terminal session per MemerDevs account
|
|
56
|
+
- Web settings for privacy, linking, and session revocation
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Installation
|
|
61
|
+
|
|
62
|
+
ChaTerminal requires **Python 3.10 or later**.
|
|
63
|
+
|
|
64
|
+
Install it with pip:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
pip install ChaTerminal
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
To update an existing install:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install --upgrade ChaTerminal
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Quick Start
|
|
79
|
+
|
|
80
|
+
### 1. Run ChaTerminal
|
|
81
|
+
|
|
82
|
+
Open your terminal and run:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
ChaTerminal
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
If this is your first time using ChaTerminal, or if your session was revoked, the app will show an activation code.
|
|
89
|
+
|
|
90
|
+
Example:
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
ChaTerminal - Link Account
|
|
94
|
+
|
|
95
|
+
1. Open MemerDevs in your browser
|
|
96
|
+
2. Go to Settings -> ChaTerminal
|
|
97
|
+
3. Enter the activation code
|
|
98
|
+
|
|
99
|
+
Activation code: A1B2C3D4
|
|
100
|
+
|
|
101
|
+
Waiting for authorisation 04:59
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Activation codes expire after a few minutes. If the timer runs out, restart ChaTerminal to get a new code.
|
|
105
|
+
|
|
106
|
+
### 2. Link Your MemerDevs Account
|
|
107
|
+
|
|
108
|
+
1. Go to [memerdevs.com/settings](https://memerdevs.com/settings).
|
|
109
|
+
2. Scroll to the **ChaTerminal** section.
|
|
110
|
+
3. Enter the activation code shown in your terminal.
|
|
111
|
+
4. Click **Link Terminal**.
|
|
112
|
+
|
|
113
|
+
Keep ChaTerminal open while you do this. Once linking succeeds, the terminal will continue automatically.
|
|
114
|
+
|
|
115
|
+
### 3. Start Chatting
|
|
116
|
+
|
|
117
|
+
After linking, ChaTerminal shows your recent message history and opens a prompt:
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Type a command and press **Enter**.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Commands
|
|
128
|
+
|
|
129
|
+
| Command | What it does |
|
|
130
|
+
| --- | --- |
|
|
131
|
+
| `/dm <username> <message>` | Send a private message |
|
|
132
|
+
| `/list` | Show currently online ChaTerminal users |
|
|
133
|
+
| `/help` | Show available commands |
|
|
134
|
+
| `/exit` | Disconnect and close ChaTerminal |
|
|
135
|
+
|
|
136
|
+
Examples:
|
|
137
|
+
|
|
138
|
+
```text
|
|
139
|
+
> /dm gofaone315 Hey, are you online?
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
```text
|
|
143
|
+
> /list
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Usernames
|
|
149
|
+
|
|
150
|
+
Use the MemerDevs username slug from a profile URL.
|
|
151
|
+
|
|
152
|
+
For example, if the profile URL is:
|
|
153
|
+
|
|
154
|
+
```text
|
|
155
|
+
https://memerdevs.com/u/johndoe
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Send a message with:
|
|
159
|
+
|
|
160
|
+
```text
|
|
161
|
+
> /dm johndoe Hello from ChaTerminal
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Privacy And Sessions
|
|
167
|
+
|
|
168
|
+
You can manage ChaTerminal from [MemerDevs Settings](https://memerdevs.com/settings).
|
|
169
|
+
|
|
170
|
+
In the **ChaTerminal** section, you can:
|
|
171
|
+
|
|
172
|
+
- Link a terminal session
|
|
173
|
+
- Revoke your active terminal session
|
|
174
|
+
- Choose who can message you
|
|
175
|
+
- Show or hide your terminal online status
|
|
176
|
+
|
|
177
|
+
If you hide your online status, you will not appear in other users' `/list` results.
|
|
178
|
+
|
|
179
|
+
ChaTerminal allows one active terminal session per account. If you link or start ChaTerminal on another device, the previous terminal session will be signed out.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Message Delivery
|
|
184
|
+
|
|
185
|
+
Messages are encrypted before they leave your machine.
|
|
186
|
+
|
|
187
|
+
When both users are online, messages are delivered in real time. If the recipient has a linked ChaTerminal session but is offline, the message is delivered when they reconnect.
|
|
188
|
+
|
|
189
|
+
If a user has not linked ChaTerminal, or their terminal session was revoked, you may see a message saying that they do not have an active terminal session.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Troubleshooting
|
|
194
|
+
|
|
195
|
+
### The activation code expired
|
|
196
|
+
|
|
197
|
+
Restart ChaTerminal and enter the new code in MemerDevs Settings.
|
|
198
|
+
|
|
199
|
+
### The activation code is not accepted
|
|
200
|
+
|
|
201
|
+
Make sure you entered all 8 characters exactly as shown. If it still fails, restart ChaTerminal and use the new code.
|
|
202
|
+
|
|
203
|
+
### I was signed out
|
|
204
|
+
|
|
205
|
+
This can happen if:
|
|
206
|
+
|
|
207
|
+
- You revoked the session from MemerDevs Settings
|
|
208
|
+
- You linked ChaTerminal on another device
|
|
209
|
+
- Your MemerDevs session expired
|
|
210
|
+
|
|
211
|
+
Run `ChaTerminal` again and link your account if prompted.
|
|
212
|
+
|
|
213
|
+
### I cannot message someone
|
|
214
|
+
|
|
215
|
+
The other user may not have linked ChaTerminal, may have revoked their terminal session, or may only allow messages from followers.
|
|
216
|
+
|
|
217
|
+
### `/list` does not show someone
|
|
218
|
+
|
|
219
|
+
They may be offline, or they may have disabled terminal online status in MemerDevs Settings.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## License
|
|
224
|
+
|
|
225
|
+
This project is proprietary. See `LICENSE` for more info.
|
|
226
|
+
|
|
227
|
+
## Author
|
|
228
|
+
|
|
229
|
+
**Gofaone Tlalang**
|
|
230
|
+
GitHub: [@Gofaone315](https://github.com/Gofaone315)
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
**ChaTerminal** - real-time end-to-end encrypted chat from your terminal.
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# ChaTerminal
|
|
2
|
+
|
|
3
|
+
**ChaTerminal** is the official terminal chat client for [MemerDevs](https://memerdevs.com). It lets you send end-to-end encrypted direct messages to other MemerDevs users from your terminal.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Features
|
|
13
|
+
|
|
14
|
+
- End-to-end encrypted direct messages
|
|
15
|
+
- Real-time messages when both users are online
|
|
16
|
+
- Offline message sync when a linked recipient comes back online
|
|
17
|
+
- Recent chat history on startup
|
|
18
|
+
- Online user list for users who choose to show terminal presence
|
|
19
|
+
- One active terminal session per MemerDevs account
|
|
20
|
+
- Web settings for privacy, linking, and session revocation
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Installation
|
|
25
|
+
|
|
26
|
+
ChaTerminal requires **Python 3.10 or later**.
|
|
27
|
+
|
|
28
|
+
Install it with pip:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pip install ChaTerminal
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
To update an existing install:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pip install --upgrade ChaTerminal
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Quick Start
|
|
43
|
+
|
|
44
|
+
### 1. Run ChaTerminal
|
|
45
|
+
|
|
46
|
+
Open your terminal and run:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
ChaTerminal
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
If this is your first time using ChaTerminal, or if your session was revoked, the app will show an activation code.
|
|
53
|
+
|
|
54
|
+
Example:
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
ChaTerminal - Link Account
|
|
58
|
+
|
|
59
|
+
1. Open MemerDevs in your browser
|
|
60
|
+
2. Go to Settings -> ChaTerminal
|
|
61
|
+
3. Enter the activation code
|
|
62
|
+
|
|
63
|
+
Activation code: A1B2C3D4
|
|
64
|
+
|
|
65
|
+
Waiting for authorisation 04:59
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Activation codes expire after a few minutes. If the timer runs out, restart ChaTerminal to get a new code.
|
|
69
|
+
|
|
70
|
+
### 2. Link Your MemerDevs Account
|
|
71
|
+
|
|
72
|
+
1. Go to [memerdevs.com/settings](https://memerdevs.com/settings).
|
|
73
|
+
2. Scroll to the **ChaTerminal** section.
|
|
74
|
+
3. Enter the activation code shown in your terminal.
|
|
75
|
+
4. Click **Link Terminal**.
|
|
76
|
+
|
|
77
|
+
Keep ChaTerminal open while you do this. Once linking succeeds, the terminal will continue automatically.
|
|
78
|
+
|
|
79
|
+
### 3. Start Chatting
|
|
80
|
+
|
|
81
|
+
After linking, ChaTerminal shows your recent message history and opens a prompt:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Type a command and press **Enter**.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Commands
|
|
92
|
+
|
|
93
|
+
| Command | What it does |
|
|
94
|
+
| --- | --- |
|
|
95
|
+
| `/dm <username> <message>` | Send a private message |
|
|
96
|
+
| `/list` | Show currently online ChaTerminal users |
|
|
97
|
+
| `/help` | Show available commands |
|
|
98
|
+
| `/exit` | Disconnect and close ChaTerminal |
|
|
99
|
+
|
|
100
|
+
Examples:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
> /dm gofaone315 Hey, are you online?
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
> /list
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Usernames
|
|
113
|
+
|
|
114
|
+
Use the MemerDevs username slug from a profile URL.
|
|
115
|
+
|
|
116
|
+
For example, if the profile URL is:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
https://memerdevs.com/u/johndoe
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Send a message with:
|
|
123
|
+
|
|
124
|
+
```text
|
|
125
|
+
> /dm johndoe Hello from ChaTerminal
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Privacy And Sessions
|
|
131
|
+
|
|
132
|
+
You can manage ChaTerminal from [MemerDevs Settings](https://memerdevs.com/settings).
|
|
133
|
+
|
|
134
|
+
In the **ChaTerminal** section, you can:
|
|
135
|
+
|
|
136
|
+
- Link a terminal session
|
|
137
|
+
- Revoke your active terminal session
|
|
138
|
+
- Choose who can message you
|
|
139
|
+
- Show or hide your terminal online status
|
|
140
|
+
|
|
141
|
+
If you hide your online status, you will not appear in other users' `/list` results.
|
|
142
|
+
|
|
143
|
+
ChaTerminal allows one active terminal session per account. If you link or start ChaTerminal on another device, the previous terminal session will be signed out.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Message Delivery
|
|
148
|
+
|
|
149
|
+
Messages are encrypted before they leave your machine.
|
|
150
|
+
|
|
151
|
+
When both users are online, messages are delivered in real time. If the recipient has a linked ChaTerminal session but is offline, the message is delivered when they reconnect.
|
|
152
|
+
|
|
153
|
+
If a user has not linked ChaTerminal, or their terminal session was revoked, you may see a message saying that they do not have an active terminal session.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Troubleshooting
|
|
158
|
+
|
|
159
|
+
### The activation code expired
|
|
160
|
+
|
|
161
|
+
Restart ChaTerminal and enter the new code in MemerDevs Settings.
|
|
162
|
+
|
|
163
|
+
### The activation code is not accepted
|
|
164
|
+
|
|
165
|
+
Make sure you entered all 8 characters exactly as shown. If it still fails, restart ChaTerminal and use the new code.
|
|
166
|
+
|
|
167
|
+
### I was signed out
|
|
168
|
+
|
|
169
|
+
This can happen if:
|
|
170
|
+
|
|
171
|
+
- You revoked the session from MemerDevs Settings
|
|
172
|
+
- You linked ChaTerminal on another device
|
|
173
|
+
- Your MemerDevs session expired
|
|
174
|
+
|
|
175
|
+
Run `ChaTerminal` again and link your account if prompted.
|
|
176
|
+
|
|
177
|
+
### I cannot message someone
|
|
178
|
+
|
|
179
|
+
The other user may not have linked ChaTerminal, may have revoked their terminal session, or may only allow messages from followers.
|
|
180
|
+
|
|
181
|
+
### `/list` does not show someone
|
|
182
|
+
|
|
183
|
+
They may be offline, or they may have disabled terminal online status in MemerDevs Settings.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## License
|
|
188
|
+
|
|
189
|
+
This project is proprietary. See `LICENSE` for more info.
|
|
190
|
+
|
|
191
|
+
## Author
|
|
192
|
+
|
|
193
|
+
**Gofaone Tlalang**
|
|
194
|
+
GitHub: [@Gofaone315](https://github.com/Gofaone315)
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
**ChaTerminal** - real-time end-to-end encrypted chat from your terminal.
|