CLX(1)

πŸ“¦ version 5.0, in nixpkgs unstable

🌸 NAME 🌸

okay bestie, meet circumflex β€” this is the clx manual page, and it’s literally giving β€œHacker News in your terminal” energy. πŸ’–

✨ SYNOPSIS ✨

clx [OPTION]...

clx COMMAND [ARGS]

πŸ’– DESCRIPTION πŸ’–

circumflex lets you browse Hacker News in your terminal. Visit the comment section or read the article in Reader Mode. no cap, it’s a whole vibe. πŸ¦‹

πŸŽ€ KEYBINDINGS πŸŽ€

  • Enter β€” read the comment section. πŸ’¬
  • Space β€” read the article in Reader Mode. πŸ“–
  • r β€” re-fetch submissions for the current category. πŸ”„
  • / β€” search Hacker News. See Search. πŸ”
  • Tab β€” change category (use Shift + Tab to change in the opposite direction). πŸ—‚οΈ
  • o β€” open link to article in browser. See CLX_BROWSER. 🌐
  • c β€” open comment section in browser. πŸ’»
  • f, V β€” add currently highlighted submission to favorites. ⭐
  • x β€” remove currently highlighted submission from favorites. πŸ—‘οΈ
  • u β€” toggle read/unread for the currently highlighted submission. πŸ‘€
  • z β€” toggle the wide (split-pane) layout for the session. See --wide-view. πŸͺŸ
  • j, k β€” move down/up one item. ⬇️⬆️
  • h, l β€” previous/next page. πŸ“„
  • g, G β€” go to the top/bottom of the list. πŸ”πŸ”š
  • i, ? β€” bring up the help screen. ❓
  • q, Esc β€” quit to prompt. πŸšͺ

πŸ’¬ COMMENT SECTION πŸ’¬

The comment section has two interaction modes: read mode and navigate mode. periodt. πŸ’…

πŸ“– Read Mode πŸ“–

The default mode. Scroll through the comment section line by line. 🧚

  • j, k β€” scroll down/up one line. ⬇️⬆️
  • d, u β€” scroll down/up half a page. πŸ“œ
  • Space / f, b β€” page down/up. πŸ“„
  • g, G β€” go to top/bottom. πŸ”πŸ”š
  • n, N β€” jump to next/previous top-level comment. 🧡
  • / β€” search within the comment section. While a search is active, n/N jump between matches. πŸ”
  • h, l β€” collapse/expand one level. πŸͺ—
  • o β€” open link to article in browser. 🌐
  • c β€” open comment section in browser. πŸ’»
  • J, K β€” open the comment section of the next/previous story on the front page. πŸ“°
  • Enter β€” toggle collapse all. 🫣
  • a β€” switch to navigate mode. 🧭
  • Tab β€” open the link selector. j/k step between the links in the comment section; Enter opens the selected link in Reader Mode, and q or Esc walks back. Links to other Hacker News discussions open as comment sections; links that cannot be read in Reader Mode are dimmed and inert. πŸ”—
  • z β€” toggle the wide (split-pane) layout for the session. πŸͺŸ
  • i, ? β€” bring up the help screen. ❓
  • q, Esc β€” go back. ↩️

Jump between individual comments instead of scrolling line by line. it’s giving precision. 🎯

  • j, k β€” next/previous comment. ⬇️⬆️
  • d, u β€” scroll down/up half a page. πŸ“œ
  • Space / f, b β€” page down/up. πŸ“„
  • g, G β€” go to top/bottom. πŸ”πŸ”š
  • n, N β€” jump to next/previous top-level comment. 🧡
  • / β€” search within the comment section. While a search is active, n/N jump between matches. πŸ”
  • h, l β€” collapse/expand current comment. πŸͺ—
  • o β€” open link to article in browser. 🌐
  • c β€” open comment section in browser. πŸ’»
  • J, K β€” open the comment section of the next/previous story on the front page. πŸ“°
  • Enter β€” toggle collapse for current comment. 🫣
  • Tab β€” open the link selector. πŸ”—
  • z β€” toggle the wide (split-pane) layout for the session. πŸͺŸ
  • i, ? β€” bring up the help screen. ❓
  • a, q, Esc β€” switch to read mode. πŸ“–

