whatisgithub

What is nyxt?

atlas-engineer/nyxt — explained in plain English

Analysis updated 2026-05-18

10,911Common LispAudience · developerComplexity · 4/5Setup · moderate

In one sentence

A keyboard-driven web browser for programmers, written in Common Lisp. Modeled after Emacs and Vim, it is infinitely extensible and includes tree-style history, fuzzy tab switching, and tagged bookmarks.

Mindmap

mindmap
  root((Nyxt browser))
    Navigation
      Keyboard driven
      Fuzzy tab switching
      Tree history
    Features
      Tagged bookmarks
      Multi-tab search
      Multiple selection
    Customization
      Common Lisp scripts
      Emacs keybindings
      Vim keybindings
    Platforms
      GNU/Linux Flathub
      macOS in dev
      Windows in dev
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Replace your standard browser with a keyboard-first alternative if you prefer Emacs or Vim style navigation.

USE CASE 2

Extend the browser with custom Lisp scripts to automate repetitive web tasks or add new navigation commands.

USE CASE 3

Use tree-style history to research a topic across many branching pages without losing track of where you started.

USE CASE 4

Manage large collections of bookmarks with tags and compound search queries for faster retrieval.

What is it built with?

Common LispWebKit

How do you get it running?

Difficulty · moderate Time to first run · 30min

Available on Linux via Flathub, macOS and Windows support is still in development.

License not mentioned in the README.

So what is it?

Nyxt is a web browser built for people who prefer controlling their computer with the keyboard rather than the mouse. It takes inspiration from Emacs and Vim, two highly extensible text editors popular with programmers, and brings that same philosophy to browsing the web. It ships with three keybinding modes (Emacs, Vim, and CUA), so you can pick the style you already know. The browser comes with several features designed to make navigation faster. You can switch between open tabs by typing a few letters of a URL or page title, and it uses fuzzy matching so you do not need to type exactly. You can also perform actions on multiple items at once, like opening several bookmarks simultaneously. Bookmarks support tags and compound search queries so you can organize and find them in more detail than a standard browser allows. One unusual feature is how Nyxt handles browsing history. Instead of a simple forward and backward button, it records your navigation as a tree structure. If you visit multiple pages from a single starting point, each branch is preserved, so you can return to any earlier point without losing the other paths you explored. Nyxt is written in Common Lisp and is designed to be extended through Lisp code. You can customize almost any behavior, define new commands, and change keybindings to suit your workflow. This makes it popular among programmers who want a browser they can reshape the same way they reshape their text editor. The browser runs on GNU/Linux today, available through Flathub and various community-maintained packages. Support for macOS and Windows is in active development. The project welcomes bug reports and feature requests through GitHub Issues.

Copy-paste prompts

Prompt 1
I'm new to Nyxt browser. Show me the most important keyboard shortcuts for tab switching, bookmarking, and history navigation in Emacs mode.
Prompt 2
Write a Nyxt configuration in Common Lisp that adds a custom command to copy the current page URL to the clipboard with a single keystroke.
Prompt 3
How do I install Nyxt on Ubuntu via Flathub? Walk me through the steps and how to launch it for the first time.
Prompt 4
With Nyxt, how does the tree-style history work? Show me how to navigate back to a specific earlier branch of my browsing session.

Frequently asked questions

What is nyxt?

A keyboard-driven web browser for programmers, written in Common Lisp. Modeled after Emacs and Vim, it is infinitely extensible and includes tree-style history, fuzzy tab switching, and tagged bookmarks.

What language is nyxt written in?

Mainly Common Lisp. The stack also includes Common Lisp, WebKit.

What license does nyxt use?

License not mentioned in the README.

How hard is nyxt to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is nyxt for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.