explaingit

fathyb/carbonyl

19,100RustAudience · developerComplexity · 4/5StaleLicenseSetup · hard

TLDR

A web browser that runs in your terminal, rendering web pages as text characters while supporting modern web features like JavaScript and video.

Mindmap

mindmap
  root((repo))
    What it does
      Terminal web browser
      Chromium-based engine
      Text character rendering
    Key features
      JavaScript support
      WebGL and WebGPU
      Audio and video
      60 FPS rendering
    Use cases
      Headless server browsing
      SSH remote access
      Automated browser tasks
    Tech stack
      Rust core
      Chromium engine
      Terminal rendering
    Installation
      npm package
      Docker container
      Binary downloads

Things people build with this

USE CASE 1

Browse the web on a remote server over SSH without a graphical interface.

USE CASE 2

Run automated browser tasks in headless server environments for testing or scraping.

USE CASE 3

Access web content on minimal systems or embedded devices with only terminal access.

USE CASE 4

Stream web content through terminal sessions with full JavaScript and media support.

Tech stack

RustChromiumJavaScriptWebGLWebGPU

Getting it running

Difficulty · hard Time to first run · 1day+

Requires building Chromium from source and complex Rust compilation with GPU dependencies.

Open source under a permissive license allowing free use for any purpose, including commercial applications.

In plain English

Carbonyl is a full web browser, built on the Chromium engine that powers Google Chrome, that runs entirely inside a terminal window, with no graphical desktop required. Normally a web browser needs a window manager and a screen. Carbonyl removes that requirement by rendering web pages as text characters directly in your terminal, while still supporting modern web features like JavaScript, WebGL, WebGPU, audio, and video playback. It works by patching Chromium's rendering engine so that instead of drawing pixels to a window, it converts the output to terminal characters at up to 60 frames per second. Because it renders natively at the terminal's resolution rather than downscaling a full-resolution window, it is significantly faster and lighter on CPU than earlier projects like Browsh. You would use Carbonyl when you need to browse the web on a server with no graphical interface, or over an SSH connection to a remote machine. It is also useful for automated browser tasks in headless server environments. You can install it via npm, run it as a Docker container, or download a binary for macOS or Linux. The core rendering layer is written in Rust; the browser runtime is a modified version of Chromium's headless shell.

Copy-paste prompts

Prompt 1
How do I install and run Carbonyl in a Docker container to browse the web headlessly?
Prompt 2
Show me how to use Carbonyl to automate web scraping tasks on a server without a GUI.
Prompt 3
What are the performance differences between Carbonyl and other terminal browsers like Browsh?
Prompt 4
How can I use Carbonyl over SSH to browse websites on a remote machine from my terminal?
Prompt 5
Explain how Carbonyl patches Chromium to render web pages as terminal characters instead of pixels.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.