🌈 READER MODE 🌈

  • j, k β€” scroll down/up one line. ⬇️⬆️
  • d, u β€” scroll down/up half a page. πŸ“œ
  • Space / f, b β€” page down/up. πŸ“„
  • g, G β€” go to top/bottom. πŸ”πŸ”š
  • n, N β€” jump to next/previous section. 🧭
  • / β€” search within the article. While a search is active, n/N jump between matches. πŸ”
  • Enter β€” toggle article images. See --graphics and --show-images-on-open. πŸ–ΌοΈ
  • h, l β€” hide/show article images. πŸ™ˆπŸ¦‹
  • Tab β€” open the link selector. j/k step between the article’s links; Enter follows the selected link in Reader Mode, and q or Esc walks back to the page it was opened from. Links that cannot be read in Reader Mode are dimmed and inert. πŸ”—
  • o β€” open link to article in browser. 🌐
  • c β€” open comment section in browser. πŸ’»
  • J, K β€” open the next/previous story on the front page in Reader Mode. πŸ“°
  • z β€” toggle the wide (split-pane) layout for the session. πŸͺŸ
  • i, ? β€” bring up the help screen. ❓
  • q, Esc β€” go back. ↩️

Press / to search all of Hacker News, powered by Algolia. While searching, the sort and date filters replace the category tabs in the header. iykyk. ✨

  • s β€” toggle sorting between popularity and date. πŸ”€
  • d β€” cycle the date range. πŸ“…
  • r β€” re-run the search with the current filters. πŸ”„
  • Tab β€” leave search and rejoin the category cycle. πŸ—‚οΈ
  • q, Esc β€” leave search. πŸšͺ

πŸ’… OPTIONS πŸ’…

All options can also be set persistently in config.toml (see FILES); flags take precedence over the config file. bestie, the config file is not the boss of the flags. πŸ‘‘

  • -a n, --article-width=n β€” set the article width in Reader Mode to n columns. πŸ“
  • --categories=list β€” set the categories in the header. Available categories: top, best, new, ask, show, jobs, favorites. Separate categories with comma. The first category is the view shown on launch; it appears as the clx logo in the header rather than as a named tab. Default: "top,best,ask,show,favorites". πŸ—‚οΈ
  • -c n, --comment-width=n β€” set the comment width to n columns. πŸ“
  • --graphics=mode β€” set whether article images can be drawn at all. Drawing them requires a terminal that supports the Kitty graphics protocol, such as Ghostty, Kitty or Konsole. auto (the default) asks the terminal and believes the answer; where none comes back, images are shown as a text placeholder and are not even downloaded. always assumes support without asking β€” for terminals that can draw images but whose answer never arrives, such as tmux without allow-passthrough on, or ones clx declines to probe because the question itself misbehaves there. On a terminal that genuinely cannot draw images, forcing it on will print stray escape sequences. never refuses images outright: nothing is drawn, nothing is downloaded, and no escape sequence is sent. Images are scaled to their size on the page and centered. JPEG, PNG, GIF, WebP, AVIF and SVG images are drawn; other formats keep the placeholder. Whether they are shown as soon as an article opens is set separately; see --show-images-on-open. πŸ–ΌοΈ
  • --indent=n β€” set the comment section indent size to n spaces per nesting level. When the requested indent would shrink a comment’s text column below a readable minimum, the indent plateaus and deeper comments share an ancestor’s indent level while the depth-colored bar continues to convey nesting. Default: 1. πŸͺœ
  • -n, --nerdfonts β€” enable Nerd Fonts icons as decorators for some elements (requires a Nerd Font-patched font). Auto-enabled for Ghostty, which embeds Nerd Fonts. 🧚
  • -d, --no-history β€” disable marking stories as read. πŸ™ˆ
  • --pages=n β€” set the number of pages to fetch per category, between 1 and 5. Higher values fetch more stories but increase load time. Only applies to top, new and best. Ask, show and jobs always fetch one page because their story pools are small (~150-200 stories). Default: 3. πŸ“š
  • --show-images-on-open β€” show images as soon as an article opens, rather than waiting for Enter. Off by default, so articles open as text and images are revealed on demand. Has no effect where images cannot be drawn. 🌸
  • -v, --version β€” show the current version of circumflex. 🏷️
  • -w value, --wide-view=value β€” show the comment section and Reader Mode in a pane next to the front page instead of replacing it. Set to always, never, or the minimum terminal width in columns at which the split kicks in. Press z to toggle the split for the current session. Default: 180. πŸͺŸ

