|
| 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 | + |
| 49 | + |
| 50 | +- When connection to the server is successful then this screen will appear |
| 51 | + |
| 52 | + |
| 53 | +- If connection is failed then you will see this screen |
| 54 | + |
| 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 | + |
| 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 | + |
| 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 | + |
| 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