codr1/termium

Chromium in your terminal. Vimium navigation, real tabs, Kitty and sixel graphics, and Mouse keys. Linux and macOS.

Go

11

153 commits

updated Sep 30, 2026

See the code

See what people are saying

SourceMessageScoreDate

Termium: a real Chromium browser in your terminal (Kitty graphics, sixel, Vimium, works over SSH) (r/commandline)

I built Termium: it runs headless Chromium and draws pages in your terminal with the Kitty graphics protocol (Ghostty, Kitty, WezTerm), sixel (foot, xterm, Windows Terminal), or ASCII blocks as a fallback. Vimium is bundled for keyboard navigation: f for link hints, j/k to scroll, t for a new tab.…

29

Sep 30, 2026

README

Termium

Browse the web inside your terminal. Real pages. Real tabs. Your keyboard.

Website · Quickstart · User guides · Installation

Termium in Ghostty: searching YouTube, watching SpaceX boosters land, following Vimium link hints on Hacker News, and the same Steam page in Ghostty, WezTerm, Kitty, foot, xterm and Alacritty
Watch the 70-second demo with sound

Termium renders a real Chromium browser in your terminal, with keyboard and mouse interaction. It draws actual pixels with the Kitty graphics protocol or sixel, and falls back to ASCII graphics anywhere else. It works over SSH, so the browser can run on the machine you are logged into.

Quickstart

Supported platforms: Linux x86-64, macOS (Apple Silicon or Intel), and Windows (WSL2 x86-64).

On Windows, open your WSL2 Linux shell in Windows Terminal (Preview), available from the Microsoft Store. This setup is supported with Sixel graphics. Run the command below inside WSL2.

On Linux and macOS, run it directly in your terminal:

curl -fsSL https://termium.dev/install | bash

Setup downloads Termium, Chromium, and Vimium, verifies them, and opens the browser. No Node, Go, browser installation, or sudo required. In new terminals, the termium command works from any directory.

This is an early release. Linux requires glibc and working Chromium sandbox support; the installer checks compatibility; native Windows and Linux ARM64 packages are not available yet.

See installation for platform requirements, updates, and storage.

Browse

Run termium from any directory, or termium example.com to open a page directly.

  • The welcome page puts the key legend at your fingertips.
  • Press Ctrl+L, type an address, and press Enter.
  • Use the top bar for Back, Forward, Reload/Stop, and Menu.
  • Press f for link hints, j/k to scroll, and ? for Vimium help.
  • Use t, J/K, and x/X to create, switch, close, and reopen tabs.
  • Click a page field to focus it, then type normally.
  • Press F6 for mouse keys; press it again to return to typing.
  • Press Ctrl+Q, then Enter to quit.

Save a custom startup and new-tab page with termium --set-homepage https://example.com.

Read the getting started guide for controls and display options.

Graphics in your terminal

Termium picks the best graphics your terminal offers:

TerminalGraphics
Ghostty, Kitty, WezTermKitty graphics: true color, PNG straight from Chromium
foot, xterm (VT340 mode), Windows TerminalSixel
Anything else, such as AlacrittyASCII graphics with colored blocks

See terminal support for setup notes, including the xterm flags.

Over SSH

Termium runs where you run it. SSH into a Linux machine from a terminal that supports Kitty graphics or sixel, run termium, and the pages render on your screen while Chromium runs on the remote host. A slow connection slows the frame rate, not the page.

How it compares

TermiumCarbonylBrowshLynx, w3m
EngineStock ChromiumPatched ChromiumHeadless FirefoxOwn HTML engine
Images and videoReal pixels (Kitty graphics, sixel), ASCII fallbackColored block charactersColored block charactersNone, or external viewer
TextPart of the rendered imageReal terminal textReal terminal textReal terminal text
KeyboardVimium built in: link hints, tabs, scrollingBasic keys and mouseOwn keys and mouseOwn keys
Works in any terminalBest with Kitty graphics or sixel; ASCII elsewhereYesYesYes

If you want sharp terminal text on any terminal, Carbonyl and Browsh are good choices. Termium is for when you want the page to look like the page.

Known limitations

  • Terminal multiplexers: tmux, screen, and herdr do not work well yet. Run Termium directly in the terminal window.
  • Docker: Chromium's sandbox needs namespaces that Docker's default seccomp profile blocks. Run the container with --security-opt seccomp=unconfined.
  • Text is pixels: page text is part of the image, so you cannot select it as terminal text, and screen readers do not see it.
  • Platforms: no native Windows or Linux ARM64 packages yet.

Documentation

GuideWhat it covers
InstallationOne-command setup, availability, and platform targets
Getting startedOpening pages, typing, dialogs, and quitting
Terminal supportGraphics modes and compatibility
TroubleshootingDisplay issues, startup failures, and bug reports
Vimium and tabsBundled keyboard navigation, tabs, mouse coexistence, and limitations

What's next

  1. Multiplexers: tmux and screen support.
  2. Distribution: Homebrew and AUR packages, more clean-machine testing, automated dependency updates.
  3. Browser polish: persistent browsing sessions, clipboard integration, dark mode that follows your terminal.
  4. Native Windows: add native packages; Windows through WSL2 is supported today.

The installation plan and browser UI plan define the work and release checks. See GitHub Releases for native packages and release notes.

Development

See development for building, testing for the npm test suite and CI coverage, and architecture for the rendering pipeline.

Found a bug? Follow the reporting guide and open an issue. Questions and ideas go in Discussions.

License

MIT. Third-party components retain their own licenses, included with their sources and release packages.

browser
chromium
cli
kitty-graphics
sixel
terminal
vimium

codr1/termium