πŸ‘‘ COMMANDS πŸ‘‘

  • clx add [ID] β€” add item to list of favorites by ID. ⭐
  • clx article [ID] β€” go directly to Reader Mode for a given item ID without first going through the main view. πŸ“–
  • clx comments [ID] β€” go directly to the comment section for a given item ID without first going through the main view. πŸ’¬
  • clx url [URL] β€” open a URL directly in Reader Mode. πŸ”—
  • clx clear-history β€” clear the history of visited items. 🧹
  • clx default-config β€” generate a starter config file in the config directory. See FILES. πŸ› οΈ
  • clx default-theme β€” generate a starter theme file in the config directory. See FILES. 🎨

πŸ•°οΈ HISTORY πŸ•°οΈ

circumflex tracks which stories you have visited. Visited stories are dimmed in the list. When returning to a comment section, comments posted since your last visit are highlighted with a new-comment indicator. πŸ‘€βœ¨

Use clx clear-history to reset history, or --no-history to turn tracking off entirely. 🧹

⭐ FAVORITES ⭐

Press f to add the currently highlighted submission to your list of favorites. Remove submissions from the Favorites page with x. πŸ’–

The favorites file is TOML, suitable for hand-editing or version control. A favorites.json from versions before 5.0 is migrated automatically and left in place. πŸ“

🌿 ENVIRONMENT 🌿

  • XDG_CONFIG_HOME, XDG_CACHE_HOME β€” override the directories where circumflex stores its config and cache files. See FILES for what lives where. πŸ—‚οΈ
  • CLX_BROWSER β€” command used to open URLs (article links and comment pages). The URL is appended as the final argument. For example, CLX_BROWSER="firefox --new-tab" opens links in a new Firefox tab. When unset, the platform default opener is used (open on macOS, xdg-open on Linux, rundll32 on Windows). 🌐

πŸ“ FILES πŸ“

  • $XDG_CONFIG_HOME/circumflex/config.toml β€” TOML configuration holding persistent defaults for the command-line options. Run clx default-config to write a starter file listing every key with its default value. Flags override values set here. πŸ› οΈ
  • $XDG_CONFIG_HOME/circumflex/theme.toml β€” TOML color theme. Run clx default-theme to write a starter file pre-populated with every key and its default value. Values may be named colors (red, bright_blue, ...), hex strings (#ff8800), or ANSI 256 indices (0-255). Unrecognized values render with no styling. 🎨
  • $XDG_CONFIG_HOME/circumflex/favorites.toml β€” saved favorites. A favorites.json from versions before 5.0 is migrated here automatically. ⭐
  • $XDG_CACHE_HOME/circumflex/history.json β€” IDs of visited stories. πŸ•°οΈ

When the XDG variables are unset, the platform defaults apply: ~/Library/Application Support/circumflex/ and ~/Library/Caches/circumflex/ on macOS; ~/.config/circumflex/ and ~/.cache/circumflex/ on Linux. πŸ“

πŸ’– AUTHOR πŸ’–

This whole thing β€” every keybinding, every flag, every little delight β€” was written by Ben Sadeh. That's the human. Say thank you to the human 🫢


okay bestie, that's the whole page, you made it to the end, we love a completionist queen πŸ‘‘

You're reading the man page for CLX(1) from circumflex 5.0, dated 2026-07-29 β€” that's the source, the version, and the day it was stamped, all in one cute little footer bow πŸŽ€

Now go press some keys, search something, favorite something, and live your best main-character terminal life. ngl I'm a little obsessed with you for reading all of this. periodt πŸ’…βœ¨

πŸ“¦ where this page comes from