Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
Pricing
Open Source
Type
TOOL
Interfaces
CLI
Builder
fathyb
Latest release
v0.0.3
Date

About

A Chromium-based web browser that runs entirely in your terminal. Supports modern web features like WebGL, WebGPU, audio/video playback, and animations while running at 60 FPS with zero idle CPU usage.

What it does

Carbonyl puts a full browser engine behind a command that draws straight onto a text console. Point it at an address and it renders the page pixel by pixel, folding the colors down into whatever palette the console can show, while scripts, layout, and media still run the way they would in a normal desktop window. Mouse clicks and key presses drive forward and back navigation the same way a toolbar button would. It installs as a global command, a container image, or a downloadable file for each supported system.

Why it's ranked here

This earns a slot because it solves the hard half of the problem competitors skip: real rendering fidelity in a console, not a stripped-down text approximation. The project itself documents the tradeoff honestly, naming a rival that needs fifty times the processing power for the same page because that rival copies a full window buffer instead of drawing straight to console resolution. A permissive license and a working binary/command/container matrix back that claim with something installable today.

What's good

The standout claim, made directly against a named competitor, is that this approach avoids copying or shrinking a graphical window and instead draws straight at console resolution, which the project credits for a large efficiency gap. Distribution is unusually flexible for a project this specialized: a package manager install, a ready container, or a plain downloadable file, so there is no single required toolchain. The permissive license also allows embedding or redistribution without much friction.

Tradeoffs

The heavy lifting is a full browser engine wearing a thin custom shell, so most of the actual behavior lives in code this project does not own or fully control, and a browser engine update can ripple through it. Building it yourself from source is a genuinely large undertaking, needing enormous disk space and roughly an hour on strong hardware, which pushes most people toward the prebuilt options. Extensions and fullscreen mode are both called out as unsupported for now, and one processor architecture cannot be cross built on another.

How to use it well

This fits a workflow where you need to see a real, fully scripted, media-capable page over a remote shell or in a headless environment, such as checking a dashboard or automated flow through a session with no graphical display. It is a poor match if you actually want a fast, lightweight, keyboard-driven reading experience, since older text browsers still lay out simple pages more cleanly and use far less machinery to do it. Treat prebuilt binaries or the container image as the default path rather than building from source unless you specifically need to patch the engine.

Technical notes+

The published crate builds a shared library from a lib crate exposing browser, cli, gfx, input, output, and ui modules, with cli wrapping that library into the executable; the output module further splits into cell, frame_sync, painter, quad, render_thread, renderer, and xterm submodules, and renderer.rs shows the terminal-facing renderer walking a double-buffered cell grid, diffing previous against current cells, mapping RGBA pixel data into terminal quadrant cells, and writing ANSI title-setting escape sequences directly to stdout. xterm.rs implements a color quantizer that maps arbitrary RGB values down to the 256-color xterm palette using distinct branches for near-grayscale versus chromatic colors. Cargo.toml declares the crate as a cdylib with dependencies on libc, unicode-width, unicode-segmentation, and chrono, and package.json declares the npm package under a BSD-3-Clause license, consistent with the text in license.md. build.rs conditionally links a Debian sysroot path for x86_64 or x86 targets and is a no-op on other architectures, reflecting the Linux cross-build constraint documented in readme.md.

Observed

License
Licensed BSD-3-Clause per package.json, with matching three-clause license text in license.md
Architecture
Core implemented in Rust as a cdylib (shared library) per Cargo.toml, loaded by a separate runtime executable
Packaging
Distributed three ways: npm global install, Docker image, and prebuilt per-platform zip binaries
Dependencies
Rust dependencies limited to libc, unicode-width, unicode-segmentation, and chrono
Interfaces
Runtime renders via a CLI executable taking a URL argument, with keyboard and mouse handled through a navigation module
Known limitations
Readme documents unsupported fullscreen mode and unsupported browser extensions as known limitations
Build behavior
build.rs links a Debian sysroot conditionally on x86_64 or x86 target architecture, with no equivalent branch for other architectures

Read from readme.md, Cargo.toml, package.json, src/cli.rs, src/lib.rs, src/browser.rs, src/gfx.rs, src/input.rs, src/output.rs, src/ui.rs, src/output/renderer.rs, src/output/xterm.rs, changelog.md, license.md, build.rs.

What it can do

  • Browse websites and web applications

    URLs or web addresses → Rendered web pages displayed in terminal interface

  • Render WebGL graphics and 3D content

    WebGL-enabled websites or applications → 3D graphics and animations displayed in terminal at 60 FPS

  • Play audio and video content

    Web pages with audio/video elements or streaming media → Audio playback and video display in terminal

  • Execute JavaScript and modern web APIs

    Web applications using JavaScript, WebGPU, and other modern web technologies → Fully functional web application behavior in terminal environment

  • Display web animations and interactive content

    Websites with CSS animations, transitions, or interactive elements → Smooth animations and interactive experiences rendered in terminal

Tags

terminalbrowserchromiumcliwebsshheadless

Tech Stack

Node.jsRustDocker

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.