explaingit

nvim-neorg/neorg

7,302LuaAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A Neovim plugin that turns the keyboard-driven text editor into a full personal organizer for notes, tasks, project tracking, and documents, all using a single custom .norg file format.

Mindmap

mindmap
  root((repo))
    What it does
      Note taking
      Task management
      Time tracking
      Slideshows
    File Format
      .norg files
      Plain text readable
      Cross-file links
    Setup
      Neovim 0.10 plus
      luarocks required
      rocks.nvim recommended
    Community
      Discord
      Zulip
      YouTube tutorials
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

Things people build with this

USE CASE 1

Replace Obsidian or Notion with a fully keyboard-driven note-taking system that lives inside your existing Neovim setup.

USE CASE 2

Manage project tasks and track time spent on work items without leaving the terminal.

USE CASE 3

Write documents or slideshows in the .norg format and keep them version-controlled alongside your code.

Tech stack

LuaNeovimluarocks

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires Neovim 0.10 or newer and luarocks installed on your system before the plugin can be set up.

Licensed under GPL v3, you can use, modify, and distribute it freely, but any software you distribute that includes this code must also be released under GPL v3.

In plain English

Neorg is a plugin for Neovim, a keyboard-driven text editor popular with programmers. The plugin turns Neovim into a full personal organization system: note-taking, task and project management, time tracking, slideshows, and document writing all live inside the same tool. If you are not already a Neovim user, Neorg is not something you would install on its own. Everything in Neorg is built around a single custom file format called .norg. The idea is that you learn one format once and then every feature in Neorg speaks that same language. Notes, tasks, and documents all live in .norg files, so they can reference each other and stay consistent. The format is designed to be readable as plain text even outside of Neovim. Installation is described in the README as slightly more complex than average. You need Neovim version 0.10 or newer, plus a Lua package manager called luarocks on your system. The README covers three plugin managers: rocks.nvim (the recommended path), lazy.nvim, and the now-unmaintained packer.nvim. A kickstart configuration is also available for people who do not have an existing Neovim setup and want to get going without prior configuration knowledge. The project describes itself as stable but young, and warns that breaking changes do appear between versions. Version 9.0.0, for example, introduced changes that affected existing workflows. The README links a blog post explaining what changed, and suggests pinning to a specific version and only updating when you are ready to deal with any adjustments. Neorg is licensed under GPL v3 and has an active community on both Discord and Zulip. The project is written in Lua, which is the standard language for Neovim plugins. A video tutorial series on YouTube and a wiki are available for people who want to go deeper after installation.

Copy-paste prompts

Prompt 1
I just installed Neorg in Neovim with rocks.nvim. Show me the minimal init.lua config to get started and create my first .norg note file.
Prompt 2
In Neorg, how do I create a task list, mark items done, and view all incomplete tasks across multiple .norg files in a project folder?
Prompt 3
I'm upgrading Neorg to version 9. What breaking changes should I expect and how do I migrate my existing .norg files and keybinding config?
Prompt 4
How do I link one .norg note to another in Neorg and navigate between them with keyboard shortcuts?
Open on GitHub → Explain another repo

← nvim-neorg on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.