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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15f2ab802a5671ddb32d87640eef7105bc4026951e98c0ccb9739bfaf6172711
|
|
| MD5 |
0e74e11a4b19696ac7543a19173d7f36
|
|
| BLAKE2b-256 |
d980e93ce0f5de15c83e582d36810072e5c26fc55081db7d5cc4f8aec1019e51
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22da934be3f82804c8018e8abcee922057d20f825cdfba7b6829bffa5c69a16e
|
|
| MD5 |
bd4008adba359a7de0221c5bf5d12952
|
|
| BLAKE2b-256 |
5d24819c5b703d2635bef49746d0a4d711cece3db41b046149ef17030d8c9f06
|