Skip to main content

A terminal Markdown personal journal and notes tool.

Project description

Pynotes

GitHub Repository

Pynotes is a lightning-fast terminal-based Markdown personal journal and notes tool. It allows you to seamlessly create, read, list, and filter your notes directly from the command line, while storing everything locally in a lightweight SQLite database.

What it Does

  • Create & Edit: Interactively create notes with titles, tags, and Markdown content. Edit existing notes smoothly.
  • List & Filter: View all your notes in a beautifully formatted table or filter them down by specific tags.
  • View Notes: Render your notes with full Markdown syntax highlighting right in your terminal.
  • Local Storage: Keeps all your data secure and accessible on your local machine (~/.pynotes.db).

Project Structure

pynotes/
├── pyproject.toml      # Project metadata and dependencies configuration
├── README.md           # Project documentation and instructions
└── pynotes/            # Main application package
    ├── __init__.py     # Marks the directory as a Python package
    ├── main.py         # Entry point defining the CLI commands using Typer
    ├── db.py           # Handles SQLite database connection and queries
    ├── ui.py           # Manages terminal output rendering using Rich
    └── prompts.py      # Handles interactive user inputs using Questionary

Tech Stack

  • Python 3.10+
  • Typer: For building the powerful command-line interface.
  • Rich: For beautiful terminal formatting, tables, and Markdown rendering.
  • Questionary: For interactive and user-friendly CLI prompts.
  • SQLite3: For local database storage (built-in).

Instructions to Run

1. Installation

From PyPI (Recommended) You can install pynotes directly from PyPI:

pip install pynotes-cli

From Source (For Developers) If you want to modify the code, install it in editable mode:

# Clone the repository and navigate to the directory
git clone https://github.com/senku1505/pynotes.git
cd pynotes

# Install the package and its dependencies
pip install -e .

2. Usage

Once installed, the pynotes command will be globally available in your terminal environment.

Initialize the Database: Initialize your local database at ~/.pynotes.db.

pynotes init

Create a New Note:

pynotes new

Follow the interactive prompts to add your title, tags, and Markdown content. Press Alt+Enter (or Esc then Enter on Mac) to save the content.

List All Notes:

pynotes list

Filter Notes by Tag:

pynotes list --tag <your-tag>

View a Specific Note: View the full rendered Markdown of a note by providing its ID.

pynotes view <note_id>

Edit a Note: Edit the title, tags, or content of an existing note.

pynotes edit <note_id>

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

pynotes_cli-0.1.3.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

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

pynotes_cli-0.1.3-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file pynotes_cli-0.1.3.tar.gz.

File metadata

  • Download URL: pynotes_cli-0.1.3.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for pynotes_cli-0.1.3.tar.gz
Algorithm Hash digest
SHA256 15f2ab802a5671ddb32d87640eef7105bc4026951e98c0ccb9739bfaf6172711
MD5 0e74e11a4b19696ac7543a19173d7f36
BLAKE2b-256 d980e93ce0f5de15c83e582d36810072e5c26fc55081db7d5cc4f8aec1019e51

See more details on using hashes here.

File details

Details for the file pynotes_cli-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pynotes_cli-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for pynotes_cli-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 22da934be3f82804c8018e8abcee922057d20f825cdfba7b6829bffa5c69a16e
MD5 bd4008adba359a7de0221c5bf5d12952
BLAKE2b-256 5d24819c5b703d2635bef49746d0a4d711cece3db41b046149ef17030d8c9f06

See more details on using hashes here.

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