ascii-chat: Video Chat in Your Terminal with Audio, Encryption, and Media Support

ascii-chat: Video Chat in Your Terminal with Audio, Encryption, and Media Support

Summary

ascii-chat is a unique client-server application that enables video chat directly within your terminal, supporting color, audio, and encryption. It allows multiple clients to connect, offers media streaming from files or URLs, and features a robust discovery service for easy connection. Built in C, it's a powerful and versatile tool for terminal enthusiasts.

Repository Info

Updated on June 4, 2026
View on GitHub

Tags

Click on any tag to explore related repositories

Introduction

ascii-chat is an innovative open-source project that brings video chat directly to your terminal. Conceived during a hackathon in 2013, it has evolved into a feature-rich client-server application operating over TCP/IP. It supports color, audio, encryption, and compression, allowing multiple clients to connect simultaneously and view each other in a grid layout, similar to modern video conferencing tools.

Beyond basic video chat, ascii-chat supports UTF-8 characters, enabling a richer visual experience than just ASCII. A standout feature is its media support, allowing users to stream video from local files or URLs, including complex streaming sites like YouTube and Twitch via yt-dlp. This means you can watch videos with friends in ASCII art, all within your terminal, complete with live audio discussion.

Designed to work everywhere terminals do, from SSH sessions to initial Unix login shells, ascii-chat offers a unique, desktop-environment-free video conferencing experience.

Installation

Getting ascii-chat up and running is straightforward, with options for package managers or building from source.

macOS (Homebrew):

# Add the tap
brew tap zfogg/ascii-chat

# Install runtime binary
brew install ascii-chat

# Install development libraries (headers, static/shared libs, docs)
brew install libasciichat

Arch Linux (AUR):

# Stable releases
paru -S ascii-chat           # Runtime binary
paru -S libasciichat         # Development libraries (headers, libs, docs)

# Latest git versions (recommended for development)
paru -S ascii-chat-git       # Runtime binary from git
paru -S libasciichat-git     # Development libraries from git

Build From Source (All Platforms):

For a complete build guide, refer to the Build System Documentation. A quick start involves:

# 1. Clone the repository
git clone https://github.com/zfogg/ascii-chat.git
cd ascii-chat

# 2. Get submodules
git submodule update --init --recursive

# 3. Install dependencies (Linux or macOS)
./scripts/install-deps.sh

# 4. Build and install
sudo make install

Examples

ascii-chat uses a unified binary with four modes: server, client, mirror, and discovery-service.

Get help:

ascii-chat --help                      # Top-level help
ascii-chat server --help               # Server-specific help
ascii-chat client --help               # Client-specific help

Basic Usage:

# Take an ASCII art selfie with your webcam
ascii-chat mirror -S -D 0

# Start a server
ascii-chat server

# Connect a client (in another terminal)
ascii-chat client

# Use local network discovery (mDNS)
ascii-chat server --mdns
ascii-chat client --mdns

Why Use ascii-chat?

ascii-chat stands out for several compelling reasons:

  • Unique Terminal Experience: It offers a truly novel way to engage in video and audio communication, transforming media into ASCII art directly within your command line interface. This makes it accessible in environments where traditional GUI applications are unavailable or undesirable.
  • Robust Networking and Discovery: Its custom ascii-chat Internet Protocol (ACIP) is optimized for low-latency, encrypted, multi-client terminal conferencing. The ascii-chat Discovery Service (ACDS) simplifies connections by allowing users to join sessions with memorable three-word strings (e.g., purple-mountain-lake), bypassing complex NAT and firewall configurations. ACDS also supports mDNS for easy local network discovery.
  • Privacy and Security: All media flows directly between peers using ACIP encryption, ensuring ACDS never sees your data. It uses strong cryptography (X25519, XSalsa20-Poly1305, Ed25519) for end-to-end security.
  • Extensibility and Performance: Built on libasciichat, a reusable C library, it offers cross-platform abstractions, hardware-accelerated image processing (SIMD), and efficient memory management. This makes it a powerful foundation for other ACIP-based applications.
  • Media Versatility: The ability to stream from files and URLs, including popular streaming services, opens up possibilities for shared viewing experiences with friends, all rendered in ASCII.

Links