Skip to content

KitchenEngineer1332/kirim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

kirim

A fast, beautiful terminal web browser written in Rust.
Runs on every Linux distro (and macOS/WSL too).

╭──────────────────────────────────────────────────────────────────────╮
│ ◀  ▶  ↻  │  Example Domain                                    100% │
│ 🔒 example.com/                                                kirim │
├──────────────────────────────────────────────────────────────────────┤
│                                                                     ▐│
│  Example Domain                                                     ▐│
│  ─────────────                                                       │
│                                                                      │
│  This domain is for use in illustrative examples in documents.       │
│  [More information...]                                               │
│                                                                      │
│  ~                                                                   │
│  ~                                                                   │
├──────────────────────────────────────────────────────────────────────┤
│ ✓  https://example.com [1 links]                                     │
│ help │ go │ /find │ add │ vmarks │ list │ =info │ \src │ quit        │
╰──────────────────────────────────────────────────────────────────────╯

Install

Prerequisites

  • Rust 1.75+ (install via rustup)

Build & Install

git clone https://github.com/your-org/kirim
cd kirim
cargo build --release
# Binary at: ./target/release/kirim

# Optional: install globally
cargo install --path .

Single-line install (after cloning)

cargo install --path .

Usage

# Open a URL directly
kirim https://wikipedia.org

# Just launch (opens DuckDuckGo)
kirim

Keyboard shortcuts

Key Action
g / o Open URL bar
Enter (URL bar) Navigate to URL
Esc Cancel input
Tab Focus next link
Shift+Tab Focus previous link
Enter (on link) Follow focused link
0-9 + Enter Jump to link by number
/ k Scroll up
/ j Scroll down
Page Up / - Scroll page up
Space / Page Down Scroll page down
Home Go to top
End Go to bottom
/ [ Go back
/ ] Go forward
r / F5 Reload
/ Search in page
n Next search match
N Previous search match
a Add bookmark
v View bookmarks
l View history
= Page info
\ Toggle HTML source view
h / F1 Show help
q / Ctrl-C Quit
Mouse hover Highlight links
Mouse click Follow link
Mouse scroll Scroll page

Features

  • Full HTTPS support (rustls, no OpenSSL dependency)
  • HTML rendering: headings, paragraphs, links, lists, code, blockquotes, tables, forms
  • Image alt-text placeholders (🖼 [alt text])
  • Definition lists (<dl>/<dt>/<dd>)
  • Keyboard-driven link navigation with numbered links
  • Back / Forward history
  • In-page text search with match counter
  • URL bar with auto-scheme detection
  • DuckDuckGo search fallback (type a query instead of a URL)
  • Form input support (search boxes, submit buttons)
  • Bookmarks (persistent, stored in ~/.config/kirim/bookmarks)
  • Modern dark color theme with scrollbar
  • HTTPS lock indicator in URL bar
  • Loading spinner animation
  • Mouse support (hover, click, scroll)
  • HTML source view
  • Page info overlay
  • Single static binary — no runtime dependencies

Architecture

src/
├── main.rs          Entry point, CLI args
├── browser.rs       Browser state, navigation, history, search, bookmarks
├── renderer.rs      TUI rendering (ratatui + crossterm), modern dark theme
├── html_parser.rs   HTML → RenderedLines (scraper + ego-tree)
├── network.rs       HTTP client (reqwest + rustls)
├── bookmarks.rs     Persistent bookmark storage
└── types.rs         Shared types (RenderedLine, Segment, styles, etc.)

Feel Free to leave a Feedback

About

A Web Browser inside terminal made using rust.

Topics

Resources

Stars

Watchers

Forks

Contributors