Chromium in your terminal. Vimium navigation, real tabs, Kitty and sixel graphics, and Mouse keys. Linux and macOS.

Go

11

153 commits

updated Sep 30, 2026

See the code

See what people are saying

SourceMessageScoreDate

Termium: a real Chromium browser in your terminal (Kitty graphics, sixel, Vimium, works over SSH) (r/commandline)

I built Termium: it runs headless Chromium and draws pages in your terminal with the Kitty graphics protocol (Ghostty, Kitty, WezTerm), sixel (foot, xterm, Windows Terminal), or ASCII blocks as a fallback. Vimium is bundled for keyboard navigation: f for link hints, j/k to scroll, t for a new tab.…

29

Sep 30, 2026

README

Termium

Browse the web inside your terminal. Real pages. Real tabs. Your keyboard.

Website · Quickstart · User guides · Installation

Termium in Ghostty: searching YouTube, watching SpaceX boosters land, following Vimium link hints on Hacker News, and the same Steam page in Ghostty, WezTerm, Kitty, foot, xterm and Alacritty
Watch the 70-second demo with sound

Termium renders a real Chromium browser in your terminal, with keyboard and mouse interaction. It draws actual pixels with the Kitty graphics protocol or sixel, and falls back to ASCII graphics anywhere else. It works over SSH, so the browser can run on the machine you are logged into.

Quickstart

Supported platforms: Linux x86-64, macOS (Apple Silicon or Intel), and Windows (WSL2 x86-64).

On Windows, open your WSL2 Linux shell in Windows Terminal (Preview), available from the Microsoft Store. This setup is supported with Sixel graphics. Run the command below inside WSL2.

On Linux and macOS, run it directly in your terminal:

curl -fsSL https://termium.dev/install | bash

Setup downloads Termium, Chromium, and Vimium, verifies them, and opens the browser. No Node, Go, browser installation, or sudo required. In new terminals, the termium command works from any directory.

This is an early release. Linux requires glibc and working Chromium sandbox support; the installer checks compatibility; native Windows and Linux ARM64 packages are not available yet.

See installation for platform requirements, updates, and storage.

Browse

Run termium from any directory, or termium example.com to open a page directly.

  • The welcome page puts the key legend at your fingertips.
  • Press Ctrl+L, type an address, and press Enter.
  • Use the top bar for Back, Forward, Reload/Stop, and Menu.
  • Press f for link hints, j/k to scroll, and ? for Vimium help.
  • Use t, J/K, and x/X to create, switch, close, and reopen tabs.
  • Click a page field to focus it, then type normally.
  • Press F6 for mouse keys; press it again to return to typing.
  • Press Ctrl+Q, then Enter to quit.

Save a custom startup and new-tab page with termium --set-homepage https://example.com.

Read the getting started guide for controls and display options.

Graphics in your terminal

Termium picks the best graphics your terminal offers:

TerminalGraphics
Ghostty, Kitty, WezTermKitty graphics: true color, PNG straight from Chromium
foot, xterm (VT340 mode), Windows TerminalSixel
Anything else, such as AlacrittyASCII graphics with colored blocks

See terminal support for setup notes, including the xterm flags.

Over SSH

Termium runs where you run it. SSH into a Linux machine from a terminal that supports Kitty graphics or sixel, run termium, and the pages render on your screen while Chromium runs on the remote host. A slow connection slows the frame rate, not the page.

How it compares

TermiumCarbonylBrowshLynx, w3m
EngineStock ChromiumPatched ChromiumHeadless FirefoxOwn HTML engine
Images and videoReal pixels (Kitty graphics, sixel), ASCII fallbackColored block charactersColored block charactersNone, or external viewer
TextPart of the rendered imageReal terminal textReal terminal textReal terminal text
KeyboardVimium built in: link hints, tabs, scrollingBasic keys and mouseOwn keys and mouseOwn keys
Works in any terminalBest with Kitty graphics or sixel; ASCII elsewhereYesYesYes

If you want sharp terminal text on any terminal, Carbonyl and Browsh are good choices. Termium is for when you want the page to look like the page.

Known limitations

  • Terminal multiplexers: tmux, screen, and herdr do not work well yet. Run Termium directly in the terminal window.
  • Docker: Chromium's sandbox needs namespaces that Docker's default seccomp profile blocks. Run the container with --security-opt seccomp=unconfined.
  • Text is pixels: page text is part of the image, so you cannot select it as terminal text, and screen readers do not see it.
  • Platforms: no native Windows or Linux ARM64 packages yet.

Documentation

GuideWhat it covers
InstallationOne-command setup, availability, and platform targets
Getting startedOpening pages, typing, dialogs, and quitting
Terminal supportGraphics modes and compatibility
TroubleshootingDisplay issues, startup failures, and bug reports
Vimium and tabsBundled keyboard navigation, tabs, mouse coexistence, and limitations

What's next

  1. Multiplexers: tmux and screen support.
  2. Distribution: Homebrew and AUR packages, more clean-machine testing, automated dependency updates.
  3. Browser polish: persistent browsing sessions, clipboard integration, dark mode that follows your terminal.
  4. Native Windows: add native packages; Windows through WSL2 is supported today.

The installation plan and browser UI plan define the work and release checks. See GitHub Releases for native packages and release notes.

Development

See development for building, testing for the npm test suite and CI coverage, and architecture for the rendering pipeline.

Found a bug? Follow the reporting guide and open an issue. Questions and ideas go in Discussions.

License

MIT. Third-party components retain their own licenses, included with their sources and release packages.

browser
chromium
cli
kitty-graphics
sixel
terminal
vimium

Languages

Go

60.3%

JavaScript

20.5%

TypeScript

11.0%

HTML

3.9%

CSS

2.7%

Shell

1.3%