New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

terminal-notes

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

terminal-notes

A vim-style terminal note-taking application built with React and Ink

latest
npmnpm
Version
0.0.8
Version published
Maintainers
1
Created
Source

terminal-notes

A vim-style terminal note-taking application built with React and Ink. Features a full TUI (Terminal User Interface) with vim keybindings for efficient note management.

Features

  • Full TUI Interface - List view shows all notes with title and preview
  • Vim Keybindings - Navigate and manage notes using familiar vim controls
  • Multiline Notes - Write multi-paragraph notes with full text editing support
  • Priority System - Organize notes with 4 priority levels (high, medium, low, none)
  • Flexible Sorting - Sort by priority or date (ascending/descending)
  • View & Edit Modes - View notes in read-only mode, press Enter to edit
  • Quick Priority Changes - Press 1/2/3/4 in list view to set priority
  • Quick Navigation - Jump to top/bottom, scroll through notes
  • Delete with Confirmation - Safe deletion with dd or confirmation dialog
  • Persistent Storage - All notes saved in ~/.terminal_notes.json
  • Timestamps - Track creation and modification dates
  • Link Management - Attach URLs to notes, view link count, open in browser
  • Cross-Platform - Compatible with Arch Linux and Ubuntu

Install

npm install --global terminal-notes

Or run locally:

npm install
npm run build
npm start

Usage

Launch the app to see all your notes:

terminal-notes

Vim Keybindings

List View (Main Screen)

KeyAction
j / Move down to next note
k / Move up to previous note
gJump to top (first note)
GJump to bottom (last note)
sToggle sort mode (priority ↑/↓, date ↑/↓)
1Set selected note priority to high
2Set selected note priority to medium
3Set selected note priority to low
4Set selected note priority to none
i / aInsert/Add new note
EnterView selected note (read-only)
eEdit selected note directly
ddDelete selected note (quick delete)
q / ESCQuit application

View Mode (Read-Only)

KeyAction
/ Navigate through links (if any)
oOpen selected link in browser
d / DelDelete selected link
EnterSwitch to edit mode
ESCReturn to list

Edit Mode

KeyAction
Switch to title editing
Switch to content editing
/ Navigate cursor left/right in text
TabCycle through priorities (high → medium → low → none)
Ctrl+LAdd a new link to the note
EnterIn title: move to content field. In content: insert new line
Ctrl+SSave note
ESCCancel and return to list

Delete Confirmation

KeyAction
yYes, delete the note
n / ESCNo, cancel deletion

Interface

When you launch the app, you'll see:

Terminal Notes (3) | Sort: Priority ↑

  Welcome to Terminal Notes - This is a vim-style note ta...  1  11/14/2025
  Shopping List - Buy milk, eggs, bread, and c...             2  11/14/2025
  Project Ideas - Build a terminal-based task ...              -  11/14/2025

j/k=↓/↑ | g=top | G=bottom | s=sort | 1/2/3/4=priority | i=insert | Enter=view | e=edit | d=delete | q=quit

The priority is shown on the right (1=high, 2=medium, 3=low, -=none) with color coding.

You can attach URLs to notes for quick reference. Links are displayed with a count indicator (🔗) in the list view.

  • Open a note in edit mode (e or i)
  • Press Ctrl+L to add a link
  • Enter the URL (must start with http:// or https://)
  • Enter an optional title for the link (or leave blank to use the URL)
  • The link will be saved with the note
  • Open a note in view mode (press Enter on a note)
  • If the note has links, they will be displayed at the bottom
  • Use and to navigate through links
  • Press o to open the selected link in your default browser
  • Press d or Del to delete the selected link
  • In list view: Notes with links show a 🔗 indicator with the count
  • In view/edit mode: Links are shown with their title (if provided) and URL
  • Selected links are highlighted for easy navigation

Data Storage

All notes are stored in a JSON file located at:

~/.terminal_notes.json

Each note contains:

  • id - Unique identifier
  • title - Note title
  • content - Note content/body (supports multiline text with newlines)
  • priority - Priority level (high, medium, low, none)
  • links - Array of links with URL and optional title
  • obscured - Boolean flag to hide sensitive content
  • createdAt - Creation timestamp (ISO 8601)
  • updatedAt - Last modification timestamp (ISO 8601)

Development

Build

Compile the JSX source code:

npm run build

Watch Mode

Automatically rebuild on file changes:

npm run dev

Start

Launch the application:

npm start

Testing

Run tests and linters:

npm test

Project Structure

source/
├── app.js                      # Main application logic
├── cli.js                      # CLI entry point
├── storage.js                  # File I/O operations
└── components/
    ├── NoteListView.js         # Main list view with vim controls
    ├── NoteEditor.js           # Create/edit note form
    ├── MultilineInput.js       # Custom multiline text input component
    ├── DeleteConfirmation.js   # Delete confirmation dialog
    └── ThemeSelector.js        # Theme selection component

Technology Stack

  • React 19 - UI component framework
  • Ink 6 - React renderer for interactive CLI applications
  • ink-text-input - Text input component for forms
  • Babel - JSX transpilation
  • Node.js built-in modules - File system operations (fs, path, os)

Why Vim Keybindings?

Vim-style navigation is efficient and keeps your hands on the home row. No need to reach for arrow keys or mouse. If you're familiar with vim, you'll feel right at home!

License

MIT

Keywords

notes

FAQs

Package last updated on 18 Nov 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts