KittyBrowser: A Real Web Browser Inside Your Terminal
I kept switching out of my terminal to check a page. So I put the browser in the terminal.
Every time I’m coding, I’m also in a browser. Check the docs. Preview a component. See what an API actually returns. Confirm the page looks right. A terminal is fast and great for text but terrible for things that are built to be visual.
That means constantly jumping out of the terminal, context-switching, losing the thread. If context is king, context switching is hell.
I wanted a browser that lives where I already am.
A browser in a terminal pane
KittyBrowser (kb) is a real web browser that runs inside a terminal pane. Not a text renderer, lynx, or a curl wrapper. A full Chromium engine, rendering actual layouts, fonts, and images, displayed as pixels using the kitty graphics protocol.
You open a URL, you see the page. You can click, scroll, type, zoom, copy. It works in Ghostty, kitty, WezTerm, and Rex. It feels like a browser, it lives in your terminal. It’s weird and awesome.
1
kb https://docs.example.com
The basics are super simple and powerful. Open a page, navigate, preview a local server, ssh browse from another machine. It’s basic but powerful.
Built for coding agents
The more interesting use case is what happens when an AI agent is driving.
Coding agents spend a lot of time flying blind. They write HTML but can’t see it. They call an API but can’t inspect the response. You can’t see it either. Both agents and people are popping over to a browser. KittyBrowser gives them a window to look through.
It’s built with skills, CLI control and MCP’s in mind. There’s a kb ctl command interface and an MCP server so agents can open pages, check for console errors, fill forms, and test flows, all in a pane right next to the code. I’ve been using it in my own agent workflows and it closes a real feedback loop.
The agent can draft a page, or a post. But as a human you want to preview it and edit it. This blog post was written and edited in my terminal but it was done visually in a WYSIWYG editor. Vim and Emacs have their place but visual is often better.
Why Rust
I’ve never written a line of rust but I wanted to play with something where performance was key. I itterated a bit on protocol and over-network performance and scrolling speed. I wanted this to be fast and low-overhead. Rust was the right call. It manages the Chrome instance, handles the graphics protocol encoding, and routes the control interface without getting in the way. It’s also rock solid.
Try it
KittyBrowser is at github.com/graiz/KittyBrowser. It’s MIT licensed, early v0.1, and works on macOS and Linux (Windows via WSL 2). You’ll need a terminal that supports the kitty graphics protocol.

Comments