Skip to content

Releases: dharunashokkumar/termcall

Release list

termcall v1.0.0

Choose a tag to compare

@dharunashokkumar dharunashokkumar released this 09 Sep 13:46

Chat rooms and video calls that live in your terminal. The video is characters.

Install

# macOS / Linux
curl -fsSL https://call.dharun.dev/install.sh | sh

# Windows
irm https://call.dharun.dev/install.ps1 | iex

Or take a binary below. One file — ffmpeg is inside it, so there is nothing
else to install.

What it does

Chat rooms hold up to 10 people. Video calls hold up to 4, tiled
across your terminal, with three render modes you can cycle mid-call with m:

  • blocks carrying two colours per cell, so one character shows two
    pixels in 24-bit colour. The most picture per cell.
  • ascii — one character per cell from .:-=+*#%@, tinted.
  • braille — 2×4 dots per cell, thresholded against each cell's own average,
    which makes it find edges.

Create a room to get a six-character code; anyone with the code joins. Nothing
is stored — when the last person leaves, the room is deleted and the code is
free again.

How it stays free

Chat is relayed through a Cloudflare Durable Object. Video is not: after the
handshake, frames go straight between terminals over WebRTC. Cloudflare bills
one request per incoming WebSocket message, so relaying 10 fps from four
people would cost ~24,000 requests in a ten-minute call — a quarter of the
free tier's day. The same call peer-to-peer costs about twenty.

What crosses the wire is a ~1.5 KB JPEG, not characters; each terminal renders
it locally, which is why you can change mode and window size mid-call.

Verified

All tests pass against production, including two real peers completing a
WebRTC handshake and exchanging frames. CI builds and tests on Linux, macOS
and Windows.