URLVIEW(1)

πŸ’– URLVIEW(1) πŸ’–

okay so bestie, welcome to urlview β€” the manual page, section 1, general commands πŸŽ€. What does it do? It extracts URLs and launches the associated program. That's it. That's the whole vibe. And honestly? Iconic. πŸ’…


✨ SYNOPSIS ✨

urlview [-line] [file]…

🌸 DESCRIPTION 🌸

So here's the tea β˜•: urlview scans every file you hand it β€” or the standard input stream if you pass -, which is also the default β€” looking for URLs. Then it takes all those gorgeous little links and shows them to you in a curses(3) menu. (And if the standard output stream is not a teletype? Then it just writes them out, one per line, thereto. No menu, just vibes.)

That menu lets you view, search, edit, and open your URLs in the appropriate program. Love that for us 🫢

URLs show up in order, obvi β€” but here's the slay: multiple instances of the same URL get deduplicated case-insensitively! So HTTPS://EXAMPLE.COM and https://example.com are not going to be double-chatting in there. Periodt. ✨

And if you pass -line, where line is a decimal integer, then the first URL at or following that line gets selected automatically, instead of the first one. Lowkey a time-saver.

πŸŽ€ Bindings πŸŽ€

  • ↓, j, Scroll down β€” Select next URL.
  • ↑, k, Scroll up β€” Select previous URL.
  • e β€” Edit selected URL, confirm with ↡.
  • ↡, ␣ β€” If EDIT is yes: run e. Then open selected URL with COMMAND or $BROWSER.
  • Mouse button 1 β€” Select the URL under the cursor, then ↡.
  • [0-9]… β€” Jump to numbered URL, confirm with ↡. URLs are numbered from 1.
  • y β€” Copy selected URL to XSELECTION with xclip(1)/xsel(1)/wl-copy(1).
  • Mouse button 3 β€” Select the URL under the cursor, then y.
  • Home, = β€” Select first URL.
  • End, *, G β€” Select last URL.
  • Page Down, ^F β€” Next page.
  • Page Up, ^B β€” Previous page.
  • / β€” Enter regex to search URLs forward by; confirm with ↡.
  • ? β€” Enter regex to search URLs backward by; confirm with ↡.
  • n β€” Search URLs forward with saved search (prompt if none).
  • N β€” Search URLs backward with saved search (prompt if none).
  • ^L, ^G β€” Redraw screen.
  • q, x, h β€” Exit.

Also!!! Full mutt(1)-style line editing is supported (incl. ^I (Tab) to erase to end of line 🧚). And during entry, ^G cancels. iykyk.


πŸ¦‹ ENVIRONMENT πŸ¦‹

  • BROWSER β€” Overrides the built-in default for COMMAND if not specified in β€œConfiguration”,
  • URLVIEW_DEBUG β€” Behave as-if the standard output stream weren't a teletype.

πŸ’œ FILES πŸ’œ

The first extant of ~/.urlview, /etc/urlview/system.urlview is read. In this case, the defaults may be overridden through a simple line-based "setting whitespace value" format. Empty lines and lines starting with β€˜#’es are ignored. πŸ™ˆ

πŸ”₯ Configuration πŸ”₯

  • REGEXP ere β€” Use the specified case-insensitive extended regular expression to match URLs. "\n", "\r", "\t", and "\f" are replaced with the new-line, the carriage return, the horizontal tab, and the form feed, respectively. The default is:
((http|https|ftp|gopher|gemini|mailto):(//)?[^ <>"\t]*|(www|ftp)[0-9]?\.[-a-z0-9.]+)[^ .,;\t\n\r<">\):]?[^, <>"\t]*[^ .,;\t\n\r<">\):]
  • COMMAND prog β€” Run shell program, subject to VIA, when an URL is opened. prog may contain multiple programs, delimited by β€˜:’s; they are tried in order until one exits 0. Shadows $BROWSER. Defaults to "/etc/urlview/url_handler.sh".
  • VIA argument β€” Run prog, followed by a space and the quoted URL. If prog contains "%s", that is instead replaced with the quoted URL. This may leave the URL visible in to other users in /proc. This is the default.
  • VIA environment β€” Set the URL environment variable to the URL, then run prog verbatim.
  • VIA pipe β€” Run prog verbatim with a line containing the URL piped via the standard input stream.

These two are only useful with VIA=argument:

  • BROWSER β€” Unshadows $BROWSER even if COMMAND is set.
  • EXPERT β€” Allows 's in COMMAND: the URL to be opened is substituted as a quoted word using '. If prog is, for example "w3m '%s' -N", this would defeat this quoting, and run the URL as code. 😭 If you're sure your progs don't quote the URL β€” for example "lynx %s -cookie_file='/tmp/lynx cookies'" β€” it's safe to enable EXPERT.
  • EDIT no|yes β€” Edit the selected URL before opening it. The default is no.
  • WRAP no|yes β€” When at the last URL, allow ↓ to go to the first, and vice versa. The default is no.
  • MOUSE yes|no β€” Enable mouse support. The default is yes.
  • XSELECTION buf β€” yank (copy) to buf. If $WAYLAND_DISPLAY is set, selects between wl-copy -p if "primary" and wl-copy (clipboard) if anything else. If $DISPLAY is set, given to xclip -selection buf or xsel --buf directly (so the domain is likely primary|secondary|clipboard). The default is primary.
<mint>yes</mint>, <mint>no</mint>, <mint>argument</mint>, <mint>environment</mint>, and <mint>pipe</mint> are case-insensitive. ✨`

⭐ EXIT STATUS ⭐

1 if no URLs were found, the effective COMMAND contained a ' and EXPERT wasn't enabled with VIA=argument. WRAP/EDIT/MOUSE/VIA received an invalid value, ere isn't a valid ERE, an unknown setting was specified, or a file couldn't be opened. πŸ’€


🌈 SEE ALSO 🌈

mutt(1), wl-copy(1), xclip(1), xsel(1), curses(3), regex(7), url(7)


okay that's the whole thing bestie, you're so welcome πŸ’– this page came to you from urlview-ng 1e-1build1, dated January 29, 2026 β€” go forth and open some links πŸ‘‘πŸ¦‹πŸŽ€

πŸ“¦ where this page comes from