finds.dev← search

// the find

fathyb/carbonyl

★ 19,279 · Rust · BSD-3-Clause · updated Jul 2024

Chromium running inside your terminal

Carbonyl patches Chromium's rendering pipeline to output directly to terminal escape sequences instead of a framebuffer, achieving a full browser experience (JS, WebGL, video, audio) in a TTY. It's for developers who need a real browser in headless/SSH environments, or anyone curious about pushing terminal rendering to its limits.

- The rendering approach is genuinely clever: rather than screen-scraping a framebuffer like Browsh does, it patches Blink/Skia directly so Chromium renders at terminal resolution natively, which explains the claimed 50x CPU advantage and the 60 FPS figure.

- Docker distribution makes it trivially usable without wrestling with Chromium's enormous dependency list on Linux, and the npm package covers the common developer use case.

- The Chromium patches are organized as a numbered, reviewable series (14 patches against Chromium, 2 against Skia, 1 against WebRTC) rather than a giant diff blob, making it possible to understand what was changed and why.

- Audio and video playback actually work in a terminal, which is a genuinely surprising capability and not something bolted on as a demo—it goes through the normal Chromium media pipeline.

- Last commit was July 2024 and the latest release is v0.0.3 from early 2023—the Chromium version it ships is almost certainly multiple major versions behind, which means unpatched security vulnerabilities if you're using this to browse anything sensitive.

- Building the runtime yourself requires ~100GB disk space, an hour of compile time, and you can't cross-compile arm64 on arm64 Linux. Practically nobody will be able to rebuild this from scratch, making you entirely dependent on the author's prebuilt binaries.

- No extension support and no fullscreen—both are noted in the README—which limits usefulness for anything beyond basic browsing or automation tasks.

- The project is essentially a single-author effort with no clear contributor path beyond 'patch the Rust core'; the Chromium layer requires such deep knowledge of the build system and internal APIs that outside contributions to the browser side are realistically very rare.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →