{"slug": "less", "name": "less", "category": "terminal", "category_name": "Terminal and shell", "description": "", "recommenders": 8, "commenters": 17, "warners": 1, "score": 7.796, "rising": -2.62, "first": "2025-11-11", "latest": "2026-05-14", "why": "I use the piping feature of less to add some interactivity to git-log.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 8, "neutral": 8, "compare": 0, "warn": 1}, "spark": [1, 0, 6, 0, 0, 0, 1, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I use the piping feature of less to add some interactivity to git-log.", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/gwsw/less", "official_url": "https://www.greenwoodsoftware.com/less/", "pricing": "", "aliases": ["less"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 770286864, "item_id": 48142929, "url": "https://news.ycombinator.com/item?id=48142929", "by": "TheDong", "date": "2026-05-14", "stance": "recommend", "quote": "The venerable unix tool \"less\" is on v701", "excerpt": "Only 19? The venerable unix tool \"less\" is on v701 and was probably already over 300 before react was born https://github.com/gwsw/less/releases/tag/v701", "context": "", "use_case": "", "switched_from": "", "story": "New Nginx Exploit"}, {"id": 743570128, "item_id": 46473133, "url": "https://news.ycombinator.com/item?id=46473133", "by": "obezyian", "date": "2026-01-02", "stance": "recommend", "quote": "I use the piping feature of less to add some interactivity to git-log.", "excerpt": "I use the piping feature of less to add some interactivity to git-log. When a commit is \"selected\" (at the top line of the screen), usually after a series of n/N, I can press a shortcut that invokes an action on this commit. Currently, I use it for two things: 1. Running git-show on a commit I'm interested in. The cool thing is that once I quit the git-show's less, I'm back to where I was in git-log's less. They stac", "context": "", "use_case": "Interactive git-log actions", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743537920, "item_id": 46471120, "url": "https://news.ycombinator.com/item?id=46471120", "by": "jsrcout", "date": "2026-01-02", "stance": "recommend", "quote": "I've been using less for years, still learned a few things from the article and comments.", "excerpt": "I've been using less for years, still learned a few things from the article and comments. I used less + PCRE (for pattern highlighting) for many years for detailed code analysis. It was a great way to get \"down in the weeds\" and really explore the code. less' bookmarks were another key microtool in that work.", "context": "", "use_case": "code analysis", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743499088, "item_id": 46468693, "url": "https://news.ycombinator.com/item?id=46468693", "by": "osmsucks", "date": "2026-01-02", "stance": "recommend", "quote": "I use it all the time at work", "excerpt": "I came here to suggest the same! It's incredibly handy and I use it all the time at work: there's a process that runs for a very long time and I can't be sure ahead of time if the output it generates is going to be useful or not, but if it's useful I want to capture it. I usually just pipe it into `less` and then examine the contents once it's done running, and if needed I will use `s` to save it to a file. (I suppos", "context": "", "use_case": "Pager", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743484528, "item_id": 46467783, "url": "https://news.ycombinator.com/item?id=46467783", "by": "jlokier", "date": "2026-01-02", "stance": "recommend", "quote": "I recommend -FX instead of -EX.", "excerpt": "I recommend -FX instead of -EX. They both quit immediately if the output is smaller than the screen size, but -FX does not quit if the output is larger and you jump to the end of a large file, so you can continue to do things like scroll back or search. git uses \"less -FRX\" by default. This is how I learned about -F. (To be pedentic, git uses \"LESS=FRX less\", which accomplishes the same thing.)", "context": "", "use_case": "Terminal pager", "switched_from": "", "story": "Assorted Less(1) Tips"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 764635569, "item_id": 47789723, "url": "https://news.ycombinator.com/item?id=47789723", "by": "da_rob", "date": "2026-04-16", "stance": "warn", "quote": "I needed a pager with better image support than just less -r", "excerpt": "Well-written article! I wish there was some kind of standard to tell CLI apps what features to expect from the system pager, so they can act accordingly \u2026 Right now, apps can talk to the terminal to check for feature support, but all of that falls apart when the output is piped to a pager. (Do we support inline links? ANSI colors? Sixel support??) Shameless plug, specifically regarding Sixel support: I needed a pager", "context": "", "use_case": "", "switched_from": "", "story": "I made a terminal pager"}]}], "who": [], "tags": [], "use_cases": ["terminal pager", "pager", "interactive git-log actions", "code analysis", "viewing files in terminal", "terminal file pager"], "compared": [{"slug": "moor", "name": "moor", "co": 1, "switched_from": 1, "switched_to": 1}, {"slug": "ov", "name": "ov", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "man", "name": "man", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "glow", "name": "glow", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46464120", "title": "Assorted Less(1) Tips", "mentions": 10}, {"url": "https://news.ycombinator.com/item?id=47786164", "title": "I made a terminal pager", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=48138268", "title": "New Nginx Exploit", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47498924", "title": "Log File Viewer for the Terminal", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46056954", "title": "The HTTP Query Method", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=45892191", "title": "The terminal of the future", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1}, "2025-12": {"neutral": 1}, "2026-01": {"recommend": 6, "neutral": 4}, "2026-02": {}, "2026-03": {"neutral": 1}, "2026-04": {"neutral": 2, "warn": 1}, "2026-05": {"recommend": 1}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 770286864, "item_id": 48142929, "url": "https://news.ycombinator.com/item?id=48142929", "by": "TheDong", "date": "2026-05-14", "stance": "recommend", "quote": "The venerable unix tool \"less\" is on v701", "excerpt": "Only 19? The venerable unix tool \"less\" is on v701 and was probably already over 300 before react was born https://github.com/gwsw/less/releases/tag/v701", "context": "", "use_case": "", "switched_from": "", "story": "New Nginx Exploit"}, {"id": 764768644, "item_id": 47798040, "url": "https://news.ycombinator.com/item?id=47798040", "by": "ilyagr", "date": "2026-04-16", "stance": "neutral", "quote": "", "excerpt": "https://github.com/noborus/ov is another pager, in addition to `moor` that somebody else shared.", "context": "", "use_case": "", "switched_from": "", "story": "I made a terminal pager"}, {"id": 764635569, "item_id": 47789723, "url": "https://news.ycombinator.com/item?id=47789723", "by": "da_rob", "date": "2026-04-16", "stance": "warn", "quote": "I needed a pager with better image support than just less -r", "excerpt": "Well-written article! I wish there was some kind of standard to tell CLI apps what features to expect from the system pager, so they can act accordingly \u2026 Right now, apps can talk to the terminal to check for feature support, but all of that falls apart when the output is piped to a pager. (Do we support inline links? ANSI colors? Sixel support??) Shameless plug, specifically regarding Sixel support: I needed a pager", "context": "", "use_case": "", "switched_from": "", "story": "I made a terminal pager"}, {"id": 764607905, "item_id": 47787994, "url": "https://news.ycombinator.com/item?id=47787994", "by": "zeech", "date": "2026-04-15", "stance": "neutral", "quote": "I've since gone back to `less` since it got annoying jumping between systems", "excerpt": "I went looking for a 'new' pager a couple years back and settled on this [0]. I've since gone back to `less` since it got annoying jumping between systems and having different pagers, but when I used it it was quite nice. [0] https://github.com/walles/moor", "context": "", "use_case": "terminal pager", "switched_from": "moor", "story": "I made a terminal pager"}, {"id": 760062497, "item_id": 47503906, "url": "https://news.ycombinator.com/item?id=47503906", "by": "tstack", "date": "2026-03-24", "stance": "neutral", "quote": "", "excerpt": "Yep, I would say the stiffest competition for lnav is the old tools[1]. I would just hope folks could have an open mind and give \"new\" things a chance (although lnav has been on github for 17 years). [1] - https://lnav.org/2013/09/10/competing-with-tail.html", "context": "", "use_case": "", "switched_from": "", "story": "Log File Viewer for the Terminal"}, {"id": 743570128, "item_id": 46473133, "url": "https://news.ycombinator.com/item?id=46473133", "by": "obezyian", "date": "2026-01-02", "stance": "recommend", "quote": "I use the piping feature of less to add some interactivity to git-log.", "excerpt": "I use the piping feature of less to add some interactivity to git-log. When a commit is \"selected\" (at the top line of the screen), usually after a series of n/N, I can press a shortcut that invokes an action on this commit. Currently, I use it for two things: 1. Running git-show on a commit I'm interested in. The cool thing is that once I quit the git-show's less, I'm back to where I was in git-log's less. They stac", "context": "", "use_case": "Interactive git-log actions", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743553424, "item_id": 46472089, "url": "https://news.ycombinator.com/item?id=46472089", "by": "jmholla", "date": "2026-01-02", "stance": "neutral", "quote": "You can disable things like this by setting the environment variable `LESSSECURE` to `1`.", "excerpt": "You can disable things like this by setting the environment variable `LESSSECURE` to `1`. You can also compile `less` without these features [0], but I don't think most distros provide a restricted `less` by default. [0]: https://github.com/gwsw/less/blob/master/README#L67-L70", "context": "", "use_case": "", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743545232, "item_id": 46471577, "url": "https://news.ycombinator.com/item?id=46471577", "by": "somat", "date": "2026-01-02", "stance": "neutral", "quote": "One of the more obscure things OpenBSD man does is provide tags to the pager(less).", "excerpt": "One of the more obscure things OpenBSD man does is provide tags to the pager(less). So you can do things like \":t test\" in man ksh and end up right at that section. However while I think the feature is neat, a clever use of an existing feature, I never use it. I think it is sort of the same as info pages and why the technologically superior solution sort of lost to the stupider simpler man pages. Having a simple unif", "context": "", "use_case": "", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743537920, "item_id": 46471120, "url": "https://news.ycombinator.com/item?id=46471120", "by": "jsrcout", "date": "2026-01-02", "stance": "recommend", "quote": "I've been using less for years, still learned a few things from the article and comments.", "excerpt": "I've been using less for years, still learned a few things from the article and comments. I used less + PCRE (for pattern highlighting) for many years for detailed code analysis. It was a great way to get \"down in the weeds\" and really explore the code. less' bookmarks were another key microtool in that work.", "context": "", "use_case": "code analysis", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743499088, "item_id": 46468693, "url": "https://news.ycombinator.com/item?id=46468693", "by": "osmsucks", "date": "2026-01-02", "stance": "recommend", "quote": "I use it all the time at work", "excerpt": "I came here to suggest the same! It's incredibly handy and I use it all the time at work: there's a process that runs for a very long time and I can't be sure ahead of time if the output it generates is going to be useful or not, but if it's useful I want to capture it. I usually just pipe it into `less` and then examine the contents once it's done running, and if needed I will use `s` to save it to a file. (I suppos", "context": "", "use_case": "Pager", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743484528, "item_id": 46467783, "url": "https://news.ycombinator.com/item?id=46467783", "by": "jlokier", "date": "2026-01-02", "stance": "recommend", "quote": "I recommend -FX instead of -EX.", "excerpt": "I recommend -FX instead of -EX. They both quit immediately if the output is smaller than the screen size, but -FX does not quit if the output is larger and you jump to the end of a large file, so you can continue to do things like scroll back or search. git uses \"less -FRX\" by default. This is how I learned about -F. (To be pedentic, git uses \"LESS=FRX less\", which accomplishes the same thing.)", "context": "", "use_case": "Terminal pager", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743466176, "item_id": 46466636, "url": "https://news.ycombinator.com/item?id=46466636", "by": "lioeters", "date": "2026-01-02", "stance": "neutral", "quote": "", "excerpt": "Oh I see what you mean about glow, that looks like a nice UX improvement - I'm going to try your fork. https://github.com/charmbracelet/glow/compare/master...fragmede:glow:master", "context": "", "use_case": "Pager", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743459377, "item_id": 46466211, "url": "https://news.ycombinator.com/item?id=46466211", "by": "linhns", "date": "2026-01-02", "stance": "recommend", "quote": "I like less", "excerpt": "I like less and found that https://github.com/noborus/ov can be a good modern alternative to it.", "context": "", "use_case": "terminal pager", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743456176, "item_id": 46466011, "url": "https://news.ycombinator.com/item?id=46466011", "by": "jez", "date": "2026-01-02", "stance": "neutral", "quote": "Less can be configured with a ~/.lesskey file", "excerpt": "Less can be configured with a ~/.lesskey file I have a single line in my config[1] which binds s to back-scroll, so that d and s are right next to each other and I can quickly page up/down with one hand. If you\u2019re on macOS, you may not be able to use this unless you install less from Homebrew, or otherwise replace the default less.[2] [1] https://github.com/jez/dotfiles/blob/master/lesskey#L2 [2] https://apple.stacke", "context": "", "use_case": "viewing files in terminal", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 743452304, "item_id": 46465769, "url": "https://news.ycombinator.com/item?id=46465769", "by": "Izkata", "date": "2026-01-02", "stance": "recommend", "quote": "my go-to has been \"less -SEXIER\" for a long time.", "excerpt": "And combined with -E, it'll quit immediately if the output is smaller than the terminal size. ...And combined with some of the other options in the post, my go-to has been \"less -SEXIER\" for a long time. Specifying E twice doesn't seem to do anything except make this easier to remember.", "context": "", "use_case": "Terminal file pager", "switched_from": "", "story": "Assorted Less(1) Tips"}, {"id": 738046113, "item_id": 46127882, "url": "https://news.ycombinator.com/item?id=46127882", "by": "1vuio0pswjnm7", "date": "2025-12-02", "stance": "neutral", "quote": "less is more(1)", "excerpt": "To quickly retrieve an RFC I use a script named \"rfc\". I save RFCs as text files not HTML so I prefer the .txt version echo https://www.ietf.org/rfc/rfc$1.txt|yy025|nc -vv 6f6b 80|yy045|less yy025 makes custom HTTP, more flexible than curl 6f6b is TLS forward proxy yy045 removes chunked encoding less is more(1) For drafts I use a metasearch script +1 for non-paginated results ;;64) #``````````` datatracker shift x=$(", "context": "", "use_case": "terminal pager", "switched_from": "", "story": "The HTTP Query Method"}, {"id": 734334080, "item_id": 45895880, "url": "https://news.ycombinator.com/item?id=45895880", "by": "robot-wrangler", "date": "2025-11-11", "stance": "recommend", "quote": "using less works fine still", "excerpt": "I guess I don't see those as big downsides because I don't think people usually want binary data or quoted strings back from a CLI command, nor do they want column oriented output, nor \"user friendly\" tables. Answering --help with JSON is a good example, how bad is it really if the response is JSON? Well, using less works fine still and you can still grep if you want simple substring search. Wanting a section is prob", "context": "", "use_case": "", "switched_from": "", "story": "The terminal of the future"}]}