GPGNotes - A CLI note-taking tool with GPG encryption, tagging, and Git sync
Project description
GPGNotes
A CLI note-taking tool with GPG encryption, automatic tagging, full-text search, and Git synchronization.
Features
- Markdown Notes - Write notes in plain markdown with YAML frontmatter
- GPG Encryption - Every note is encrypted individually with GPG
- Full-Text Search - Fast SQLite FTS5-powered search across all notes
- Auto-Tagging - Intelligent tag generation using TF-IDF
- Git Sync - Automatic synchronization with private GitHub repositories
- AI Enhancement - Optional LLM-powered note refinement (docs)
- Import/Export - Support for PDF, DOCX, RTF formats (docs)
Installation
Prerequisites
- Python 3.11 or higher
- GPG (GnuPG) installed on your system
- Linux:
sudo apt install gnupg(Debian/Ubuntu) - macOS:
brew install gnupg
- Linux:
Install from PyPI
pip install gpgnotes
With optional dependencies:
pip install gpgnotes[llm] # AI enhancement
pip install gpgnotes[import] # PDF/DOCX import/export
Install from source
git clone https://github.com/oscarvalenzuelab/GPGNotes.git
cd GPGNotes
pip install -e .
Quick Start
1. Initialize
notes init
This guides you through:
- Selecting a GPG key
- Testing encryption
- Configuring your editor
- Setting up Git sync (optional)
Don't have a GPG key? Create one:
gpg --full-generate-key
2. Create a note
notes new "My First Note"
3. Search and manage
notes search "keyword"
notes list
notes open <note-id>
notes sync
Command Reference
| Command | Description |
|---|---|
notes new "Title" |
Create a new note |
notes list |
List all notes |
notes list --preview |
List with content preview |
notes recent |
Show 5 most recent notes |
notes search "query" |
Full-text search |
notes search --tag work |
Search by tag |
notes open <id> |
Open note by ID |
notes open "title" |
Open by title (fuzzy match) |
notes open --last |
Open most recent note |
notes tags |
List all tags |
notes delete <id> |
Delete a note |
notes sync |
Sync with Git |
notes config --show |
Show configuration |
notes enhance <id> |
AI enhancement (docs) |
notes import file.pdf |
Import file (docs) |
notes export <id> |
Export note (docs) |
Interactive Mode
Run notes without arguments for interactive mode with:
- Tab completion for note titles
- Command history (Up/Down arrows)
- Quick search by typing
Security
- GPG Encryption: All notes encrypted with AES256
- Local-first: Your data stays on your machine
- Private repos: Git sync for private repositories only
- Encrypted secrets: API keys stored with GPG encryption
Documentation
License
Apache License 2.0 - see LICENSE for details.
Note: This is an early release. Always backup your notes!
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 gpgnotes-0.1.12.tar.gz.
File metadata
- Download URL: gpgnotes-0.1.12.tar.gz
- Upload date:
- Size: 43.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
beb466a444ecd3d7650e640b6155d8615a4e55fa39aca8291c7b3ae6bb214722
|
|
| MD5 |
6876fd3e38abffcb56cf59c8438ac831
|
|
| BLAKE2b-256 |
0cdbf37600dd5a92a399b0a24a72eb7b460f4adab08416f4ad1fef3fb6da0fac
|
Provenance
The following attestation bundles were made for gpgnotes-0.1.12.tar.gz:
Publisher:
publish.yml on oscarvalenzuelab/GPGNotes
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gpgnotes-0.1.12.tar.gz -
Subject digest:
beb466a444ecd3d7650e640b6155d8615a4e55fa39aca8291c7b3ae6bb214722 - Sigstore transparency entry: 768300839
- Sigstore integration time:
-
Permalink:
oscarvalenzuelab/GPGNotes@1f8f6e37370813e01242c2f0f23c1043c694d87e -
Branch / Tag:
refs/tags/v0.1.12 - Owner: https://github.com/oscarvalenzuelab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1f8f6e37370813e01242c2f0f23c1043c694d87e -
Trigger Event:
release
-
Statement type:
File details
Details for the file gpgnotes-0.1.12-py3-none-any.whl.
File metadata
- Download URL: gpgnotes-0.1.12-py3-none-any.whl
- Upload date:
- Size: 43.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f71ece08bcb6f4227876c085efb121cb5a598ebbaaa63aabd87d6a390bb8b66
|
|
| MD5 |
8aec62450804e442649272abe66566d7
|
|
| BLAKE2b-256 |
ea00e6aa9d760f09ecb2c542921beb96ff2eddffe991debc6c681dcf3263d7a3
|
Provenance
The following attestation bundles were made for gpgnotes-0.1.12-py3-none-any.whl:
Publisher:
publish.yml on oscarvalenzuelab/GPGNotes
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gpgnotes-0.1.12-py3-none-any.whl -
Subject digest:
8f71ece08bcb6f4227876c085efb121cb5a598ebbaaa63aabd87d6a390bb8b66 - Sigstore transparency entry: 768300840
- Sigstore integration time:
-
Permalink:
oscarvalenzuelab/GPGNotes@1f8f6e37370813e01242c2f0f23c1043c694d87e -
Branch / Tag:
refs/tags/v0.1.12 - Owner: https://github.com/oscarvalenzuelab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1f8f6e37370813e01242c2f0f23c1043c694d87e -
Trigger Event:
release
-
Statement type: