redichat
v1.2.1
Published
A simple, real-time, multi-room terminal chat application using Node.js and Redis.
Maintainers
Readme
redichat
Real-time Redis terminal chat.
npm install -g redichatA simple, real-time multi-room terminal chat powered by Redis Pub/Sub.
redichat is a CLI chat application built with Node.js, React (Ink), and Redis.
It allows multiple users to join chat rooms and communicate in real time directly from the terminal.
✨ Features
- Real-time messaging powered by Redis Pub/Sub
- Multi-room chat (create or join rooms instantly)
- Private rooms with password protection
- Chat history loaded when entering a room
- Private messaging between users
- Multi-language support (English / Korean) (coming soon)
- Dynamic nickname colors for readability
- Built with React for the terminal using Ink
📦 Installation
Install globally:
npm install -g redichator run instantly with:
npx redichat⚙️ Configuration
redichat requires a running Redis instance to connect to.
Think of this server as a shared digital space or a playground. To chat with others, you must all be in the same playground.
You configure which playground to connect to by creating a .env file in the directory where you run the redichat command.
1. For Private Chat with Friends
If you want to create a private space for you and your friends, you must all connect to the same Redis server.
Create a Server: One person in the group should create a free database on a service like Redis Cloud or Upstash.
Get Connection Info: From the service's dashboard, get the Host, Port, and Password.
Share Securely: Share this information privately with your friends.
Create
.envFile: Each person must create a.envfile and fill it with the shared details.# .env - Example for a private group REDIS_HOST=redis-12345.c1.us-east-1-2.ec2.cloud.redislabs.com REDIS_PORT=12345 REDIS_PASSWORD=the-secret-password-you-shared
2. For Developers (Local Testing)
When developing or testing on your own, you can connect to a Redis server running on your local machine.
Clone the repository:
git clone https://github.com/geunseonkim/redichat.gitInstall dependencies:
npm installCopy the example file:
cp .env.example .envThe default values in
.envare usually correct for a local Redis setup.# .env - Default for local development REDIS_HOST=127.0.0.1 REDIS_PORT=6379 REDIS_PASSWORD=
A Note on the "random" Room
When you enter random as the room name, redichat finds a public room on the currently connected Redis server. This means:
- If you and your friends are connected to the same Redis Cloud server, entering
randomwill place you in the same public chat room. - If you are connected to your local machine and your friend is connected to theirs, you will each be in a separate, isolated
randomroom. You will not be able to chat.
🚀 Usage
Start the chat client:
redichatYou will be prompted to:
- Select a language
- Enter your nickname
- Join or create a chat room
💬 Commands
Inside a chat room you can use:
/usersView users in the current room.
/roomsView all active rooms and their member counts.
/join <room>Switch to another room.
/whisper <nick> <message>Send a private message.
/backReturn from the password input screen.
/exitExit the chat application.
🧰 Development
Clone the repository:
git clone https://github.com/geunseonkim/redichat.git
cd redichatInstall dependencies:
npm installBuild the project:
npm run buildRun locally:
npm start🤝 Contributing
Contributions are welcome!
If you'd like to improve the project:
- Fork the repository
- Create a feature branch
- Submit a pull request
📜 License
MIT License © 2026 Geunseon Kim
