Skip to main content

A terminal Markdown personal journal and notes tool.

Project description

Pynotes

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.2.tar.gz (4.3 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.2-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pynotes_cli-0.1.2.tar.gz
  • Upload date:
  • Size: 4.3 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.2.tar.gz
Algorithm Hash digest
SHA256 8cda5ab8ec39ac2d505c1dd1fcf3f9223b1e5d9b2f44db05b4903719600e5417
MD5 8e09bcb8fb4d3da11ac432579232f81b
BLAKE2b-256 f2fd4aa5fda9647e0925fb825041f6f9f7eb2ab9135a0dd9b78809dcb8b2a951

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pynotes_cli-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6efb2251e9d3c909d8cb0d2a688eb67ac5a0b0e4c7bc75d2bd0fc8e2c0a8f881
MD5 fb87ed0bf06fb0ff89d7245bd72288d4
BLAKE2b-256 05d7a6f9e8fcf0a0a2f7cfdaef63788f9686c0eec92303aa2c9465df23ffc923

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