Pinkmess 🌸
Pinkmess is a note-taking CLI tool that allows you to manage collections of markdown notes with AI-powered metadata generation capabilities.
It is a completely opinionated PKMS terminal manager for lazy people just like me.
📥 Installation
pip install pinkmess
Or install the latest version from the repository:
$ pip install git+https://github.com/leodiegues/pinkmess.git
🚀 Quick Start
Requirements:
- Python 3.10+
- OpenAI API key
- Text editor (defaults to nvim)
- Set your OpenAI API key:
- Create and set a collection:
- Create and edit a note:
- Generate metadata:
🏗️ Basic Structure
The CLI is organized into three main command groups:
collection: Manages note collectionsnote: Handles individual notesconfig: Manages application configuration
📁 Collection Commands
Create a Collection
pinkmess collection create PATH [--name NAME] [--llm-model MODEL] [--llm-settings SETTINGS]
Creates a new collection at the specified path.
Example:
pinkmess collection create ~/notes --name personal
Set Current Collection
pinkmess collection set NAME
Sets the active collection by its name.
Example:
pinkmess collection set personal
List Collections
pinkmess collection list
# or
pinkmess collection ls
Shows all registered collections.
Show Current Collection
pinkmess collection current
Displays the currently active collection.
Remove Collection
pinkmess collection remove NAME
# or
pinkmess collection rm NAME
Removes a collection from the registry.
Example:
pinkmess collection remove personal
Open Collection
pinkmess collection open [--name NAME]
Opens the specified collection (or current collection if no name provided) in your configured editor.
Example:
# Open current collection
pinkmess collection open
# Open a specific collection
pinkmess collection open --name personal
Show Collection Stats
pinkmess collection stats
Displays statistics about the current collection (number of notes, creation date, last modification).
📝 Note Commands
Create Note
pinkmess note create
Creates a new empty note in the current collection with a timestamp-based filename.
Edit Note
pinkmess note edit [--path PATH]
Opens the specified note (or last created note) in your configured editor.
Generate Metadata
pinkmess note generate-metadata [--path PATH] [--key {summary|tags}]
Generates AI-powered metadata for a note.
Examples:
# Generate summary for the last created note
pinkmess note generate-metadata --key summary
# Generate tags for a specific note
pinkmess note generate-metadata --path ~/notes/20230815123456.md --key tags
Duplicate Note
pinkmess note duplicate [--path PATH]
Creates a copy of the specified note (or last created note) with a new timestamp-based filename in the current collection.
Example:
# Duplicate the last created note
pinkmess note duplicate
# Duplicate a specific note
pinkmess note duplicate --path ~/notes/20230815123456.md
Show Last Created Note
pinkmess note last
Shows the path of the most recently created note.
⚙️ Config Commands
Edit Configuration
pinkmess config edit
Opens the configuration file in your default editor.
Show Configuration
pinkmess config show
Displays the current configuration in JSON format.
Set Environment Variable
pinkmess config set-env KEY VALUE
Sets an environment variable in the .env file.
Example:
pinkmess config set-env OPENAI_API_KEY your_api_key_here
🛠️ Configuration Details
The configuration is stored in TOML format at the user config directory:
- Linux:
~/.config/pinkmess/config.toml - macOS:
~/Library/Application Support/pinkmess/config.toml - Windows:
%LOCALAPPDATA%\pinkmess\config.toml
Key configuration options include:
- Collections list
- Current collection index
- Default LLM model
- LLM settings
- Editor preference
Environment variables are stored in a .env file in the same directory.
🔄 Typical Workflow
- Create a new collection:
pinkmess collection create ~/notes/work --name work
- Set it as current:
pinkmess collection set work
- Create a new note:
pinkmess note create
- Edit the note:
pinkmess note edit
- Generate metadata:
pinkmess note generate-metadata --key summary
pinkmess note generate-metadata --key tags
📜 License
The project is licensed under the GPLv3 license.
Happy note-taking! 🌸
Metadata
Release files for pinkmess 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pinkmess-0.2.0.tar.gz | 1.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pinkmess-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / pinkmess-0.2.0.tar.gz
| Download URL | pinkmess-0.2.0.tar.gz |
|---|---|
| Size | 1.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3563854b089506877afdd70d616c7b507cb3fe9e66f4a5f3a5be8429fd99e44e
|
|
BLAKE2b-256 checksum How to use checksums |
c4346e8bfe5ded856bfc7f971ce9665906b0d03ff7b77aa758302b7b4182d405
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.26
|
Release files / pinkmess-0.2.0-py3-none-any.whl
| Download URL | pinkmess-0.2.0-py3-none-any.whl |
|---|---|
| Size | 24.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
19cc2cfce8be97e7fc629d79298412dbaa84cf45d703207b3709e0408265267d
|
|
BLAKE2b-256 checksum How to use checksums |
54c4a06f300dd650d20fcbb6c89b2cf0974ff1480cb3b83f1a4c7b44dbdb107d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.26
|