{"slug": "eshell", "name": "Eshell", "category": "terminal", "category_name": "Terminal and shell", "description": "", "recommenders": 4, "commenters": 8, "warners": 2, "score": 2.324, "rising": -1.31, "first": "2025-11-06", "latest": "2026-07-12", "why": "The biggest strength of Eshell, for me, is that I can maintain some sanity in Windows environments", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 2, "compare": 0, "warn": 2}, "spark": [1, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "The biggest strength of Eshell, for me, is that I can maintain some sanity in Windows environments", "kind": "", "icon": true, "domain": null, "github_repo": null, "official_url": "https://www.gnu.org/software/emacs/manual/html_mono/eshell.html", "pricing": "", "aliases": ["Eshell", "eshell", "EShell"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 782124560, "item_id": 48882785, "url": "https://news.ycombinator.com/item?id=48882785", "by": "accelbred", "date": "2026-07-12", "version": null, "stance": "recommend", "quote": "Editing scrollback is possible in eshell, and something I use often.", "excerpt": "Editing scrollback is possible in eshell, and something I use often.", "context": "", "use_case": "Emacs shell", "switched_from": "", "story": "Ghostel.el: Terminal emulator powered by libghostty"}, {"id": 782110912, "item_id": 48881932, "url": "https://news.ycombinator.com/item?id=48881932", "by": "b3n", "date": "2026-07-12", "version": null, "stance": "recommend", "quote": "eshell allows me to manipulate text as I would in any other Emacs buffer.", "excerpt": "Hi dakra! > is there something Ghostel is missing eshell allows me to manipulate text as I would in any other Emacs buffer. If I have a function which wraps a word in quotes, and bind it to a key, I can be confident it will work in eshell like it does anywhere else. It's a real killer feature. If I use evil-mode, or xah-fly-keys, or simply want to use ispell to correct the spelling of a word, it all works. Unfortunat", "context": "Emacs user", "use_case": "Emacs shell", "switched_from": "", "story": "Ghostel.el: Terminal emulator powered by libghostty"}, {"id": 755091600, "item_id": 47193225, "url": "https://news.ycombinator.com/item?id=47193225", "by": "pvdebbe", "date": "2026-02-28", "version": null, "stance": "recommend", "quote": "The biggest strength of Eshell, for me, is that I can maintain some sanity in Windows environments", "excerpt": "The biggest strength of Eshell, for me, is that I can maintain some sanity in Windows environments (with or without WSL). In linuxland, it's a tougher sell. Compared to term-mode and the others, Eshell hacks better and I can fine tune my tab completions. The best thing is that my keybinds integrate better across all emacs modes when I use eshell.", "context": "", "use_case": "shell inside Emacs", "switched_from": "", "story": "Eschewing Zshell for Emacs Shell (2014)"}, {"id": 733415555, "item_id": 45838472, "url": "https://news.ycombinator.com/item?id=45838472", "by": "stebalien", "date": "2025-11-06", "version": null, "stance": "recommend", "quote": "If you want to try eshell, try combining it with EAT", "excerpt": "If you want to try eshell, try combining it with EAT (eat-eshell-mode). > Maybe in my retirement I will end my career by helping to make emacs + EXWM multi threaded. I am guessing that is a daunting project, but it sure would be fulfilling. This isn't fixable with threads, unfortunately. The issue is that: 1. Emacs e.g., launches a process with call-process. This blocks EVERYTHING (including other threads). 2. That p", "context": "", "use_case": "", "switched_from": "", "story": "How I am deeply integrating Emacs"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 755051393, "item_id": 47190712, "url": "https://news.ycombinator.com/item?id=47190712", "by": "kkfx", "date": "2026-02-27", "version": null, "stance": "warn", "quote": "I still can't live on eshell, the issue is \"the terminal\", too many commands are simply uncomfortable to use in eshell", "excerpt": "Personally, while living in Emacs (EXWM), I still can't live on eshell, the issue is \"the terminal\", too many commands are simply uncomfortable to use in eshell while run smoothly in a real terminal. I've also tried some new shells, the one I last more is xonsh, but generally I came back to zsh even if I use in general much less the shell than before thanks to Emacs, the 2D shell. Emacs completion also it's very nice", "context": "lives in Emacs (EXWM)", "use_case": "shell", "switched_from": "", "story": "Eschewing Zshell for Emacs Shell (2014)"}]}], "who": [{"by": "b3n", "context": "Emacs user", "url": "https://news.ycombinator.com/item?id=48881932", "date": "2026-07-12"}], "tags": [], "use_cases": ["emacs shell", "shell inside emacs", "shell in emacs", "shell"], "compared": [{"slug": "eat", "name": "EAT", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "gnu-emacs", "name": "GNU Emacs", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "ghostel", "name": "Ghostel", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "xonsh", "name": "xonsh", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "zsh", "name": "zsh", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=47136612", "title": "Eschewing Zshell for Emacs Shell (2014)", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=48879504", "title": "Ghostel.el: Terminal emulator powered by libghostty", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47525243", "title": "Shell Tricks That Make Life Easier (and Save Your Sanity)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=45832341", "title": "How I am deeply integrating Emacs", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1}, "2025-12": {}, "2026-01": {}, "2026-02": {"warn": 2, "neutral": 1, "recommend": 1}, "2026-03": {"neutral": 1}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"recommend": 2}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 782124560, "item_id": 48882785, "url": "https://news.ycombinator.com/item?id=48882785", "by": "accelbred", "date": "2026-07-12", "version": null, "stance": "recommend", "quote": "Editing scrollback is possible in eshell, and something I use often.", "excerpt": "Editing scrollback is possible in eshell, and something I use often.", "context": "", "use_case": "Emacs shell", "switched_from": "", "story": "Ghostel.el: Terminal emulator powered by libghostty"}, {"id": 782110912, "item_id": 48881932, "url": "https://news.ycombinator.com/item?id=48881932", "by": "b3n", "date": "2026-07-12", "version": null, "stance": "recommend", "quote": "eshell allows me to manipulate text as I would in any other Emacs buffer.", "excerpt": "Hi dakra! > is there something Ghostel is missing eshell allows me to manipulate text as I would in any other Emacs buffer. If I have a function which wraps a word in quotes, and bind it to a key, I can be confident it will work in eshell like it does anywhere else. It's a real killer feature. If I use evil-mode, or xah-fly-keys, or simply want to use ispell to correct the spelling of a word, it all works. Unfortunat", "context": "Emacs user", "use_case": "Emacs shell", "switched_from": "", "story": "Ghostel.el: Terminal emulator powered by libghostty"}, {"id": 760553122, "item_id": 47534570, "url": "https://news.ycombinator.com/item?id=47534570", "by": "thibran", "date": "2026-03-26", "version": null, "stance": "neutral", "quote": "EShell was even my default for some time", "excerpt": "I use the Terminal all the time and write my own CLI tools, but I'm feeling more and more the limits of the current system. With the years I have used almost all available shells (EShell was even my default for some time). Right now my favorite shell is Nushell, but still, it feels dated compare to what is possible on modern computers. > Make a better system, and we'll consider using it. It's on my TODO list, but it ", "context": "", "use_case": "", "switched_from": "", "story": "Shell Tricks That Make Life Easier (and Save Your Sanity)"}, {"id": 755091600, "item_id": 47193225, "url": "https://news.ycombinator.com/item?id=47193225", "by": "pvdebbe", "date": "2026-02-28", "version": null, "stance": "recommend", "quote": "The biggest strength of Eshell, for me, is that I can maintain some sanity in Windows environments", "excerpt": "The biggest strength of Eshell, for me, is that I can maintain some sanity in Windows environments (with or without WSL). In linuxland, it's a tougher sell. Compared to term-mode and the others, Eshell hacks better and I can fine tune my tab completions. The best thing is that my keybinds integrate better across all emacs modes when I use eshell.", "context": "", "use_case": "shell inside Emacs", "switched_from": "", "story": "Eschewing Zshell for Emacs Shell (2014)"}, {"id": 755061155, "item_id": 47191322, "url": "https://news.ycombinator.com/item?id=47191322", "by": "MarsIronPI", "date": "2026-02-27", "version": null, "stance": "neutral", "quote": "all commands run in Eshell have full terminal emulation", "excerpt": "Have you tried Eat[0]? It's a reasonably fast terminal emulator that integrates with Eshell so that all commands run in Eshell have full terminal emulation (but they're still run in the original Eshell buffer, which makes it better than `eshell-visual-commands'). I haven't had any terminal emulation problems since switching to it. [0]: https://codeberg.org/akib/emacs-eat With regards to completion, I use corfu, which", "context": "", "use_case": "shell in Emacs", "switched_from": "", "story": "Eschewing Zshell for Emacs Shell (2014)"}, {"id": 755051681, "item_id": 47190730, "url": "https://news.ycombinator.com/item?id=47190730", "by": "klodolph", "date": "2026-02-27", "version": null, "stance": "warn", "quote": "", "excerpt": "I agree with the assessment about eshell. I use eshell for one thing only\u2014quick terminal sessions in the same directory as the file I'm editing.", "context": "", "use_case": "", "switched_from": "", "story": "Eschewing Zshell for Emacs Shell (2014)"}, {"id": 755051393, "item_id": 47190712, "url": "https://news.ycombinator.com/item?id=47190712", "by": "kkfx", "date": "2026-02-27", "version": null, "stance": "warn", "quote": "I still can't live on eshell, the issue is \"the terminal\", too many commands are simply uncomfortable to use in eshell", "excerpt": "Personally, while living in Emacs (EXWM), I still can't live on eshell, the issue is \"the terminal\", too many commands are simply uncomfortable to use in eshell while run smoothly in a real terminal. I've also tried some new shells, the one I last more is xonsh, but generally I came back to zsh even if I use in general much less the shell than before thanks to Emacs, the 2D shell. Emacs completion also it's very nice", "context": "lives in Emacs (EXWM)", "use_case": "shell", "switched_from": "", "story": "Eschewing Zshell for Emacs Shell (2014)"}, {"id": 733415555, "item_id": 45838472, "url": "https://news.ycombinator.com/item?id=45838472", "by": "stebalien", "date": "2025-11-06", "version": null, "stance": "recommend", "quote": "If you want to try eshell, try combining it with EAT", "excerpt": "If you want to try eshell, try combining it with EAT (eat-eshell-mode). > Maybe in my retirement I will end my career by helping to make emacs + EXWM multi threaded. I am guessing that is a daunting project, but it sure would be fulfilling. This isn't fixable with threads, unfortunately. The issue is that: 1. Emacs e.g., launches a process with call-process. This blocks EVERYTHING (including other threads). 2. That p", "context": "", "use_case": "", "switched_from": "", "story": "How I am deeply integrating Emacs"}]}