# Chawan: TUI web browser
# 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 such as CSS, inline images inside the terminal, 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 (v0.4.3) here.
Sources are currently hosted on SourceHutand Codeberg.
There are also packages maintained by volunteers, of stable versions at:
- Alpine Linux: <https://pkgs.alpinelinux.org/packages?name=chawan>
- Arch Linux: <https://archlinux.org/packages/extra/x86%5F64/chawan/>
- Debian (testing): <https://packages.debian.org/chawan>
- FreeBSD: <https://www.freshports.org/www/chawan/>
- Gentoo: (::guru overlay) <https://codeberg.org/gentoo/guru/src/branch/master/www-client/chawan>
- Homebrew: <https://formulae.brew.sh/formula/chawan>
- NixOS: <https://search.nixos.org/packages?show=chawan>
- Slackware (SBo): <https://slackbuilds.org/repository/15.0/network/chawan/>
- Void Linux: <https://voidlinux.org/packages/?arch=x86%5F64&q=chawan>
- AUR: <https://aur.archlinux.org/packages/chawan-git>
- AppImage: <https://git.lerch.org/lobo/chawan-appimage/>
- Gentoo: (::guru overlay, live ebuild) <https://codeberg.org/gentoo/guru/src/branch/dev/www-client/chawan/chawan-9999.ebuild>
- Homebrew (using `--HEAD`): <https://formulae.brew.sh/formula/chawan>
- Chame: HTML5 parser in pure Nim.
- Chagashi: character coding library in pure Nim.
- Monoucha: QuickJS binding generator and runtime glue in Nim.
and unstable versions (tip of the `master` branch) at:
## 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. 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:
## License
Public domain, with permissively licensed components.
## Banners
Contributed by user arcathrax, these are also in the public domain. Spread the word :)

