Simple terminal chat application served via SSH (probably over engineered for it's scale) - which means u only need a terminal and an ssh client to start using it!
Echo is currently under active development. Core features like chat rooms and message persistence are not yet implemented. Authentication is the current focus. Expect bugs and incomplete functionality.
- SSH Access: Connect using any standard SSH client.
- Terminal UI: Built using the lovely Bubble Tea framework.
- (In Progress): User Authentication (Signup/Login).
- (Planned):
- Direct Messaging (DMs) / Rooms
- Persistent Chat History (using SQLite)
- User Search
- Real-time message broadcasting
- Language: Go
- SSH Server:
charmbracelet/wish - Terminal UI (TUI):
charmbracelet/bubbletea - TUI Styling:
charmbracelet/lipgloss - Database: SQLite (Embedded)
- DB Migrations:
golang-migrate/migrate - DB Query Generation:
sqlc
These instructions are for developers or testers wanting to run the server locally.
-
Prerequisites:
- Go (version 1.24.1 or later)
- An SSH client (
ssh)
-
Clone the repository:
git clone https://github.com/mohamed-souiyeh/Echo cd Echo -
Set up the Database:
- The application uses an embedded SQLite database (
echo.dbby default for now). - The database migration is run automatically ont he server startup.
- The application uses an embedded SQLite database (
-
Generate SQLC Code:
- (If you modify
./db/queries/*.sqlfiles) Regenerate the Go database code:sqlc generate
- (If you modify
-
Build the application:
go build -o echo .
-
Run the server:
./echo # It should start listening for SSH connections on port 4242 by default.
Once the server is running locally:
- Connect using your SSH client:
ssh localhost -p 4242
- You should be presented with the authentication screen (Login/Signup). Follow the on-screen prompts.