# Chawan: TUI web browser
Chawan is a text-mode web browser and pager for Unix-like systems, with a focus on implementing modern web standards while remaining self-contained, easy to understand and extensible.
It includes functionality like CSS, inline images and JavaScript through a small, independent browser engine.
Most of Chawan has been developed from scratch in the memory-safe Nim programming language.
## Download
You can download the latest release here.
Sources are currently hosted on SourceHut and Codeberg.
There are also unstable packages of the master
branch maintained by
volunteers:
- AUR: https://aur.archlinux.org/packages/chawan-git
- NixOS: https://search.nixos.org/packages?show=chawan
- AppImage: https://git.lerch.org/lobo/chawan-appimage/
## Gallery
This page showcases some websites being rendered in Chawan.
## Features
UI |
Inspired by w3m and
vi. Keybindings are user-programmable using JavaScript. |
---|---|
Protocols | HTTP(S), SFTP (using libssh2), FTP, Gopher, Gemini, Finger, Spartan. Extensible by users. |
Formats | HTML, plain text, Markdown, man page, and directory listing viewers are included. Extensible by users through HTML converters (you can even replace built-in viewers). |
CSS | Colors, formatting, flow layout (block, inline, float, etc.), table layout, flex layout. |
Images |
Displayed using Sixels or the
Kitty protocol.
Supported input formats are PNG, JPEG, BMP, GIF
(stb_image), WebP
(jebp) and SVG
(nanosvg).
Opt-in; edit the config to enable it. |
JavaScript |
Uses QuickJS-NG. Supports
various DOM manipulation and network APIs.
Opt-in; edit the config to enable it. |
Sandboxing | Websites are loaded inside separate processes, further locked down using syscall filtering mechanisms on FreeBSD, OpenBSD and Linux. |
## Subprojects
Parts of Chawan available as separate libraries:
- Chame: HTML5 parser in pure Nim.
- Chagashi: character coding library in pure Nim.
- Monoucha: QuickJS binding generator and runtime glue in Nim.
## License
Public domain, with permissively licensed components.