{"id":13471503,"url":"https://github.com/bensadeh/circumflex","last_synced_at":"2025-04-12T14:12:33.887Z","repository":{"id":37532986,"uuid":"283105657","full_name":"bensadeh/circumflex","owner":"bensadeh","description":"🌿 It's Hacker News in your terminal","archived":false,"fork":false,"pushed_at":"2025-04-05T08:13:58.000Z","size":42451,"stargazers_count":1422,"open_issues_count":13,"forks_count":31,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-05T12:01:36.255Z","etag":null,"topics":["cli","client","command-line","console","hacker","hacker-news","hackernews","news","reader","terminal","tui","ycombinator"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bensadeh.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-28T05:08:10.000Z","updated_at":"2025-04-05T08:14:01.000Z","dependencies_parsed_at":"2023-12-04T08:28:46.491Z","dependency_job_id":"20395a78-a94b-4fbb-a06b-a1db3b70d588","html_url":"https://github.com/bensadeh/circumflex","commit_stats":{"total_commits":2236,"total_committers":7,"mean_commits":"319.42857142857144","dds":0.04338103756708411,"last_synced_commit":"562310101e3733c4f7b38ff97dd535a90aa64c6c"},"previous_names":[],"tags_count":84,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bensadeh%2Fcircumflex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bensadeh%2Fcircumflex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bensadeh%2Fcircumflex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bensadeh%2Fcircumflex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bensadeh","download_url":"https://codeload.github.com/bensadeh/circumflex/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248578862,"owners_count":21127713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","client","command-line","console","hacker","hacker-news","hackernews","news","reader","terminal","tui","ycombinator"],"created_at":"2024-07-31T16:00:45.918Z","updated_at":"2025-04-12T14:12:33.868Z","avatar_url":"https://github.com/bensadeh.png","language":"Go","readme":"\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/clx.png\" width=\"150\" alt=\"circumflex\"/\u003e\n\u003c/p\u003e\n     \n#\n     \n\u003cp align=\"center\"\u003e\n  \u003ccode\u003ecircumflex\u003c/code\u003e is a command line tool for browsing Hacker\u0026nbsp;News in your terminal\n\u003c/p\u003e\n  \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/mainview.png\" width=\"700\" alt=\"^\"/\u003e\n\u003c/p\u003e\n\n\n### Main features\n\n- 🛋 **Everything in one place** — read both the comment section and articles in Reader Mode\n- 🌈 **Syntax highlighting** — syntax-aware formatting for comments and headlines\n- ⚡️ **Read it with `less`** — use the pager you already know for quick and simple navigation \n\n**You might also like:**\n- 🤹 **Native terminal colors** — you bring your own color scheme, `circumflex` does the rest\n- 💎 **Nerd Fonts** — full support for Nerd Fonts as icons  \n- ❤️ **Add to favorites** — save interesting submissions for later\n\n#\n\n### Table of Contents\n\n* [Installing](#installing)\n* [Comment section](#comment-section)\n* [Reader mode](#reader-mode)\n###\n* [Syntax highlighting](#syntax-highlighting)\n* [Nerd Fonts](#nerd-fonts)\n* [History](#history)\n###\n* [Favorites](#favorites)\n* [Settings](#settings)\n* [Keymaps](#keymaps)\n###\n* [Under the hood](#under-the-hood)\n\n***\n\n## Installing\n\nThe binary name for `circumflex` is `clx`.\n\n#### Package managers\n```console\n# Homebrew\nbrew install circumflex\n\n# Nix\nnix-shell -p circumflex\n\n# AUR\nyay -S circumflex\n```\n\n#### From source\n\n```console\n# Go\ngo run main.go\n```\n\n\u003e [!IMPORTANT] \n\u003e When building from source, make sure that you are using the latest version\n\u003e of [`less`](http://greenwoodsoftware.com/less/).\n\n## Comment section\n\n### Overview\n\nPress \u003ckbd\u003eEnter\u003c/kbd\u003e to read the comment section. \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/comment_view.png\" width=\"500\" alt=\"^\"/\u003e\n\u003c/p\u003e\n\nComments are pretty-printed and piped to the\npager `less`. To present a nice and readable comment section, `circumflex` features:\n\n* Rainbow-colored indentation blocks\n* Text formatting in **bold**, _italics_ and `code` where available\n* Labels for Original Posters (`OP`), Parent Posters (`PP`) and moderators (`mod`)\n\n### Navigation\nThe following pair of shortcuts are recommended for browsing and navigating the \ncomment section.\n\n- \u003ckbd\u003ed\u003c/kbd\u003e/\u003ckbd\u003eu\u003c/kbd\u003e to scroll half a screen\n- \u003ckbd\u003ej\u003c/kbd\u003e/\u003ckbd\u003ek\u003c/kbd\u003e to scroll one line at a time \n- \u003ckbd\u003eh\u003c/kbd\u003e/\u003ckbd\u003el\u003c/kbd\u003e to hide and show replies\n- \u003ckbd\u003en\u003c/kbd\u003e/\u003ckbd\u003eN\u003c/kbd\u003e to jump to the next top-level comment\n\n\n## Reader mode\nPress \u003ckbd\u003eSpace\u003c/kbd\u003e to read the submission link in Reader Mode. \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/reader_mode.png\" width=\"500\" alt=\"^\"/\u003e\n\u003c/p\u003e\n\n\u003e [!NOTE]\n\u003e Some websites do not work well with Reader Mode. If the submission URL points to\na domain with known Reader Mode incompatibility, the link cannot be opened in Reader Mode.\n\n## Syntax highlighting\n### Quotes\nQuotes are indented, italicized and dimmed in order to distinguish them from the rest of the comment.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/quotes.png\" width=\"800\" alt=\"^\"/\u003e\n\u003c/p\u003e\n\n### Hacker News and forum idiosyncrasies\n\\`Code snippets\\`, `@username` mentions, `$variables` and `URLs` are highlighted.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/commentSyntax.png\" width=\"700\" alt=\"^\"/\u003e\n\u003c/p\u003e\n\n### References\nReferences on Hacker News are formatted as numbers inside brackets. `circumflex` highlights these numbers\nfor easier cross-referencing.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/linkHighlights.png\" width=\"500\" alt=\"^\"/\u003e\n\u003c/p\u003e\n\n### Categories\nHeadlines containing the text `Ask HN`, `Tell HN`, `Show HN` and `Launch HN` are highlighted.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/showtell.png\" width=\"250\" alt=\"^\"/\u003e\n\u003c/p\u003e\n\n### YC-funded startups\n[Twice a year](https://www.ycombinator.com/companies/), Y Combinator funds start-ups through its accelerator program.\n`circumflex` highlights these startups to signalize their affiliation with YC.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/yc.png\" width=\"350\" alt=\"^\"/\u003e\n\u003c/p\u003e\n\n## Nerd Fonts\n\nIf you have a Nerd Fonts-patched fonts, you can run `clx` with the `-n` or `--nerdfonts` flag.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/nerd-fonts-1.png\" width=\"650\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/nerd-fonts-2.png\" width=\"650\"/\u003e\n\u003c/p\u003e\n\n## History\n### Mark submissions as read\nVisited submissions are marked as read. \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/mark_article_as_read.png\" width=\"800\"/\u003e\n\u003c/p\u003e\n\n### Highlight new comments\nComments that are new since the last visit are highlighted.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/mark_new_comments.png\" width=\"400\"/\u003e\n\u003c/p\u003e\n\n### Disabling history\nA list of submissions (by `ID` and last time visited) are stored in `~/.cache/circumflex/history.json`. Disable marking submissions as read by \nrunning `clx` with the `-d` or `--disable-history` flag.\n\nYou can delete your browsing history from the command line:\n```console\nclx clear\n```\n\n## Favorites\nPress \u003ckbd\u003ef\u003c/kbd\u003e to add the currently highlighted submission to your list of favorites. Remove submissions from the \nFavorites page with \u003ckbd\u003ex\u003c/kbd\u003e.\n\nYou can add any submission by its `ID` from the command line:\n```console\nclx add [id]\n```\n\nFavorites are stored in `~/.config/circumflex/favorites.json`. `circumflex` pretty-prints \n`favorites.json` to make it both human-readable and VCS-friendly.\n\n## Settings\n### Overview\nRun `clx help` or `man clx` for a list of available commands and settings.\n\n### Commands\n\n```console\nadd [ID]      Add item to list of favorites by ID\ncomments [ID] Go directly to the comment section by ID\narticle [ID]  Read the linked article associated with an item based on the ID\nurl [URL]     Open a URL directly in Reader Mode\nclear         Clear the history of visited IDs\n```\n### Flags\n\n```console\n-a, --auto-expand           Automatically expand all replies upon entering\n                              the comment section\n    --categories=[string]   Set the categories in the header\n                              (available: \"top,best,ask,show,new\")\n                              (default:   \"top,best,ask,show\")\n-c, --comment-width=[int]   Set the comment width \n                              (default 70)\n-e, --disable-emojis        Disable conversion of smileys to emojis\n-d, --disable-history       Disable marking stories as read\n-t, --hide-indent           Hide the indentation bar to the left of the reply\n-n, --nerdfonts             Enable Nerd Fonts\n    --no-less-verify        Disable checking less version on startup\n-o, --plain-comments        Disable syntax highlighting for comments\n-p, --plain-headlines       Disable syntax highlighting for headlines\n-v, --version               Print current version\n```\n\n\n## Keymaps\n\nPress \u003ckbd\u003e?\u003c/kbd\u003e/\u003ckbd\u003ei\u003c/kbd\u003e to show a list of available keymaps:\n\n| Key              | Description                     |\n|:-----------------|:--------------------------------|\n| \u003ckbd\u003eEnter\u003c/kbd\u003e | Read comments                   |\n| \u003ckbd\u003eSpace\u003c/kbd\u003e | Read article in Reader Mode     |\n| \u003ckbd\u003er\u003c/kbd\u003e     | Refresh                         |\n| \u003ckbd\u003eTab\u003c/kbd\u003e   | Change category                 |\n| \u003ckbd\u003eo\u003c/kbd\u003e     | Open link to article in browser |\n| \u003ckbd\u003ec\u003c/kbd\u003e     | Open comment section in browser |\n| \u003ckbd\u003ef\u003c/kbd\u003e     | Add to favorites                |\n| \u003ckbd\u003ex\u003c/kbd\u003e     | Remove from favorites           |\n| \u003ckbd\u003eq\u003c/kbd\u003e     | Quit                            |\n\n\n## Under the hood\n\n`circumflex` uses:\n\n* [Bubble Tea](https://github.com/charmbracelet/bubbletea) for the TUI\n* [cobra](https://github.com/spf13/cobra) for the CLI\n* [Algolia's Search API](https://hn.algolia.com/api) for submissions\n* [cheeaun's unofficial Hacker News API](https://github.com/cheeaun/node-hnapi) for comments\n* [`less`](http://greenwoodsoftware.com/less/) for viewing comments and articles\n* [go-term-text](https://github.com/MichaelMure/go-term-text) and [lipgloss](https://github.com/charmbracelet/lipgloss) for text formatting\n* [go-readability](https://github.com/go-shiori/go-readability), [html-to-markdown](https://github.com/JohannesKaufmann/html-to-markdown) \nand [Glamour](https://github.com/charmbracelet/glamour) for formatting\n\nScreenshots use:\n\n* [iTerm2](https://iterm2.com/) for the terminal\n* [Palenight Theme](https://github.com/JonathanSpeek/palenight-iterm2) for the color scheme\n* [JetBrains Mono](https://github.com/JetBrains/JetBrainsMono) for the font\n","funding_links":[],"categories":["Go","Clients","cli","Applications"],"sub_categories":["CLI \u0026 TUI","RSS, News and Weather"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbensadeh%2Fcircumflex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbensadeh%2Fcircumflex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbensadeh%2Fcircumflex/lists"}