Skip to main content

Простая консольная утилита для управления файлами заметок.

Project description

License: MIT Tests

Русский

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

terminal_note-0.9.2.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

terminal_note-0.9.2-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file terminal_note-0.9.2.tar.gz.

File metadata

  • Download URL: terminal_note-0.9.2.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for terminal_note-0.9.2.tar.gz
Algorithm Hash digest
SHA256 3472b7f5220a8935aaac93d9ee02462cb834f8cc9866ecb8fd4a08c51ecd3dea
MD5 65d1b963980e4f7238d9b8e74fba8a2e
BLAKE2b-256 dd66f8968780f892964284b70a9a266f049a61afda43438224d6ae42e9c90d1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for terminal_note-0.9.2.tar.gz:

Publisher: python-publish.yml on belousovsergey56/terminal-note

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file terminal_note-0.9.2-py3-none-any.whl.

File metadata

  • Download URL: terminal_note-0.9.2-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for terminal_note-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 66f40bbd57e2596eb9b4f189bcdd510d5e2e52dd7a6c9f7ee8be68348196d683
MD5 5e29c1bf3578acbf50d51ce7c6b63fcc
BLAKE2b-256 e49bdee3de1d39dac244f3b89bca207ac11eb1ee5e4fd96378b86b7b950c92f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for terminal_note-0.9.2-py3-none-any.whl:

Publisher: python-publish.yml on belousovsergey56/terminal-note

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page