A cozy command-line clubhouse for computer people. Chat, music, games, art, coding, and tech news. Connect with any SSH client!
ssh late.shlate.sh is a terminal-first social app: real-time chat, music, games, news, profiles, and a shared always-on space you can enter from any SSH client.
This repository is the main codebase for late.sh.
- The project is open for source reading, local development, audits, and contributions.
- The public hosted
late.shservice remains the canonical deployment. - The code is source-available, not OSI open source, during the FSL protection period.
Read the details in LICENSE, the plain-English policy in LICENSING.md, and contribution rules in CONTRIBUTING.md.
- SSH TUI with dashboard, chat, profile, news, and arcade screens
- Real-time global chat and shared activity feed
- Audio streaming via Icecast/Liquidsoap, played by the paired CLI or the public
/listenpage - Terminal games including 2048, Sudoku, Nonograms, Minesweeper, and Solitaire
- Web frontend for landing, profiles, and the token-less
/listenpage - Companion CLI for local audio playback and synced visualizer data
This is a Rust workspace with five crates:
| Crate | Role |
|---|---|
late-cli |
Companion CLI for local audio playback, paired controls, and visualizer sync |
late-core |
Shared domain code, database layer, migrations, and infrastructure helpers |
late-ssh |
SSH server and terminal UI application |
late-web |
Web server, landing page, profiles/gallery, stream proxy, and the public /listen page |
late-webview |
Helper process hosting the official YouTube IFrame Player for the CLI |
The stack is backed by PostgreSQL, Icecast, and Liquidsoap.
Try the live service:
ssh late.shThe SSH login name is discarded rather than used as a public handle. On the first connection, a new account receives a random modifier-and-noun username; the username can still be changed later in Settings.
Run it yourself (requires Docker):
git clone https://github.com/mpiorowski/late-sh