Settings

Theme

Show HN: KittyBrowser, I built a web browser in your terminal

github.com

7 points by graiz · 8 comments · 1 min read

Reader

I'm spending more time in the terminal, and with kitty graphics support now in Ghostty and Rex, I thought a real browser in a coding pane might be possible. It is.

kb drives headless Chrome and draws each frame as pixels, so you get the actual page, not a text approximation.

Key features: - Built in Rust, on headless Chrome - Keyboard shortcuts, mouse clicks, scroll, zoom, find, copy - Frames can go through the terminal itself, so it should work over SSH CLI, MCP and an agent skill, so your coding agent drives the same page you're watching

From its own pane, the agent runs things like: > kb https://news.ycombinator.com/

What I learned: the best way to design a CLI for agents is to watch agents use it. Most of the commands exist because an agent got stuck. I ran multiple agent loops where agents would try to use the documentation, get stuck and itterate on the docs.

Note this project needs a terminal with the kitty graphics protocol (Ghostty, kitty, WezTerm, Rex) and Chrome. Tested on macOS; Linux builds but needs testers. Windows PRs welcome.

cargo install --git https://github.com/graiz/kittybrowser kb news.ycombinator.com

MIT licensed. Feedback welcome.

3 threads
nticompass

I know what you mean by "real" browser, but I guess you'd actually call it a "graphical" browser. We already have terminal/CLI browsers like links or lynx.

Also, I'm sure emacs has a web browser.

That being said, a graphical browser in a terminal is pretty neat!

zahlman

This is a neat idea but the whole concept of the Kitty graphics protocol is still strange to me. What does this gain from being in the terminal if it's fully graphical?

  • graizOP

    fully graphical - can run over ssh. So you can connect to a remote server and actually see what a browser session from that machine is viewing. Also helpful if you're running an agent that produces html or PRs, it can then preview it in the terminal for your visual review rather than bumping out to another application.

    Lastly - driving or doing a PR or regression test - I've found that having claude in chrome drive my browser takes over the UX for me as the human, using this keeps coding sessions away from my real broser.

KitsumiTheFox

It does feel a tiny bit disingenuous to say "I built a browser" when you merely wrapped Chrome in a new container.

  • graizOP

    semanticly you're right. But saying I exposed the browser chrome of the chromium headless browser is rather confusing. Edge, Arc, etc all call themselves browsers even when they don't build the rendering engine.

  • cromka

    Isn't it what Edge, Brave, etc. also are?

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection