From 77ab9ca8e9b278c2347d8eeeb8c92ea35c5b526c Mon Sep 17 00:00:00 2001 From: P7MJ Date: Tue, 17 Mar 2026 21:23:49 -0400 Subject: [PATCH] Update README.md --- README.md | 81 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 3307e1f..463c5ec 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,70 @@ -# Command-Line-Radio +# P7-InfraNET CLRadio-Hybrid A-1-ii Integra -A radio-like chat system for use on local networks. Verison A-1 +**Integra** is a high-performance, dual-pane terminal communication hub built for real-time "radio" style messaging. It features a split-pane interface powered by `Rich` and `Prompt-Toolkit`, allowing users to chat on one side while managing system commands on the other. -

Introduction

+--- -Ever wanted a mini text radio across your local network? Well, here it is! +## 🚀 Key Features -CLRadio is a radio program that can transmit one-way text messages (as of now) to another computer, regardless of distance, as long as they are connected to the same network. It is pretty intuitive to use. +* **Dual-Pane UI**: Dedicated panels for live chat (left) and system commands (right). +* **Active Listening**: Automatically binds to Port 443 on startup to receive incoming traffic. +* **Command Parser**: Integrated command-line interface in the "Cmd" panel for profile management and connections. +* **Automatic Scrolling**: Intelligent log management that slices history to fit your terminal height perfectly. +* **Visual Feedback**: Active panel highlighting and a blinking cursor to indicate focus. +* **Profile Persistence**: Saves and loads known peers from `known_connections.txt`. -

Usage

+--- -1. Start the server program before starting the client. +## ⌨️ Controls & Navigation -2. Obtain the ipv4 address through running `ipconfig` in cmd/powershell +| Key | Action | +|:--- |:--- | +| **`TAB`** | Switch focus between the **Chat** and **Cmd** panels. | +| **`ENTER`** | Send a message (if in Chat) or execute a command (if in Cmd). | +| **`Ctrl + Q`** | Safe Exit: Disconnects sockets and closes the application. | +| **`Backspace`** | Standard text deletion in the active panel. | -3. Create a profile in the client +--- -``` -================================================================================ -CLRadio Sender Version A-1 | by P7MJ --------------------------------------------------------------------------------- -[1] Use/Edit saved ports -[2] Specify port - > +## 🛠️ Installation & Setup (Linux/macOS) + +Because this app uses specific dependencies and requires privileged ports, follow these steps to ensure a clean environment. + +### 1. Create a Virtual Environment +It is highly recommended to use a `venv` to avoid library conflicts: +```bash +python3 -m venv CLRadio +source CLRadio/bin/activate ``` -Insert 1 and press Enter, then you will see: - +### 2. Install Dependencies +```bash +pip install rich prompt-toolkit ``` -Current Saved Profiles: -: -[1] Write new profile entry -[2] Select a profile -[3] Clear all profiles (IRREVERSIBLE, WILL ANNIHILATE MASSDEBATER67'S BRAIN) - > +### 3. Running with Sudo (The "Venv" Trick) +Since the app binds to **Port 443**, it needs root privileges. To use `sudo` without losing your `venv` libraries, use the absolute path to the venv's python: +```bash +sudo ./CLRadio/bin/python3 CLRadio-Hybrid-A-1-ii-Integra.py ``` -Select a profile, if it exists, using the position at which it is in the list (1 for first entry, 2 for second...), create a new one, or delete all of them. -4. The client will connect to that profile and a connection will be initialized if a server at that IP exists. +--- -

Known Errors/Future development directions

+## 📡 Commands (Cmd Panel Only) -- You must start the server first in order to connect with the client. +All commands must be typed into the **Right Panel** and start with a `/`. -- The client is now one-way. The server is recieve-only, much like non-commander variants of the T-34 in WW2. \ No newline at end of file +* **`/connect`**: Displays all saved profiles from your `known_connections.txt`. +* **`/connect `**: Attempts to establish a connection to the $n^{th}$ profile in your list. +* **`/profiles add `**: Saves a new peer to your permanent list. +* **`/profiles clear`**: Wipes all saved profiles. +* **`/listen`**: Checks the status of the background receiver. +* **`/help`**: Displays the in-app command reference. + +--- + +## ⚠️ Security Note +Port **443** is a restricted port. Ensure your firewall (ufw/iptables) allows incoming TCP traffic on 443 to receive messages from peers. If running on Windows, ensure you are using an Administrative Terminal. + +--- +*Developed by P7MJ | P7-InfraNET Architecture* \ No newline at end of file