π¬ The Chat Room! π¬
An IRC-style chat room built for Reticulum NomadNet, optimized for MeshChat v2.1+. Made By F.
πΌοΈ The Chat Room UI
Screenshot from MeshChat interface:
π Live Demo
Experience the chatroom in action via the official NomadNet page:
NomadNet Page Link (MeshChat v2.1+ Optimized): d251bfd8e30540b5bd219bbbfcc3afc5:/page/index.mu
Informations
Welcome to THE CHATROOM β v1.45a by F.
The first Reticulum/Nomadnet IRC-style chatroom, optimized for Meshchat v2.x+.
Born on v1 the 10 of August 2025. Enjoy!
Note: This chatroom page was developed using MeshChat Browser so it's optimized for MeshChat v2.1+ only, could be unreadable on Nomadnet browser.
A simpler Nomadnet version is coming soon, work in progress, stay tuned!
π Project Overview
This is a Python-based Nomadnet page script that creates a ready-to-run IRC-style chatroom.
Just copy all files from this GitHub release into your ./nomadnetwork/storage/pages/ folder,
make index.mu executable with chmod +x, and launch your Nomadnet node.
Detailed installation info below.
- π Decentralized mesh-based communication based on NomadNetwork
- π§βπ» No registration requiredβjust choose a nickname and start chatting
- π¨ Nicknames are randomly colorized and persist across sessions (user settings personalization is coming soon!)
- π Nickname to LXMF address binding, using the Fingerprint in Meshchat v2+ to save and recover the nickname across sessions (THANKS TO: THOMAS)
- π οΈ Built with Python and Micron components
- π Official chat script is Hosted on a VPS for stable uptime
Live Demo: d251bfd8e30540b5bd219bbbfcc3afc5:/page/index.mu
Official GitHub: https://github.com/fr33n0w/thechatroom
π Help Page
Welcome to the Help section! This guide outlines all the modules required to run this project,
along with setup instructions to get you started smoothly.
π§° Requirements
This project uses a combination of Pythonβs built-in modules and third-party libraries.
β Built-in Modules (No installation required)
These come bundled with Python and require no additional setup:
| Module | Purpose |
|---|---|
os |
Interacts with the operating system (e.g., file paths, environment vars) |
sys |
Accesses system-specific parameters and functions |
json |
Parses and manipulates JSON data |
time |
Handles time-based operations (e.g., delays, timestamps) |
random |
Generates random values and selections |
re |
Performs pattern matching with regular expressions |
shutil |
Performs high-level file operations (e.g., copying, moving files) |
collections |
Provides specialized data structures like Counter |
datetime |
Manages date and time objects |
π Third-Party Libraries (Install via pip)
These must be installed manually:
| Package | Purpose |
|---|---|
pytz |
Timezone definitions and conversions |
requests |
Simplified HTTP requests and API calls (needed for /meteo command only) |
geopy |
Geolocation services (e.g., address lookup via Nominatim, as above) |
sqlite3 |
Manages local SQLite database storage for Nickname to LXMF binding |
To install them, run:
pip install pytz requests geopy sqlite3
...and of course, you need NomadNet to host the page:
pip install nomadnet
βοΈ Installation
Ready to deploy THE CHATROOM on your NomadNet node? Follow these steps to get it running in minutes:
π 1. Download the Files
Clone the repository or download the ZIP:
git clone https://github.com/fr33n0w/thechatroom.git
π 2. Copy Files to NomadNet Pages Directory
cp -r thechatroom/* ~/.nomadnetwork/storage/pages/
π 3. Make index.mu and other python pages Executable
chmod +x ~/.nomadnetwork/storage/pages/index.mu
chmod +x ~/.nomadnetwork/storage/pages/fullchat.mu
chmod +x ~/.nomadnetwork/storage/pages/last100.mu
Also make sure your user has read and write permission for the json and db files!
π 4. Launch NomadNet
nomadnet
DONE!
βοΈ Technical Notes
Here are some important details about how THE CHATROOM works and what to expect:
- π The chatroom does not auto-refresh due to Micron limitations
β Use the Reload buttons that you find in the bottom menubar to view new messages - π§ Nicknames can be stored using MeshChatβs Fingerprint binding
- Usage: press fingerprint button, set a nickname and reload the page. Nick is saved. β This allows nickname persistence across sessions (thanks to Thomas!)
- To recover the nickname on lost session cache, press fingerprint again and it will reappear automatically
- π The main chat view shows the last 30 messages to fit MeshChat browser windows, you cn adjust the limit in the script β Full logs are available via the View Logs button on the bottom menΓΉ
- π§ͺ The
/meteocommand uses external APIs
β Requiresrequestsandgeopyto be installed - π§± Built with Python and Micron components
β Compatible with MeshChat v2.1+ only, pure NomadNet version is coming soon! - π§ͺ More Features will come soon! Stay Tuned!
π¬ Commands Reference
Hereβs the full list of available commands in THE CHATROOM, grouped by category for easy reference:
π General Info & Utility Commands
| Command | Description |
|---|---|
/info |
Show chatroom information, usage, and disclaimer |
/cmd |
Display all available user commands |
/stats |
Show chatroom statistics, including Top 5 Chatters |
/users |
List all active chatroom users |
/version |
Show script version, latest updates, and news |
π§ Interactive Chat Commands
| Command | Description |
|---|---|
/lastseen <nickname> |
Show last seen info and latest message from a user |
/topic or /topic <text> |
View or change the current room topic |
/search <keyword(s)> |
Search for keywords in the full chat log |
/time |
Show current server time (UTC) and your local time |
/ping |
Reply with PONG! to confirm chat system is active |
/meteo <city> |
Get weather info for a city (requires internet + API) |
π Social Interaction Commands
| Command | Description |
|---|---|
/e |
Send randomized emojis from the internal emoji list |
/c <message> |
Send a colored message with randomized background and font colors |
@nickname |
Mention a user with a colored highlight |
$e |
Insert a random emoticon anywhere in your message |
/welcome or /welcome <nickname> |
Send a welcome message to the room or a specific user |
π€ User Status Commands
| Command | Description |
|---|---|
/hi, /bye, /brb, /lol, /exit, /quit, /away, /back, /notice |
Send status updates or reactions |
| Example | /hi Hello World! β syntax works for all status commands |
π Admin Commands (Restricted Access)
Only available to system administrators via
/admincmd
| Command | Description |
|---|---|
/clear |
Delete the last message permanently |
/clear N |
Delete the last N messages, e.g. /clear 3 |
/clear user <nickname> |
Delete all messages from a specific user |
/clearall |
Clear the entire chat log and database (irreversible) |
/backup |
Create a full chat_log.json backup in the script folder |
β οΈ Some commands require internet access or third-party libraries (
requests,geopy).
π Admin commands are protected and only executable by authorized users. (Edit SYSADMIN nickname in the script!!)