free

A Small Holiday Gift: Tools for Flow Launcher Power Users

Flow Launcher Plugin: Shortcuts and Shortcut Editor

This is a low-key release, offered in the spirit of Christmas Eve rather than a launch cycle.

Over the past little while I’ve been building a set of tools around Flow Launcher—tools I wanted for my own daily use, and which turned out to be broadly useful enough to justify cleaning up, documenting, and releasing publicly.

There’s no grand thesis here. Just three practical things, now open source:

  • A Flow Launcher plugin for managing shortcuts cleanly and sanely

  • A desktop editor that makes those shortcuts pleasant to work with

  • A developer skill / guide for people who want to build similar plugins themselves

All of it is MIT-licensed, free, and meant to be forked, modified, and quietly improved.

If you use Flow Launcher heavily, one or more of these may be useful to you.


1. Flow Launcher Shortcuts Plugin

Flow Launcher is already excellent, but I wanted a better way to manage frequently used paths, URLs, apps, and bookmarks—something structured, searchable, and predictable.

The result is the Flow Launcher Shortcuts Plugin, which adds a simple but flexible shortcut system directly into Flow.

You get:

  • Keyword-based access (s docs, s github, etc.)

  • Shortcuts for folders, files, apps, and URLs

  • Category grouping with explicit priority ordering

  • Per-shortcut icons

  • Context-menu actions for editing and management

  • A shortcutlist command that shows everything, grouped and ordered

  • Environment variable expansion (%USERPROFILE%, etc.)

It integrates cleanly with Flow Launcher’s JSON-RPC interface and behaves the way a native plugin should—fast, predictable, and unobtrusive.

This isn’t a flashy plugin. It’s meant to disappear into your workflow and stay there.


2. A Desktop Editor (Because JSON Should Be Optional)

Manually editing JSON for everyday workflow tools gets old fast. So alongside the plugin, I built a standalone desktop editor using PySide6 (Qt for Python).

The editor exists for one reason: to make shortcut management frictionless.

Features include:

  • A clean, modern Qt interface with proper dark-mode behavior

  • A table view of all shortcuts

  • Add / edit / delete dialogs with validation

  • Icon selection via file picker

  • Configurable storage location

  • Window state and settings persistence

  • A proper menu bar and About dialog

  • Automatic saving

The standout feature is browser bookmark import.

The editor can read bookmark data from Chrome, Edge, Brave, and Opera, recursively traverse folders, and let you selectively import bookmarks into Flow Launcher shortcuts. It handles non-standard locations and edge cases without drama.

This turns Flow Launcher into a fast, keyboard-driven bookmark launcher without requiring browser plugins or sync hacks.


3. Building Flow Launcher Plugins: Claude Skill and Practical Guide

While building the plugin, I ended up formalizing a lot of knowledge about how Flow Launcher plugins actually work in practice—what’s reliable, what’s fragile, and what patterns scale.

Rather than letting that knowledge evaporate, I wrote it down as a reusable developer skill / guide, structured so others can use it as a starting point for their own plugins.

It includes:

  • An overview of Flow Launcher’s plugin architecture

  • Common plugin patterns (search, actions, data-driven tools, utilities)

  • Production-ready templates

  • Notes on result ordering, scoring, context menus, and edge cases

  • Build and packaging guidance

  • Plugin Store submission workflow

If you’ve ever thought “I should write a Flow Launcher plugin someday,” this removes most of the archaeology phase.


Everything Is Open Source

All of this is available now:


Merry Christmas! Andy Moorer, Dec 24, 2025.

Contribution to PopcornFX 2.10 Now Released

The PopcornFX team honored me recently by including content I’ve created as part of the official 2.10 release. As they work towards a version in which user content can be uploaded and shared freely, the team approached me knowing I had a pack of templates and example projects I was intending to share out to other users. I was flattered and pleased to share this content out via an official release like this.

It’s worth noting that PopcornFX is free to download and use for personal learning, as is this content pack. https://www.popcornfx.com/ The content I’ve contributed can be downloaded directly from the editor and is among the “official” learning content and examples.

By including this content in the 2.10 release they have a demonstration and first test of how new nodes and files can be created by a third party and shared among users.

The content is a collection of 31 “templates” or custom nodes I originally created for myself as I worked with PKFX. The nodes are documented and tested and vary widely in both their usage and usefulness. A few are so helpful I use them in practically everything I do now, while others are very specific in their use cases. 

In addition there is a small suite of “example” files showing various effects, each cleanly presented, commented and documented. 

I tend to clean and document files for myself as part of my creation process so it didn’t take much effort to prep these files for the public. Hopefully they will spark interest and prove useful as examples of one user’s workflow, in tasks both simple and advanced.

Read more for descriptions of each of the nodes included:

New nodes

Random Spherical Vector
Produces a pure random vector from a unit sphere.
Random Value In Cone
Generates a random vector in a conical arc with the center by default oriented in the positive Y axis.
Test If Points Intersect Plane
Tests point position to determine if it intersects an infinite plane.
Spring Force
Plug into acceleration. Updated position is the particle position on current frame. Rest position is the point the spring seeks to reach. Spring constant is a measure of the “tightness” of the spring.
Wander Around Position
Randomly moves offset around center point position. Two methods available, with their own strengths and weaknesses. Keep seed values low.
Normalized ID
Applies a unique ID ranging from 0 to 1 for all spawned particles. Only works when there is a total (fixed) number of particles spawned.
Time Based Rand
Instead of a unique value per-point this random function delivers a single random value at spawn or per frame.
Animated Noise
Noise function animated over the effect age.
Linear Probability
Produces a boolean and optional values based on a random probability between 0 and 100.
Spiral Trails
When used in a “trail” layer this template causes resulting trail to be a spiral around the parent particle’s path.
Spin on Axis
Animates an incoming vector (position) to rotate around axis over time.
Point Visibility By Facing
Outputs a number 0 or 1 based on whether a point is on the front, back or edge of the sphere of the point normal.
Sparkle Color
Flickers colors over the particle’s lifespan.
Flicker Value
Flips between two values based on a random noise.
Position On Circle
Outputs a vector which lies on a circle defined by input values.
Oscillator
Oscillate between two values. User can choose between several waveforms via a dropdown on the node. Speed is in seconds.
4 Pole Switch
Choose between 4 inputs via a dropdown list on node.
3 Pole Switch
Choose between 3 inputs via a dropdown list on node.
2 Pole Switch
Choose between 2 inputs via a dropdown list on node.
Value by Distance To Camera
Sets a range of values based on each point’s distance to camera.
Kill by Camera Distance
Deletes particles closer or further than a set distance from the camera. 
Identify Single Point
“Tags” a single point or range of points and returns true when graph evaluates them. Use with billboard “enable” to render a single point.
Newtons Universal Gravitation Force
Simple implementation of universal gravitation. Plug into acceleration. Position should be discretized (updated per frame.) Values are arbitrary, not real-world.
Set Circular Orbital Velocity
Calculates velocity needed to place point into a circular orbit when using a universal gravitation force. Normal vector is typically the effect.up vector.
Position On View Axis
Outputs a position along the axis of the camera into the scene, with distance 0 being the camera position. Useful for defining focal planes etc. 
Color Turbulence
Defines a color based on the location of a point within a vector field.
Spatial Basis Rand
Returns random values based on position in a vector field. Must have a “turbulence” node added to sampler input.
Generate Ring
Distributes all spawned points in a ring or arc. Requires a static (total) number of points.
Generate Cyber Rings
Distributes spawned points into a series of circular arcs. Total spawned points must be static, though they can be animated in the layer.
Generate Line
Distributes spawned points on a line between two input locations. Unlike the debug “draw line” this line is made up of spawned points which can be further animated. Requires a static (total) number of points spawned. 
Random Static
Useful for “glitch” effects. Offsets positions by a random value at random intervals. Spatial mode requires a turbulence sample.