A terminal web browser. CurlUp uses Chrome to render pages and shows you the text with numbered links.
You need three things: Chrome, ChromeDriver, and Rust.
You probably already have it. If not, download from https://google.com/chrome
ChromeDriver lets CurlUp control Chrome. It must match your Chrome version.
macOS:
brew install chromedriver
# Fix the quarantine warning (required on macOS)
xattr -d com.apple.quarantine $(which chromedriver)Linux (Debian/Ubuntu):
sudo apt install chromium-chromedriverManual install (any OS):
- Check your Chrome version:
Chrome menu > About Google Chrome - Download matching ChromeDriver from https://googlechromelabs.github.io/chrome-for-testing/
- Put it in
~/.local/bin/or somewhere in your PATH
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/envgit clone https://github.com/Rw1942/CurlUp.git
cd CurlUp
cargo build --release# From the project directory:
./target/release/curlup
# Or copy to your PATH for global access:
cp target/release/curlup ~/.local/bin/
curlupcurlup news.ycombinator.comYou should see Hacker News rendered as text with numbered links. Type 1 to follow the first link, b to go back, q to quit.
curlup # Start with site picker
curlup news.ycombinator.com # Go directly to a site
curlup -m medium.com/article # Multi-lens mode (cleaner articles)
curlup -N medium.com/article # Full page (disable auto-condensed)
curlup -v mail.google.com # Visible browser (for login)The command bar shows where b (back) and f (forward) will take you. Type a command and press Enter to execute it.
| Command | What it does |
|---|---|
1-999 |
Follow that link number |
b |
Go back (shows destination) |
f |
Go forward (shows destination) |
t |
Scroll to top of page |
h or 0 |
Return to site picker |
C |
Toggle condensed/reader mode |
r |
Refresh the page |
u |
Show current URL |
q |
Quit CurlUp |
help |
Show help |
google.com |
Navigate to any URL |
Scrolling: Use t to jump to top, or use terminal scrollback (mouse wheel, trackpad, Shift+PageUp/Down).
Example: To follow link 5, type 5 then press Enter. Type b to go back (the footer shows where you'll go).
curlup [OPTIONS] [URL]
-N, --no-condensed Disable condensed mode (show full page for articles)
-m, --multilens Smart extraction for articles
-v, --visible Show the browser window
-u, --user-agent Custom user-agent string
--no-stealth Disable anti-bot measures
--no-focus Show full page including navigation, ads
-h, --help Show help
CurlUp looks for ChromeDriver in:
~/.local/bin/chromedriver- Anywhere in your PATH
Check with:
which chromedriverYour ChromeDriver version must match Chrome. Check your Chrome version (Chrome > About) and download the matching driver from https://googlechromelabs.github.io/chrome-for-testing/
Remove the quarantine flag:
xattr -d com.apple.quarantine $(which chromedriver)Kill any stuck processes and try again:
pkill chromedriver
curlup example.comTry multi-lens mode for cleaner extraction:
curlup -m thesite.comOr use visible mode to see what's happening:
curlup -v thesite.comCondensed mode automatically activates when CurlUp detects article content, extracting just the article using Mozilla's Readability algorithm (same tech behind Firefox Reader View):
- Strips navigation, ads, sidebars, and clutter
- Shows article title, author, and estimated read time
- Preserves links within the article
- Auto-enabled when pages have readable article content
curlup medium.com/@user/some-article # Auto-enters condensed mode
curlup -N medium.com/@user/some-article # Force full page viewPress C while browsing to toggle between condensed and full page view.
Condensed mode works best on:
- News articles (BBC, NYT, Reuters)
- Blog posts (Medium, dev.to, personal blogs)
- Documentation pages
- Wikipedia articles
If a page doesn't have extractable article content, CurlUp will show the full page.
Use -m for articles, blog posts, and documentation. It runs multiple extraction strategies and picks the best result:
- CSS selectors (finds
<article>,<main>, etc.) - DOM traversal (skips nav, footer, sidebars)
- Text density analysis (finds content-heavy blocks)
- ARIA landmarks (uses accessibility markup)
curlup -m medium.com/@user/some-article- News: Hacker News, Google News, BBC, NPR, Reuters
- Tech: GitHub, Ars Technica, TechCrunch, dev.to
- Docs: MDN, Python docs, Read the Docs
- Reference: Wikipedia, IMDb, Merriam-Webster
- Weather: wttr.in (ASCII art preserved)
Needs login (use -v): Gmail, LinkedIn, Medium, Twitter
Blocked: Product Hunt (Cloudflare)
cargo run -- example.com # Run in dev mode
cargo test # Run tests
cargo clippy # LintSee docs/ for architecture details.
Opening Links
Opening pages in Reader mode
MIT
Built with fantoccini, scraper, dom_smoothie (condensed mode), html2text, tokio, clap.
