WebRTC • CLI • ASCII

SnapShell — Real‑time Terminal Video Chat

Peer‑to‑peer video chat rendered as ASCII directly in your terminal. Minimal latency. No GUI. Just vibes.

🍺 Install (macOS via Homebrew)

Official tap

brew tap saswatsam786/snapshell
brew install --HEAD snapshell

Requires up‑to‑date Xcode Command Line Tools. If Homebrew complains they are outdated, reinstall with xcode-select --install.

🐧 Quick Install (Linux)

One‑liner script

curl -sSL https://raw.githubusercontent.com/saswatsam786/snapshell/main/install.sh | bash

Binary builds are provided for Linux. For macOS use Homebrew. Windows via WSL recommended.

🎮 Usage — Production Signaling

# Caller (offerer)
snapshell -signaled-o --room demo123 --server https://snapshell.onrender.com

# Answerer (callee)
snapshell -signaled-a --room demo123 --server https://snapshell.onrender.com

Note: Signaling is hosted on Render. Cold starts may take ~1–2 minutes after inactivity. We plan to migrate to AWS for improved uptime and latency.

🧪 Local Dev — File/Manual

# File‑based signaling (auto)
snapshell -auto-o # in one terminal
snapshell -auto-a # in another

# Manual mode (copy/paste SDP)
snapshell -o / snapshell -a

🖼 Live ASCII Preview

██╗  ██╗███████╗██╗     ██╗      ██████╗
██║  ██║██╔════╝██║     ██║     ██╔═══██╗
███████║█████╗  ██║     ██║     ██║   ██║
██╔══██║██╔══╝  ██║     ██║     ██║   ██║
██║  ██║███████╗███████╗███████╗╚██████╔╝
╚═╝  ╚═╝╚══════╝╚══════╝╚══════╝ ╚═════╝
        Live ASCII Video Feed!

🔩 How it Works

P2P via WebRTC (Pion). ASCII conversion with OpenCV. Signaling via Redis + HTTP/SSE.

  • Direct peer connection with ICE/STUN
  • Bi‑directional video streams rendered as ASCII
  • Adaptive sizing to terminal dimensions

⚡ Low Latency

~100–200ms including capture and ASCII conversion

🧰 Dev‑Friendly

CLI‑first UX, great for demos, SSH and pair programming

🌍 Cross‑platform

macOS (Brew), Linux (script). Windows via WSL

📦 Download / Source

📄 License & Credits

Open‑source under MIT. Made with ❤️ by Saswat Samal.