Skip to main content

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)
  1. Set your OpenAI API key:

Set your OpenAI API key

  1. Create and set a collection:

Create and set a collection

  1. Create and edit a note:

Create and edit a note

  1. Generate metadata:

Generate metadata

🏗️ Basic Structure

The CLI is organized into three main command groups:

  • collection: Manages note collections
  • note: Handles individual notes
  • config: 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

  1. Create a new collection:
pinkmess collection create ~/notes/work --name work
  1. Set it as current:
pinkmess collection set work
  1. Create a new note:
pinkmess note create
  1. Edit the note:
pinkmess note edit
  1. 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)

Source distribution for pinkmess 0.2.0
File Size Uploaded
pinkmess-0.2.0.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pinkmess 0.2.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page