Nyxt: The Hacker's Browser

  • Hmm, not sure it's for me (a bit too much hacker) but I'd definitely like a highly customizable, module based browser with a pure shell by default. Something like Visual Studio Code but with less cruft from the get go.

    I've never thought about it until I saw this! Now I'm really irked about there not being a solid, mature browser based on extensibility. Where the base is basically an address bar and history awareness (i.e. back/forward) and even bookmarks is a module, so that you don't even need an integrated solution but can instead rely on e.g. Raindrop.io as your bookmarks manager. Tab management another one, so for example you could have _only_ a powerful vertical tabs mode if that's all you need.

    You know what, it feels like this should have happened 20 years ago and it would be as popular as Vim or Emacs now, but somehow never actually did. It would be the ultimate response to Chrome, Edge, even Firefox feature creep, forcing its developer to commit fully to web renderer excellence (speed, RAM, web standards) and maybe some optional official modules if you want them.

  • Looks like Nyxt, a browser "inspired by Vim", inherits Vim's showstopper bug: Being unusable on many non-US keyboards, at least with the default bindings. The 'switch-buffer-previous' command is bound to C-[, which cannot be pressed e.g. on QWERTZ layouts because the [ character requires AltGr. This is like sending around text files encoded in Windows-1252 and expecting things to just work.

    Sorry folks, but it turns out that the creators of Vi(m) didn't actually invent the ultimate UI paradigm half a century ago. It's bad enough that a text editor that ignores the past few decades of UX research is still in widespread use, but please, for the love of God, stop incorporating that broken paradigm into new products.

    What a pity, because Nyxt looks like a well-designed piece of software otherwise.

  • https://nyxt.atlas.engineer/faq

    > Nyxt is a browser with deeply integrated AI and semantic document tools that work as a second brain to help you process and understand more, more quickly.

    It'd be nice if they elaborated on what this “integrated A.I.” thing actually is in that or another FAQ entry.

  • This looks like my type of browser. I currently rely heavily on the vimium chrome extension.

    Does this support profiles by any chance? I currently use chrome profiles to separate work and personal

    Looking forward to giving it a spin

  • Did a quick run with it and turned on vi mode from the settings menu.

    The first thing I found awkward about it is that prompt fields are always initiated in normal mode. So if you want to execute a command with : or interact with an element using f, you have to manually activate insert mode first before being able to enter text into the prompt.

    I'm sure there's a way to change this since the entire thing is in Lisp, but it sure is an odd default.

  • I've always thought of developing a Hacker's browser. One where there are no restrictions of what it can do. For example, you can't write a chrome extension to spoof the Referrer header on requests. The Chrome browser is more locked down than you think.

  • You know what would be cool, if you could use unix cli tools in the browser. Press control+<space>, a small console box shows up and run:

    |grep ...|awk ...

    And the text of the document gets processed. But if you want to mess with the dom you could:

    Html.Body | sed ... | jq ...

  • Never in my life have I been excited about a browser, until now!

  • Since we are on the topic of hackers browsers, does anyone know if Firefox can be made to split pane (both for seeing the same page side by side and also doing it for two different pages)? Having done that with file browsers and IDEs, I wonder how come it wasn't a main feature? Nobody needed to compare pages side by side?

  • For those wondering whether this is a new browser engine, the FAQ says:

    "Nyxt is web engine agnostic. We utilize a minimal API to interface to any web engine. This makes us flexible and resilient to changes in the web landscape. Currently, we support WebKit and WebEngine (experimental (Blink))."

    tl;dr; no. It's just another browser UI, albeit a very different one.

  • I just want a WebKit-based browser where everything can be controlled by a prominent LLM prompt box. No more clicking through constantly changing menus or trying to remember rarely-used vim shortcuts, just tell it what you want to do. Bonus if it supports continuous voice input.

  • Can it spoof the user agent? Unfortunately browsing a site with a strange browser can often get you treated like a second or even third class citizen.

  • Does it do regex search? I so often need to do a foo|bar in a page.

    Back in the days, before Firefox switched to the Google Chrome model of extensions, there used to be a really nice advanced search addon. Nicely integrated into the UI.

  • This looks like a modern browser UI with an embedded cli that uses the page as a database!

    Genius! I’ll be trying it out

  • Looking forward to the MacOs version! I'm currently using Vivaldi and it frustrates me on a daily basis how unfeatureful, unextendable and buggy it is.

    My ideal browser would be

    - chromium-based [optional] - willing to forgo this if (1) it has a lot of features built-in, or (2) it is extendable in a language like `lua`.

    - tree view of tabs

    - vim keybindings

    - splits, moving windows to new tabs and back

    - file-based configuration

    - [optional] history sync (i'm fine with using my own cloud provider like icloud/dropbox)

    - renaming tabs and windows

    - remote control server (so i can interact with it from hammerspoon/alfred, eg: open the tab that is a local file with .pdf extension and refresh it (for asciidoctor/latex development))

    - pdf preview

    - adblocker

    - redirecting urls, eg reddit.com -> old.reddit.com

    - automatic dark mode

    - modifying js and css of websites (eg removing toolbar on SO)

    - command line

    - smooth scrolling

    - [optional] chromium print preview

    - [optional] reader mode

    - [optional] vim mode for text input

    - [optional] easy integration with text-to-speech that is keyboard controlled

  • Really like the idea of a tree-based browsing history. It is more in tune with the graph-traversal nature of browsing the internet, and could be extremely useful for people who conducts extensive reading or research on the internet. Honestly feel like this should be an option for more web browsers as an alternative to the 1D, flat structure of tabs.

  • I had a period where I used uzbl(it died simply because of the constant problems with webkit-gtk) and I tried to use qutebrowser after vimperator became unusable, but from a feature perspective this looks fantastic.

    They added support for things such as keepassxc. It has nice defaults.

    But they really went ALL IN with the lisp here. For some people that's a plus, but it seems a lot more unapproachable than emacs configuration to me.

    I think that will ultimately hurt its adoption and unfortunately these things thrive on the size of the active community.

    EDIT: part of that is also lack of practical documentation. They have documented a lot about nyxt, but there is very little practical documentation

  • I’ve always assumed the major browsers had all sorts of security stuff going on behind the scenes, and using a small alternative like this (or suckless surf) was just asking for trouble. But, I don’t have any real knowledge about security stuff.

    How misinformed is my take? Are these kinds of browsers OK? I’d like something light, if possible.

  • I'm a qutebrowser user and I really have been rolling it around in my head to check this out and switch to it. My main issue with it is that I develop userscripts for qutebrowser (not greasemonkey scripts, qutebrowsers version of extensions) and the lisp only thing in nyxt bugs me. I like lisp, but I'm stronger in other scripting languages. The benefit is of course i would not be limited at all to functionality because any part of nyxt can be modified.

    It seems like an absolutely fantastic project and I shall see if I want to invest in the effort it takes to move.

  • I personally use Orion Browser (macOS) and Homerow (macOS) and it gets me in a similar situation, without the buffer stuff, and with a more traditional setup. I can recommend that if you're looking for an alternative.

  • Really cool. Looks like it supports a good mix of emacs and vim bindings.

  • Wasn't this just posted last week? And recently before that as well?

    I remember checking it out, being disappointed about its not-great availability for MacOS, and thinking that I should learn lisp.

  • Awesome project! From the website I wasn't quite able to tell where exactly and how AI comes into play. I think apart from fuzzy searching headings a semantic search functionality for the whole text would be a really nice default feature. I implemented frontend-only semantic search with transformers.js here: geo.rocks/semanticfinder. The implementation is very straightforward and it would be easy to integrate in the browser, maybe as a plugin or similar.

  • One thing that stopped me from using it is unable to sync history.

    Is someone familiar with how hard it would be to use the hook system to allow it to sync with e.g. firefox android?

  • In terms of fingerprinting/bot detection, is it flagged as suspicious/automated browser?

    it would be interesting to have a customizable browser for undetectable automation

  • Cool stuff. We all need to escape the oligopoly of Chrome and Safari. Consider making a build for Android and consider inserting a JS polyfill layer that could stub any weird API with an extension, without rebuilding the browser (side effect: it's an ultimate adblock solution).

  • No need for a separate browser to do all that - all the features exist as firefox extensions.

  • Why is the only Mac option a non-default, local repo-based Macports installation? What's wrong with a binary or a port that is actually listed in Macports? Isn't that the whole point of Macports?

  • This looks like it could become a powerful web crawler with relative ease.

  • Previously: https://news.ycombinator.com/item?id=28623720

  • > we select and close all buffers

    Why would you call tabs "buffers"? It's not a text editor. (And that barely makes sense for a text editor anyway.)

  • This looks really good, will be trying it out. Looks like they wrote their own rendering code as well? Or are they using some other rendering engine?

  • not for mac sadly...

  • Lisp programmability. I love this already.

  • Still using big tech c++ diareha of webkit(apple) or blink(google).

    Please, do acknowledge this is nearly pointless.

    Stop coding that please: first thing first, namely code a web engine in a plain and simple language (like C89+ with bits of c99/c11) and not using that any grotesque and absurd language syntax like c++... even though the core of the issue is the web itself.

  • The main thing I miss in these vi-like browsers is a tab tree sidebar like Sidebery.

  • Plans to bring on Android?

  • No support for Windows, really? That's unfortunate.

  • Can it be run on a server?

  • Nyxt: The Emacs Superfan’s Browser

    FTFY.

  • [dead]

  • It's not what I expected from their webpage, I think their Github explains it better -

    Nyxt [nýkst] is a keyboard-driven web browser designed for power users. Inspired by Emacs and Vim, it has familiar keybindings (Emacs, vi, CUA), and is infinitely extensible in Lisp.

    It's not for the OSINT community, is how I'd read it.