Terminal Browser (t-browser)
A lightweight terminal-based web browser — no mouse, no separate window, just your keyboard. Browse the web from anywhere you can open a terminal.
---
✨ Features
| Category | What it does | |---------------------|-------------| | Browse | Render web pages to plain text with smart content extraction (readability) | | Navigate | j/k scroll, b/f history, Ctrl+L/i list links/images, / search, n/N next/prev match | | Tabs | Ctrl+T new tab, Ctrl+W close tab, next, < prev | | Images | Preview JPG, PNG, GIF, BMP, WebP as ASCII art in the terminal | | Sessions | Save/restore history and tabs across restarts | | Cookies | RFC 6265 compliant, SameSite enforcement, auto-save | | Security | HTML sanitisation, external resource blocking, HSTS, certificate pinning, sanitisation logging | | Proxy | Via config file or environment variable | | Themes | Dark / light with one-key toggle in settings | | Clipboard | Press p in the URL bar to paste from system clipboard | | Web Search | Type a search query in the URL bar — it goes to your search engine | | HTTP/2 | Automatic HTTP/2 with HTTP/1.1 fallback | | Compression | gzip, deflate, and Brotli decompression | | HTTP Caching | ETag / Last-Modified conditional requests (304 Not Modified) + optional client-side TTL | | Retry | Automatic retry of 429 / 502 / 503 / 504 with exponential backoff and Retry-After support | | Cancel Loading | Press Esc to abort a slow page load | | Table Rendering | HTML tables rendered as aligned text grids with borders | | Tab Spinner | Loading tabs show an animated braille spinner in the tab bar | | Status Toasts | Transient notifications in the status bar (e.g. tracking params stripped) | | Link/Image Filter | Type-to-filter inside the links/images modals | | Tracking-Param Stripping | Removes utm, fbclid, gclid, etc. from navigated URLs | | Domain Blocklist | Blocklisted domains (with subdomain matching) are rejected at navigation |
---
🚀 Quick Start
Requirements
- Go 1.24+
- gcc (needed for make test-race on Linux)
Install & Run
# Clone and build
git clone https://github.com/yourusername/t-browser.git
cd t-browser
make build
# Open a website
./t-browser https://example.comMakefile Reference
make build # Compile the binary
make test # Run all tests (verbose)
make test-race # Run tests with the race detector
make coverage # Run tests + print per-function coverage
make coverage-html # Open a browser with the HTML coverage report
make lint # Run go vet (static analysis)
make run URL=… # Build & launch the browser
make tidy # Run go mod tidy
make clean # Remove build artefacts---
⌨️ Keyboard Shortcuts
| Key | Action | |-----------------|---------------------------------| | j / k | Scroll down / up (10 lines) | | h / l | Scroll left / right | | g / G | Go to top / bottom of page | | b / f | Go back / forward in history | | / | Real-time search with highlights | | n / N | Next / previous search match | | i | List all images on the page | | ? | Show help overlay | | Esc | Cancel current page load | | Tab | Switch between content & URL bar | | Ctrl+L | List all links on the page | | Ctrl+T | Open a new tab | | Ctrl+W | Close current tab | | | Switch to next tab | | < | Switch to previous tab | | Ctrl+S | Open settings | | Ctrl+P | Paste URL from clipboard | | q / Ctrl+C | Quit |
Settings Page
The settings page has a two-column layout: categories on the left, settings on the right. A word-wrapping description bar at the top of the right column shows the focused setting's help text.