A TUI web browser. Any website, rendered as a pure terminal interface.
- Homepage: Google-style search page (input + Search + I'm Feeling Lucky)
- Search results: real websites, clickable
- Clicking a result: proxied through a Cloudflare Worker that converts HTML → TUI-renderable format
- Usable by humans AND AI agents (it's already text)
j4v (single Rust binary, 3.7MB)
├── TUI mode (default): interactive terminal browser
├── Agent mode (--json): structured output for AI agents
└── Direct mode (--url): fetch + render a specific page
No server, no proxy, no deployment. Just a fast local binary.
- Language: Rust + ratatui (instant startup, zero GC, single binary)
- Search: DuckDuckGo HTML lite (free, no API key)
- Rendering: HTML → strip noise → structured text (headings, paragraphs, links)
# Interactive TUI browser
j4v
# Fetch a page directly
j4v --url https://example.com
# Agent mode: JSON output for AI consumption
j4v --url https://example.com --json{
"title": "Page Title",
"url": "https://example.com",
"elements": [
{"type": "heading", "level": 1, "text": "Welcome"},
{"type": "text", "content": "Some paragraph text..."},
{"type": "link", "text": "Click here", "href": "/page2"},
{"type": "input", "name": "q", "placeholder": "Search..."},
{"type": "button", "text": "Submit", "action": "/search"},
{"type": "list", "items": ["Item 1", "Item 2"]},
{"type": "image", "alt": "Photo description", "src": "..."}
]
}Search: DDG search from homepage✅Browse: Fetch + render page content✅- Agent mode:
--urland--jsonflags for non-interactive use - Better parsing: Handle more HTML elements, word wrapping
- Navigation: Click links within pages, back/forward stack
- Forms: Submit search forms, login forms
- Polish: Loading states, error handling, bookmarks, history
