finds.dev

mpiorowski/late-sh

A cozy terminal clubhouse for computer people. Lofi, games, chat, artboard, and tech news, all via SSH.

View on GitHubHomepage ↗

★ 1,520RustNOASSERTIONupdated Oct 2026

// the take

late.sh is an SSH-accessible terminal social hub written in Rust: real-time chat with an IRC bridge, games (2048, Sudoku, Minesweeper, Solitaire, a Zork port), music streaming via Icecast/Liquidsoap, and a profile/art board system. It's for developers who want a persistent BBS/MUD-style hangout they can ssh into or self-host, not a library to pull into another project.

The whole stack (SSH server, web server, Postgres, Icecast, Liquidsoap) comes up with one `make start`, and there are seed fixtures for each domain (artboard, calendar, IRC history, leaderboard) so you can exercise a feature without hand-crafting data. The IRC bridge implements real protocol depth — `draft/chathistory`, `CHATHISTORY TARGETS`, batch/server-time — with private-room membership and bans enforced consistently across history and live chat, not just the happy path. The pre-merge gate runs `cargo clippy` and `cargo nextest` with `--features otel` against a disposable Compose Postgres instance, and otel is explicitly exercised there since regular CI skips it to stay fast — a sign they've thought about where instrumentation actually gets tested. The companion CLI does real work: local audio decode/resample/output, loopback capture, and a synced visualizer paired to the SSH session, not just piping terminal audio.

Licensed under FSL (Functional Source License), not OSI open source during its protection period — standing up a competing hosted service from a fork is explicitly disallowed, which matters if anyone wants to deploy a variant rather than just run the official one. Several of the games (Brogue, DCSS, NetHack, Zork, etc.) are shelled out to separate Docker images pinned to amd64, and the Zork image has to be built manually before the stack even starts — real friction off x86_64. A single Postgres instance backs a feature surface that's still growing fast (well over 100 migrations covering chat, games, badges, quests, a marketplace, an aquarium...) with no visible sharding or read-replica story, so the scale ceiling is whatever one box can carry for what's likely a chatty, write-heavy workload. It's the codebase for one specific hosted product, not a general SSH/TUI framework — reusing any single piece (the IRC bridge, the audio pipeline) means extracting it from a tightly coupled workspace rather than depending on a crate.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

search the same ground:

// at a glance

Stars
1,520
Forks
97
Language
Rust
License
NOASSERTION
Last commit
24 Oct 2026

// nearby

If late-sh isn't quite it.

All repos →