Skip to main content

A simple PKMS manager for lazy people.

Project description

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.

[!WARNING]

This is a personal tool that I built for my own note-taking workflow and experimentation with AI-powered note organization. It is NOT intended for production use and comes with several important caveats:

  • No Stability Guarantees: The API and CLI interface may change at any time without warning
  • Limited Testing: The code has not been extensively tested beyond my personal use cases
  • Security Considerations: The tool hasn't undergone security auditing
  • Dependencies: Relies on specific versions of external libraries that may become outdated
  • Performance: Not optimized for large-scale note collections
  • Documentation: May be incomplete or outdated

Installation

$ pip install git+https://github.com/leodiegues/pinkmess.git

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

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

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.

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

pinkmess-0.1.0.tar.gz (66.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pinkmess-0.1.0-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

File details

Details for the file pinkmess-0.1.0.tar.gz.

File metadata

  • Download URL: pinkmess-0.1.0.tar.gz
  • Upload date:
  • Size: 66.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.26

File hashes

Hashes for pinkmess-0.1.0.tar.gz
Algorithm Hash digest
SHA256 35d2ce21002ddcdc3fb978b5f304a618176b96c5f28067689d45dac0887ef0f6
MD5 a4575a1fc13de047bb5aeb84910a5fa7
BLAKE2b-256 e8abc3512a3a6281cb1f2353e8110e5c5c5b96b00c5dc365d90b7063d60bae20

See more details on using hashes here.

File details

Details for the file pinkmess-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pinkmess-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 24.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.26

File hashes

Hashes for pinkmess-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 189797c5a58fc3557e56609da42a1d87b492dfb82fd5ae7e57f82a1b34f0f1ff
MD5 c01a8523a77840ed0e177d95bc3cdf73
BLAKE2b-256 b29d35d05db2a4cb06f715c3288dbb13d6bf82bb47975745aa3f892234b7c35f

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