Skip to content

Repository files navigation

☂️ dlab.misc.forget-me-not

forget-me-not | a plugin rememberer
v1.00         | ©2025 dlab

Do you find yourself struggling to remember which plug-ins you have? This tool lets you pick one at random, with the option of also narrowing down the criteria of selection using things like tags, ratings, plugin type, whether or not you own said plug-in, etc. There is one caveat, however: you have to create the metadata for each plug-in that you want to be pickable.

Requirements

Python, Obsidian, and optionally Alfred, if you have a Mac and prefer a friendlier UX.

Installation & Setup

Create Markdown

Create a folder of plug-in metadata, represented as markdown files. Refer to the guide below.

Download Files

  1. Clone this repository or to use the Alfred workflow, download the latest release.
  2. Ensure you have Python 3.9+ installed.

Specify Paths

Set paths to your markdown folder and Obsidian vault in either the Alfred workflow configuration, or in main.py directly.

Run Tool

Run directly from the command line, OR run via Alfred Workflow (see usage below).

Usage

Markdown File Syntax

forget-me-not expects markdown files with YAML frontmatter. Here is what an example file looks like:

---
plugin-tags:
  - delay
  - diffusion
  - feedback
rating: ★★★★★
owned: true
plugin-type:
  - insert
used: true
manufacturer:
  - Valhalla
---
The swiss army knife of delay plug-ins - can do just about anything you can think of. Used on many projects.

The idea is create a folder full of files like this one, which contain plugin metadata that the system can navigate. Ratings are tracked using unicode stars (ie. ★★★☆☆).

Python Script

Example usage:

python3 ./main.py --plugin-tags "filter, distortion" --owned true --plugin-type insert --rating "<=3"

When executed, the script finds a random markdown file in the given folder that meets the above criteria, and tries to open it in Obsidian.

Obsidian File Triggering

I build this system to open the markdown files in an Obsidian vault, but you could very easily modify it to open the files in a different program.

Alfred Workflow

  1. Type fmn to invoke the workflow.
  2. Navigate the menus to add, modify and clear filters.
  3. Roll the dice to pick a plug-in! This workflow pre-populates and executes the python script for you.

If the workflow ever fails to work for some reason, one thing to try is deleting the cache, which will be all the json files in this folder: ~/Library/Caches/com.runningwithcrayons.Alfred/Workflow Data/com.dlab.forget-me-not

Result Caching

The Alfred Workflow has a default cache period of 6 hours, so if you add new markdown files, they will not be picked up immediately. If you want to alter this value, temporarily or otherwise, you can find it in suggest.py, listed as MAX_AGE_SEC.

Bonus Feature: URL Trigger

  • If you use the Alfred workflow, you can use the URL alfred://runtrigger/com.dlab.forget-me-not/-/ to trigger the tool.
  • To use flags, append ?argument= to the URL, plus any flags you want, using the same format as the python script usage, except use + for spaces.
  • ie. alfred://runtrigger/com.dlab.forget-me-not/-/?argument=--plugin-tags+"filter,+distortion"+--owned+true+--plugin-type+insert+--rating+"<=3"

About

a plugin rememberer

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages