
You already live in the terminal. Every time you open a notes app just to jot one thing, you break the flow of whatever you were doing. Terminal note-taking apps solve that: capture the note where your hands already are, sync it to disk as plain text, and never load a GUI you don’t need. We tested seven of the best terminal note-taking apps on Linux, macOS, and Windows to find the ones that actually stick.
What to look for in a terminal note-taking app
Plain text storage. Notes should live as Markdown or plain text files. If a tool locks you into a proprietary DB, you gave up the whole point.
Fast capture. The best tools take a note in a single keystroke. Anything that forces you to open a menu is competing with a GUI you already dismissed.
Search that works. Fuzzy-find across every note, ideally with content matches and fast enough to feel instant on 5000 notes.
Extensibility. Hooks or plugins so you can pipe notes into git, sync to cloud storage, or connect to a GUI app like Obsidian for the times you need it.
Cross-platform behaviour. Any tool that only runs on macOS or only runs on Linux limits future you.
Sync-friendly. Storage layout that plays well with git, Syncthing, or iCloud without conflicts.
Quick comparison
| App | Best for | Platforms | Price | Standout |
|---|---|---|---|---|
| nb | All-in-one CLI + TUI | macOS, Linux, Windows | Free, open-source | Bookmarks, tasks, and encrypted notes in one tool |
| jrnl | Journal-style capture | macOS, Linux, Windows | Free, open-source | Human-friendly date parsing |
| Obsidian CLI | Bridge to Obsidian vaults | macOS, Linux, Windows | Free with Obsidian | Direct writes to your existing vault |
| Neorg | Neovim-native note system | macOS, Linux, Windows | Free, open-source | Structured Lua-driven workspaces |
| VimWiki | Wiki inside Vim | macOS, Linux, Windows | Free, open-source | Old-school reliable, huge community |
| Emacs Org mode | The most powerful outliner ever | macOS, Linux, Windows | Free, open-source | Tables, tasks, agenda, literate config |
| zk | Zettelkasten from the command line | macOS, Linux, Windows | Free, open-source | Note linking with SQLite index |
The 7 best terminal note-taking apps for desktop
1. nb, best all-in-one CLI + TUI note-taking tool
nb is a single-file Bash script that behaves like a personal wiki, task list, journal, and bookmark manager. It stores everything as plain Markdown in a git-tracked notebook, supports encrypted notes via GPG, and can also render a TUI for browsing. It plays nicely with your editor of choice; open a note in Neovim or nano with a single flag.
Where it falls short: Bash-only means Windows needs WSL or Git Bash. TUI is functional but not gorgeous. The learning curve is short but real; there are a lot of subcommands.
Pricing:
- Free: Fully free, open-source, MIT licensed
- Paid: None
Platforms: macOS, Linux, Windows (via WSL or Git Bash)
Download: xwmx.github.io/nb · Homebrew
Bottom line: Pick nb if you want one tool that captures notes, tasks, and bookmarks. Skip it if you avoid bash-based tooling on principle.
2. jrnl, best for journal-style capture
jrnl is the tool to use when you want a friction-free daily log. Run jrnl yesterday I finished the migration. and it stores that entry with today’s date. Search with plain English (jrnl -from "last week"), tag entries with @ prefixes, and export to Markdown, JSON, or YAML. Optional encryption keeps entries private.
Where it falls short: Not a general-purpose notes tool; it’s built for chronological journaling. Search is date and tag based, not full semantic. No wiki-style linking.
Pricing:
- Free: Fully free, GPL licensed
- Paid: None
Platforms: macOS, Linux, Windows
Download: jrnl.sh · pip / Homebrew
Bottom line: Pick jrnl if the note-taking you actually want is a diary. Skip it if you need cross-linking or hierarchical structure.
3. Obsidian CLI, best bridge to an Obsidian vault
Obsidian CLI (community tools like obsidian-cli, oc, or oink) writes to your existing Obsidian vault from the terminal. Capture a note, append to today’s daily note, or search your vault without ever opening the app. Because Obsidian vaults are just Markdown folders, any CLI that follows the same file layout works.
Where it falls short: Doesn’t replace Obsidian; it depends on you already having a vault set up. Community tooling means you pick between competing CLIs. Some link syntax quirks need care.
Pricing:
- Free: The CLI tools are free. Obsidian itself is free for personal use
- Paid: Obsidian Sync at around $10/month for cloud sync, optional
Platforms: macOS, Linux, Windows
Download: obsidian.md · github.com/Yakitrak/obsidian-cli
Bottom line: Pick an Obsidian CLI if you already invested in an Obsidian vault. Skip it if you don’t use Obsidian and want a full standalone tool.
4. Neorg, best Neovim-native note system
Neorg ships as a Neovim plugin and organises notes into workspaces described by Lua. Norg syntax feels close to org-mode but designed for treesitter, so highlighting and folding are fast. Task management, TODOs, and dates live inside the same syntax. Because it’s Neovim-native, keybindings match everything else you use.
Where it falls short: Requires Neovim 0.10+ and treesitter. Norg is not Markdown, so notes don’t render cleanly in generic Markdown viewers. Ecosystem is small.
Pricing:
- Free: Fully free, open-source
- Paid: None
Platforms: macOS, Linux, Windows (via Neovim)
Download: github.com/nvim-neorg/neorg
Bottom line: Pick Neorg if you live in Neovim and want a native note experience. Skip it if you want notes readable in any Markdown editor.
5. VimWiki, best classic wiki inside Vim
VimWiki turns any Vim install into a personal wiki. It handles internal links, a diary, TODO lists, and tag search. The plugin has been around since 2008 and works with Vim, Neovim, and many Vim clones. Notes are stored as plain text (with a custom syntax by default, or Markdown if you configure it).
Where it falls short: Default syntax is Vim-specific, so switching to Markdown mode requires config. Interface is text-only; no graph views. Not as actively updated as Neorg.
Pricing:
- Free: Fully free, MIT licensed
- Paid: None
Platforms: macOS, Linux, Windows
Download: github.com/vimwiki/vimwiki
Bottom line: Pick VimWiki if you use Vim and want a proven, low-maintenance wiki tool. Skip it if treesitter-driven speed matters more than compatibility.
6. Emacs Org mode, best for the most powerful outliner ever
Emacs Org mode is the tool other note-taking systems keep chasing. Hierarchical outlines, agenda views, task states, tables that compute like a spreadsheet, and literate configuration for your whole system. Twenty-plus years of active development mean there is a package for almost anything you’d want.
Where it falls short: You need to learn Emacs first, which is a real commitment. Configuration is where most users spend their first 40 hours. Feels overkill for a five-line note.
Pricing:
- Free: Fully free, GPL licensed
- Paid: None
Platforms: macOS, Linux, Windows
Download: orgmode.org · gnu.org/software/emacs
Bottom line: Pick Org mode if you’re ready to invest in Emacs and want the most flexible notes system ever built. Skip it if that investment sounds exhausting.
7. zk, best for Zettelkasten from the command line
zk is a Zettelkasten-flavoured note manager written in Go. It stores Markdown files with YAML frontmatter, indexes them into SQLite for fast queries, and supports fuzzy note picking through fzf. Bidirectional links, tags, and templates make it easy to grow a linked notes graph over time.
Where it falls short: Focused on Zettelkasten workflow; not ideal for one-off scratch notes. Requires fzf for the best experience. No TUI or GUI; you compose in your editor.
Pricing:
- Free: Fully free, GPL licensed
- Paid: None
Platforms: macOS, Linux, Windows
Download: github.com/zk-org/zk · Homebrew
Bottom line: Pick zk if you want a Zettelkasten CLI with fast search across thousands of notes. Skip it if you don’t care about note linking.
How to pick the right one
If you want the simplest option: jrnl. One command, done.
If you already use Obsidian: an Obsidian CLI so you don’t reinvent the wheel.
If you live in Neovim: Neorg for native integration, or VimWiki if you want proven stability.
If you live in Emacs: Org mode without question.
If you want an all-in-one CLI tool that stands alone: nb.
If you want Zettelkasten linking with fast search: zk.
FAQ
What is the best terminal note-taking app for beginners? jrnl is the easiest to start with; you can be capturing notes in under a minute. nb has more features but a small learning curve.
Can I use these apps offline? Every app on this list stores notes as local plain-text files. All work fully offline. Any sync is opt-in via git, Syncthing, or a cloud folder.
Do any of these sync across devices? None sync directly. All work with git for versioning and sync, and any of them can live in a folder synced by Dropbox, iCloud, Syncthing, or Nextcloud. Obsidian CLI can piggyback on Obsidian Sync if you pay for it.
Which is the fastest for capturing a note?
jrnl for a one-line diary entry. nb nb add "..." for a quick capture into a specific notebook. Both take a note in under a second.
Do these work on Windows? All seven work on Windows. nb needs WSL or Git Bash. Emacs, Neovim tools, and Go binaries run natively.
What’s the best terminal notes app for Zettelkasten? zk is purpose-built for Zettelkasten. Org-roam (an Org mode extension) is the strongest Emacs alternative. nb supports linking but is not Zettelkasten-first.