2026-04-05 15:51:42 +02:00
2026-04-01 07:50:49 +02:00
2026-04-04 20:36:16 +02:00
2026-04-03 11:30:08 +02:00
2026-04-04 20:36:16 +02:00
2026-03-30 14:12:19 +02:00

Why?

I started journaling and notetaking with Obsidian, but wanted to only use free software. I also tried Logseq and Joplin, but preferred a terminal-based app.

Using my Neovim setup, I explored plugins like neorg, orgmode, and today.nvim. While they offered useful features, none fully met my needs: some lacked external Markdown rendering, some used custom file formats, and some didnt provide a true journal mode. For real-time Markdown rendering from Neovim, I found Vivify, which NoteWrapper relies on.

The goal was a terminal-based interface for accessing vaults and notes using standard Markdown, with minimal extra features. Although it currently works only with Neovim, it is designed as a standalone wrapper that could be adapted for other editors with minimal changes.

How to install

  1. Have installed ncurses, cjson and pkg-config.
  2. Have a supported editor: vim, neovim and nano (for the moment)
  3. Clone the repository.
git clone https://github.com/Totorile1/NoteWrapper.git
  1. Compile the project. If you are on NixOS and have direnv installed, run direnv allow. It will create the nix-shell which will get all the necessary libraries.
cd NoteWrapper
make
  1. configure ./config.json
  2. run the binary notewrapper

Usage

If you want to render with Vivify with the flags -r, --render or with the option in the config file, you must have installed the plugins for your specific editor (for Vim and Neovim)

Editor support

NoteWrapper relies on certain editor features, so not all of its functionality is supported by every editor.

Here are the features that depend on editor support:

  • Bufferless rendering: As soon as you write something in the note (even without saving), it is rendered.
  • Cursor following: The rendered view follows your cursor. For example, if you move to the bottom of a note, the rendered view will also scroll to the bottom.
  • Jump to end on open: Automatically jumps to the end of the file when opening it.

The first two features depend on Vivify's plugin for editors.

Editor Bufferless Cursor Jump to end
Neovim
Vim
Nano

Configuration

Change $/.config/notewrapper/config.json. If it does not exist. On building, it should copy a default config.

What needs to be done (a lot)

  • Add a way to create vaults
  • Add a way to delete vaults
  • Add a way to delete notes
  • Stylisize a bit the TUI
  • Add more options to the config file
  • Search for config.json in other directories such as ~/.config/notewrapper/ and not only this directory
  • Port vivify.vim to nixpkgs
  • Add a way to have vaults in different directories
  • Actually open vivify when opening nvim
  • Write the journaling code (separate files or one big journal files)
  • Adapt createNewNote with journals
  • Automatic backups
  • Add flags for customization
  • Write a good README.md
  • Option to not render and to only open nvim
  • Figure out this vivify issue https://github.com/jannis-baum/Vivify/issues/291
  • Maybe port this to other editors
  • Port to vim
  • Fixe all the small stuff marked //(TODO LATER) in the code
  • Add a way to delete notes
  • Comply with GPL-3 notice (add info about no waranty, etc.)
  • A converter for both type of journals
Languages
C 98.1%
Nix 1.2%
Makefile 0.7%