Консольная утилита управления заметками.
  • Python 99.5%
  • Makefile 0.5%
Find a file
2025-08-22 14:10:44 +03:00
.github/workflows Create python-publish.yml 2025-08-05 14:19:38 +03:00
backend добавил обработку слеша в имени файла, если есть / то создаётся директория/директории 2025-08-21 17:03:16 +03:00
tests удалил тесты для методов create и create_on_template из file_handler, создал отдельный файл с тестами без реальной работы с файловой системой 2025-07-15 18:10:08 +03:00
.gitignore инициализация репозитория 2025-06-02 17:51:32 +03:00
.python-version Понизил версию python до 3.11, чтобы можно было использовать на текущем Debian и Ubuntu 24.04 2025-07-28 23:48:15 +03:00
__init__.py добавил в init файл определение корневой директории, для импорта в остальные модули, для согласованности пакетов 2025-06-18 00:39:41 +03:00
LICENSE добавил файл с лицензией в корень проекта 2025-08-05 15:01:25 +03:00
Makefile обновил секцию install 2025-08-04 13:30:51 +03:00
MANIFEST.in добавил точку входа, зависимости и init.py 2025-07-28 23:49:55 +03:00
pyproject.toml обновил версию до 0.10.0 2025-08-21 17:05:42 +03:00
README-ru.md Update README-ru.md 2025-08-08 13:35:51 +03:00
README.md Update README.md 2025-08-22 14:10:44 +03:00
requirements.txt вернул пакет pytest, обновил зависимости 2025-07-29 14:11:17 +03:00
tn добавил точку входа, если вручную собирается проект 2025-07-28 23:51:46 +03:00
uv.lock обновил версию до 0.10.0 2025-08-21 17:05:42 +03:00

License: MIT Tests Publish Python package to PyPI PyPI version

Русский

terminal-note

A console utility for creating and managing notes without leaving the terminal.

Contents

Motivation

I mostly work in the terminal and use tools like nvim, rg, fd, and fzf. For note-taking, I use Obsidian — it stores notes locally in separate .md files, which is very convenient. However, launching Obsidian takes time, and constantly switching between the terminal and a GUI application disrupts my workflow.

To stay inside the terminal, I wrote terminal-note — a utility that allows you to quickly create, search, and manage notes directly from the console.

Features

  • Create notes with one command without opening an editor.
  • Search, open, delete, and read notes using fzf.
  • Notes are saved in Markdown (.md) format.
  • Support for templates and flexible configuration through a config file.
  • Works with a chosen directory — easily integrates with Obsidian.
  • Write notes in your favorite console editor: nvim, micro, and others.

Installation

  1. Install via pip:
pip install terminal-note --user
  1. Verify it works:
tn --help

Usage

  • tn --config or tn -c — open the configuration file.
  • tn "note text" — create a quick note. The file will be named by a template (2025-04-05 15:30:00.md) and saved in the specified directory.
  • tn -o — create or open a note. First, enter the file name, then the editor opens. If the file exists — it is edited; if not — created.
  • tn -d — delete a note. The file is selected for deletion via fzf.
  • tn -r — read a note. The file is selected through fzf and opened in frogmouth (which parses Markdown with navigation support).

Demo

Displaying help

Вызов справки

Editing the config file

Конфиг файл

Inline note creation

inline note

Editing a note

edit

Creating a new note

new note

Deleting a note

delete note

Reading a note

read

Dependencies

  • python >= 3.11
  • iterfzf >= 1.8.0.62.0
  • frogmouth >= 0.9.2

Configuration file

# Storage mode (files only)
storage_mode = "files"

# Path to the directory where notes will be stored.
# The script parses only the $HOME variable. If a special path is needed, specify it fully.
path_to_storage_directory = "$HOME/terminal_note"

# File extension for notes: txt, md (without the dot .md)
file_extension = "md"

# Utility for reading non-md files: bat, cat, less
file_reader = "cat"

# Path to the template file.
path_to_template_note = "$HOME/terminal_note/Templates/template.md"

# Editor to write notes comfortably: vi, vim, nvim, micro, nano, etc.
editor = "vi"

Storage structure

Example storage structure:

➜  ~ tree terminal_note
$HOME/terminal_note/
├── 2025-07-22 22:32:26.md
├── 2025-07-22 22:34:56.md
├── 2025-07-27 00:41:52.md
├── Gurtam
│   ├── 1. Vialon.md
│   ├── 2. Token authentication.md
│   └── 3. Searching elements.md
├── My Book.md
└── Templates
    └── template.md

3 directories, 8 files

Example template (template.md)

---
Creation date:
Modification date:
links:
tags:
---

Ideas

  • Git integration: tn -g will perform pull, add, commit, push.
  • Support storage in a database (not sure yet — as it breaks compatibility with Obsidian).
  • Possibly store inline quick notes in a separate directory for easier searching.