Skip to content

Doc update#101

Open
deefrawley wants to merge 6 commits into
mainfrom
docsupdate
Open

Doc update#101
deefrawley wants to merge 6 commits into
mainfrom
docsupdate

Conversation

@deefrawley
Copy link
Copy Markdown
Member

Added

  • Quick Start page.
  • FAQ page
  • Keyboard Shortcuts page
  • Plugin dev page for executables

Updated

  • Welcome page
  • sidebar menu for new pages
  • .NET plugin dev page
  • Installation page
  • Top level plugin dev page
  • Explorer plugin page
  • Usage tips

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 26, 2026

Review Change Stack

📝 Walkthrough

Walkthrough

This PR consolidates and expands Flow Launcher documentation by adding Quick Start and keyboard-shortcuts guides, rewriting the plugin development overview, consolidating Node.js and Python plugin guides into single comprehensive files, adding a new executable plugins guide, creating a FAQ/troubleshooting resource, and updating navigation and onboarding touchpoints. Several old split documentation files are removed.

Changes

Documentation Restructuring and Expansion

Layer / File(s) Summary
Navigation and Welcome Updates
README.md, _sidebar.md, develop-dotnet-plugins.md
Updated README welcome text and sidebar navigation to guide users toward Quick Start, Support, and Plugins; standardized .NET terminology.
Quick Start and Keyboard Shortcuts
quickstart.md, keyboard-shortcuts.md
New Quick Start guide and complete keyboard-shortcuts reference providing onboarding steps and comprehensive shortcut tables for global, search window, context menu, and plugin manager actions.
Plugin Development Overview and Architecture
plugin-dev.md
Complete rewrite transforming plugin-dev.md from a brief "Get Started" section into a comprehensive Plugin Development overview covering plugin lifecycle, JSON-RPC vs in-process communication, language selection comparison, plugin.json metadata, result shapes, folder structure, and consolidated references.
Executable Plugin Development Guide with Examples
develop-executable-plugins.md
New comprehensive guide for executable plugins documenting JSON-RPC protocol, plugin.json configuration, initialization/query/context_menu flow, result object structure, and minimal runnable examples in Go and Rust with deployment, debugging, and publishing guidance.
Node.js Plugin Development (Consolidated)
develop-nodejs-plugins.md
New consolidated guide covering dependency bundling requirements, GitHub Actions workflow setup for release automation, runtime module resolution, example main.js implementation, scoring, plugin.json creation, and Plugin Store publication (replaces old split nodejs-develop-plugins.md, nodejs-setup-project.md, nodejs-write-code.md).
Python Plugin Development (Consolidated)
develop-python-plugins.md
New consolidated guide covering JSON-RPC communication, dependency bundling into lib directory via GitHub workflow, sys.path runtime configuration, example FlowLauncher implementation, main.py structuring, scoring, plugin.json, and Plugin Store publication (replaces old split py-develop-plugins.md, py-setup-project.md, py-write-code.md).
FAQ and Troubleshooting
faq.md
New comprehensive FAQ providing user and plugin-developer troubleshooting guidance covering hotkeys, missing results, performance, plugin installation/JSON-RPC requirements, .NET interface expectations, crash debugging, result formatting, settings access, iterative testing, logs, publishing pitfalls, and IPlugin vs IAsyncPlugin distinction.
System Requirements, Usage Tips, and Everything Explorer Updates
installation.md, usage-tips.md, plugin-explorer.md
Added Windows 10 minimum requirement for v2.0+; updated usage-tips.md for self-contained/portable distribution and minor punctuation/capitalization fixes; clarified Everything 1.5 alpha branch switching in plugin-explorer.md.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • Flow-Launcher/docs#92: Both PRs make overlapping documentation-structure edits—specifically updating README.md, _sidebar.md, and reorganizing content in installation.md and usage-tips.md.

Suggested reviewers

  • jjw24
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'Doc update' is vague and generic, using non-descriptive terms that don't convey meaningful information about the substantial documentation changes in this changeset. Use a more specific title that highlights the main documentation changes, such as 'Add Quick Start, FAQ, and Keyboard Shortcuts documentation' or 'Expand documentation with new guides and pages'.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The description directly relates to the changeset by listing added pages (Quick Start, FAQ, Keyboard Shortcuts, executable plugin dev) and updated pages, matching the actual file modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docsupdate

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12

🧹 Nitpick comments (1)
quickstart.md (1)

83-86: ⚡ Quick win

Use consistent root-relative links in “Next steps”.

These links are relative while most docs links use /.... Standardizing to root-relative avoids path-resolution issues across routes.

Suggested link normalization
-- Browse the [Plugin Store](plugins.md) to extend Flow
-- Read [Usage Tips](usage-tips.md) for power-user tricks
-- Explore [Settings](settings.md) for full configuration reference
-- Build your own plugin → [Plugin Development](plugin-dev.md)
+- Browse the [Plugin Store](/plugins.md) to extend Flow
+- Read [Usage Tips](/usage-tips.md) for power-user tricks
+- Explore [Settings](/settings.md) for full configuration reference
+- Build your own plugin → [Plugin Development](/plugin-dev.md)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@quickstart.md` around lines 83 - 86, Update the “Next steps” links to use
root-relative paths to avoid route resolution issues: change the four bullets in
the Next steps section (the lines linking "Plugin Store", "Usage Tips",
"Settings", and "Plugin Development") from relative links like plugins.md,
usage-tips.md, settings.md, plugin-dev.md to root-relative links (/plugins.md,
/usage-tips.md, /settings.md, /plugin-dev.md) so they match the rest of the
docs.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@_sidebar.md`:
- Around line 3-8: The sidebar is missing a navigation link for the newly added
keyboard-shortcuts.md; update _sidebar.md to include a new entry labeled
"Keyboard Shortcuts" (or similar) that links to keyboard-shortcuts.md so the
page is discoverable in the docs navigation—locate the list of entries in
_sidebar.md (the existing Quick Start, Settings, File Manager, Usage Tips,
Support, FAQ entries) and insert the new "Keyboard Shortcuts" link alongside
them in the same format.

In `@develop-dotnet-plugins.md`:
- Line 11: Replace generic link text "here" in occurrences like 'Find our API
Reference [here](/API-Reference/Flow.Launcher.Plugin.md)' with descriptive link
text (e.g., 'Flow.Launcher.Plugin API Reference') so the link reads something
like 'Find our API Reference: Flow.Launcher.Plugin API Reference' and do the
same for the second occurrence; search for the exact link target
'/API-Reference/Flow.Launcher.Plugin.md' to locate both instances and update the
link text to a descriptive phrase for improved accessibility and scanability.

In `@executable-develop-plugins.md`:
- Around line 324-330: Two fenced code blocks are missing language labels (the
block with the directory tree "MyPlugin/ … icon.png" and the block with the
Windows path "%APPDATA%\FlowLauncher\Plugins\MyPlugin\"); label the first block
as "text" (or "bash" if preferred) and the second as "powershell" (or "text") to
silence MD040 warnings by updating the opening fences for those code blocks so
they read ```text and ```powershell respectively.

In `@installation.md`:
- Line 7: Update the sentence that currently reads "Flow version 2.0" to
explicitly reference the product and version range by replacing it with "Flow
Launcher v2.0+" so the minimum requirement is unambiguous; edit the line
containing "Note that as of Flow version 2.0, Windows 10 is the minimum
requirement." to read "Note that as of Flow Launcher v2.0+, Windows 10 is the
minimum requirement."

In `@plugin-dev.md`:
- Around line 23-37: The two unlabeled fenced code blocks in plugin-dev.md (the
ASCII flow diagram block starting with "User types query" and the file-tree
block starting with "MyPlugin/") violate MD040; update each triple-backtick
fence to include a language tag (use "text") so they read ```text, ensuring both
the diagram block and the file-tree block are explicitly labeled and the
markdown linter will pass.

In `@plugin-explorer.md`:
- Line 40: Update the text "Completely exit out of Everything (right click the
Everything system tray icon and click Exit)" to use the hyphenated form
"right-click" so it reads "Completely exit out of Everything (right-click the
Everything system tray icon and click Exit)"; locate and replace the exact
phrase "right click" in the markdown line to preserve the rest of the sentence.
- Around line 38-47: The documentation currently contradicts itself by saying
"Flow Launcher does not support Everything 1.5 alpha" while later providing
setup steps using Everything-1.5a.ini and alpha_instance=0; update the page so
both statements align by choosing one approach and clarifying it: either change
the earlier sentence to "Flow Launcher does not officially support Everything
1.5 alpha, but the following workaround (edit Everything-1.5a.ini and set
alpha_instance=0) can enable partial compatibility with caveats" or remove the
workaround and keep the unsupported statement, and ensure references to
"Everything 1.5 alpha", "Everything-1.5a.ini", and "alpha_instance=0" are
updated to reflect that decision.

In `@README.md`:
- Line 9: Replace the awkward phrase "world-wide team of productivity passionate
volunteers" with a clearer compound adjective; update the sentence to read
something like "worldwide team of productivity-passionate volunteers" so the
modifier is hyphenated and "worldwide" uses standard spelling, preserving the
original meaning and tone.
- Line 5: Update the README sentence that reads "community created
[**Plugins**](/plugins.md)" to use a hyphenated compound adjective: change it to
"community-created [**Plugins**](/plugins.md)"; locate this phrase in the
README.md content where the Quick Start/Support/Plugins sentence appears and
replace the unhyphenated form with the hyphenated "community-created".
- Line 5: Replace the typo/awkward phrasing in the README sentence that
currently reads "and the dive into more detail" by changing it to "then dive
into more detail" so the onboarding sentence reads smoothly: "Start with the
Quick Start guide for your first steps, then dive into more detail from there."
Locate and update the exact sentence text in the README.md content block.

In `@usage-tips.md`:
- Line 24: Update the incomplete sentence in usage-tips.md: modify the line that
mentions pressing `Ctrl + Backspace` while in the query window and searching a
directory so it reads "press `Ctrl + Backspace` to go back one level in the
directory tree" (ensure the phrase "to go back" is added so the sentence is
grammatically complete and retains the `Ctrl + Backspace` key reference).
- Line 4: Split the long sentence that begins "Flow is published as a
self-contained app..." into two or more shorter sentences for clarity and change
"trade off" to the hyphenated noun "trade-off"; e.g., keep the first sentence
explaining the self-contained and portable mode behavior, add a second sentence
that states the trade-off and uses "trade-off is slightly bigger (around 250 MB)
because it bundles the required .NET components together." Refer to the exact
sentence starting "Flow is published as a self-contained app..." to apply this
change.

---

Nitpick comments:
In `@quickstart.md`:
- Around line 83-86: Update the “Next steps” links to use root-relative paths to
avoid route resolution issues: change the four bullets in the Next steps section
(the lines linking "Plugin Store", "Usage Tips", "Settings", and "Plugin
Development") from relative links like plugins.md, usage-tips.md, settings.md,
plugin-dev.md to root-relative links (/plugins.md, /usage-tips.md, /settings.md,
/plugin-dev.md) so they match the rest of the docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: cb7d99c7-eb1d-4a0b-899d-340ae7051142

📥 Commits

Reviewing files that changed from the base of the PR and between 7f07213 and 655fab2.

📒 Files selected for processing (11)
  • README.md
  • _sidebar.md
  • develop-dotnet-plugins.md
  • executable-develop-plugins.md
  • faq.md
  • installation.md
  • keyboard-shortcuts.md
  • plugin-dev.md
  • plugin-explorer.md
  • quickstart.md
  • usage-tips.md

Comment thread _sidebar.md
Comment thread develop-dotnet-plugins.md Outdated
Comment thread executable-develop-plugins.md Outdated
Comment thread installation.md Outdated
Comment thread plugin-dev.md Outdated
Comment thread plugin-explorer.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread usage-tips.md Outdated
Comment thread usage-tips.md Outdated
deefrawley and others added 3 commits May 26, 2026 21:29
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
README.md (1)

5-5: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix the onboarding sentence grammar.

Line 5 still reads “and the dive into more detail,” which is grammatically incorrect; “then dive into more detail” fits the sentence.

Suggested patch
-Start with the [**Quick Start**](/quickstart.md) guide for your first steps, and the dive into more detail from there. Any issues, check out the [**Support**](/support.md) page to see where you can go to get help. Browse the many community-created [**Plugins**](/plugins.md) to extend Flow to do just about anything.
+Start with the [**Quick Start**](/quickstart.md) guide for your first steps, then dive into more detail from there. Any issues, check out the [**Support**](/support.md) page to see where you can go to get help. Browse the many community-created [**Plugins**](/plugins.md) to extend Flow to do just about anything.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` at line 5, Replace the incorrect phrase "and the dive into more
detail" in the onboarding sentence with "then dive into more detail" so the line
reads: "Start with the Quick Start guide for your first steps, then dive into
more detail from there." Locate this sentence in README.md and update the
wording accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@README.md`:
- Line 5: Replace the incorrect phrase "and the dive into more detail" in the
onboarding sentence with "then dive into more detail" so the line reads: "Start
with the Quick Start guide for your first steps, then dive into more detail from
there." Locate this sentence in README.md and update the wording accordingly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4266ff85-7673-4036-b31b-d166121338d1

📥 Commits

Reviewing files that changed from the base of the PR and between 655fab2 and b640565.

📒 Files selected for processing (8)
  • README.md
  • _sidebar.md
  • develop-dotnet-plugins.md
  • executable-develop-plugins.md
  • installation.md
  • plugin-dev.md
  • plugin-explorer.md
  • usage-tips.md
✅ Files skipped from review due to trivial changes (6)
  • installation.md
  • _sidebar.md
  • plugin-explorer.md
  • executable-develop-plugins.md
  • plugin-dev.md
  • usage-tips.md

Comment thread keyboard-shortcuts.md Outdated
Comment thread plugin-explorer.md Outdated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the mentions of merging Explorer and Everything plugin- no longer relevant now.

Comment thread plugin-explorer.md
Comment thread keyboard-shortcuts.md Outdated
@DavidGBrett
Copy link
Copy Markdown

DavidGBrett commented May 26, 2026

Not sure of what the scope of this PR is - theres plenty room for more to add I think but maybe best left for later or a seperate PR

I'm not sure if the ? tip and the plugin manager commands should be under keyboard shortcuts
Perhaps a useful commands section?

The ? tip specifically already appears under Usage Tips > Plugins
There are more duplications there such as the Ctrl + Enter explorer plugin shortcut

I do like the formatting of the Keyboard Shortcuts section more than the existing usage tips - so maybe best to break that up - seperating out Keyboard shortcuts, Useful Commands, and Other Tips, or something like that?

Comment thread executable-develop-plugins.md Outdated
Comment thread executable-develop-plugins.md Outdated
@jjw24
Copy link
Copy Markdown
Member

jjw24 commented May 26, 2026

Agree, maybe @deefrawley can define the scope, happy for the other improvements be in separate PR/s

Comment thread plugin-dev.md
- **Title / SubTitle** — what the user sees
- **IcoPath** — path to an icon (relative to your plugin folder)
- **Score** — influences result ordering (higher = ranked higher)
- **JsonRPCAction** — what happens when the user selects this result
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In C# its just Action instead of JsonRPCAction, and in general looks quite different
Perhaps we could add a note explaining at least that this is different in C#
Or just have a seperate section for it from the JsonRPC ones?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@DavidGBrett can you suggest an edit here as I'm not a C# dev so not sure how to improve this?

Comment thread plugin-dev.md
MyPlugin/
├── plugin.json ← required: plugin metadata
├── main.py ← your entry point (language-dependent name)
├── SettingsTemplate.yaml ← optional: defines settings shown in Flow's UI
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this specific only to python? at least myself I've never seen or used a file like that working on C# plugins - runs the risk of people thinking they've missed something

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example is Python specific so perhaps we need a structure per language or at least some general form to cover them all?

Comment thread plugin-dev.md Outdated
Comment thread quickstart.md Outdated
Comment thread quickstart.md

For example:
- `g <query>` → Google search
- `wt` → open Windows Terminal
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are these real plugin keywords?
I think we should only use examples from the built in ones

Comment thread quickstart.md Outdated
Comment thread quickstart.md
| Set a plugin's action keyword | Plugins → [plugin name] → Action Keyword |
| Prioritise a plugin's results | Plugins → [plugin name] → Priority |

## Useful things you might not discover on your own
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section is again repeating stuff from usage tips and keyboard shortcuts
Once those are reworked maybe we can just link to them?

Comment thread quickstart.md Outdated
Comment thread plugin-dev.md Outdated
Comment thread faq.md Outdated
Comment thread keyboard-shortcuts.md
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably also mention the Hotkeys tab in the settings window as somewhere the user can look for a full list.
Though the different names of Hotkeys and Keyboard Shortcuts could be confusing again.
I find Keyboard Shortcuts to be more clear but Hotkeys is already established so hard to change.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can also use

https://github.com/Flow-Launcher/Flow.Launcher#%EF%B8%8F-hotkeys from the readme as a reference

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
develop-executable-plugins.md (1)

214-221: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Fix incorrect parameter unmarshaling in Go example.

Line 216 incorrectly unmarshals the query parameter into a []string slice, but according to the JSON-RPC protocol (line 76), the query method receives a single string as parameters[0], not an array.

🐛 Proposed fix
 		switch req.Method {
 		case "query":
-			var params []string
-			json.Unmarshal(req.Parameters[0], &params)
-			query := ""
-			if len(params) > 0 {
-				query = params[0]
-			}
+			var query string
+			if len(req.Parameters) > 0 {
+				json.Unmarshal(req.Parameters[0], &query)
+			}
 			resp = handleQuery(query)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@develop-executable-plugins.md` around lines 214 - 221, The code in the
"query" case incorrectly unmarshals req.Parameters[0] into a []string; change it
to unmarshal directly into a single string variable (e.g., "query") instead of
"params", remove the slice length check, and pass that string to handleQuery;
update the json.Unmarshal call to decode into &query and use that query variable
when calling handleQuery to match the JSON-RPC protocol expectation.
plugin-explorer.md (1)

64-64: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix typo: "maye" should be "may".

🔤 Proposed fix
-- Adding a directory here will exclude it from the Flow Launcher search, over-riding any settings you maye have in Windows Indexing or Everything.
+- Adding a directory here will exclude it from the Flow Launcher search, over-riding any settings you may have in Windows Indexing or Everything.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugin-explorer.md` at line 64, Update the typo in the documentation sentence
string "Adding a directory here will exclude it from the Flow Launcher search,
over-riding any settings you maye have in Windows Indexing or Everything." by
replacing "maye" with "may" so it reads "...any settings you may have in Windows
Indexing or Everything."; ensure the corrected sentence is saved in
plugin-explorer.md.
🧹 Nitpick comments (3)
develop-python-plugins.md (1)

172-176: ⚡ Quick win

Consider using consistent sys.path setup approach.

This example uses os.path while the earlier example (lines 22-29) uses pathlib. Having two different approaches in the same guide may confuse readers.

♻️ Suggested consolidation using pathlib (matches earlier example)
-import sys,os
-parent_folder_path = os.path.abspath(os.path.dirname(__file__))
-sys.path.append(parent_folder_path)
-sys.path.append(os.path.join(parent_folder_path, 'lib'))
-sys.path.append(os.path.join(parent_folder_path, 'plugin'))
+import sys
+from pathlib import Path
+
+plugindir = Path.absolute(Path(__file__).parent)
+paths = (".", "lib", "plugin")
+sys.path = [str(plugindir / p) for p in paths] + sys.path
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@develop-python-plugins.md` around lines 172 - 176, The snippet mixes os.path
with earlier pathlib usage; replace the os.path-based setup (variables like
parent_folder_path and calls to sys.path.append(os.path.join(...)) and
sys.path.append(parent_folder_path)) with the same pathlib-based pattern used
earlier in the doc: derive the current file parent via
Path(__file__).resolve().parent and append str(parent) and str(parent / "lib")
and str(parent / "plugin") to sys.path so the approach is consistent across the
guide.
develop-nodejs-plugins.md (1)

106-106: 💤 Low value

Consider using forward slashes for cross-platform compatibility.

While backslashes work on Windows, forward slashes don't require escaping in JSON and work across all platforms.

♻️ Suggested change
-				"IcoPath": "Images\\app.png",
+				"IcoPath": "Images/app.png",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@develop-nodejs-plugins.md` at line 106, The JSON value for the "IcoPath" key
uses Windows backslashes ("Images\\app.png") which require escaping and hurt
cross-platform compatibility; update the value to use forward slashes
("Images/app.png") so the path is valid JSON and works on all platforms,
locating the change at the "IcoPath" property in the document.
plugin-explorer.md (1)

3-3: 💤 Low value

Consider hyphenating "third-party" when used as a compound adjective.

The phrase "third party tool" should be "third-party tool" when the compound adjective appears before a noun.

📝 Suggested fix
-The Explorer plugin is a default plugin that installs with Flow Launcher and is used to search for files and folders on your filesystem. You can now choose which search engine will search for what type of item through Flow. You can use the built-in Windows Search Index which is default and is part of the Windows operating system or you can use a popular third party tool called Everything from the company Voidtools. Everything tends to be a faster search and offers more search options than Windows Index however you do need to download and install it to use it. If you don't already have the Everything search tool from Voidtools installed, Flow will automatically download and install it if you choose it as your search index engine. To trigger automatic install, fire a search and click the "Warning: Everything is not running" result.
+The Explorer plugin is a default plugin that installs with Flow Launcher and is used to search for files and folders on your filesystem. You can now choose which search engine will search for what type of item through Flow. You can use the built-in Windows Search Index which is default and is part of the Windows operating system or you can use a popular third-party tool called Everything from the company Voidtools. Everything tends to be a faster search and offers more search options than Windows Index however you do need to download and install it to use it. If you don't already have the Everything search tool from Voidtools installed, Flow will automatically download and install it if you choose it as your search index engine. To trigger automatic install, fire a search and click the "Warning: Everything is not running" result.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugin-explorer.md` at line 3, The phrase "third party tool" in the sentence
describing Everything should be hyphenated when used as a compound adjective;
change the fragment "popular third party tool" to "popular third-party tool"
(refer to the string containing "Everything from the company Voidtools" and
"popular third party tool") to correct the compound adjective formatting.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@develop-executable-plugins.md`:
- Line 21: Edit the sentence in develop-executable-plugins.md that mentions
“JsonRPC v2 (for v1 it runs when called and then exits)” to either (A) expand
and document what “v1” vs “v2” means and whether executable plugins support both
modes—add a short note referencing json-rpc.md and describe the lifetime/IO
differences for the plugin process—or (B) if v1 is not supported or is
irrelevant, remove the “v1” clause and simplify the sentence to state that
executable plugins must run as a long‑lived process that reads stdin in a loop
and writes responses to stdout; update the surrounding sentence in
develop-executable-plugins.md accordingly to keep the doc consistent with
json-rpc.md.

In `@develop-nodejs-plugins.md`:
- Around line 91-121: In the JSON returned when method === "query" (the object
logged inside the console.log call), fix the field name casing to match Flow's
schema by renaming "Subtitle" to "SubTitle" and "score" to "Score" in the result
object literal; update the keys in that returned item so Flow can parse/render
it correctly (no other logic changes needed).
- Line 16: Update the Node.js version mention and download URL where the string
"node-v16.18.0-win-x64.zip" appears: replace the hardcoded v16.18.0 reference
with the current LTS (v24.16.0 as of May 2026) or change the wording and link to
refer to the "latest LTS" (e.g., the Node.js latest LTS download or the
latest-v24.x alias) so the text and hyperlink both point to a supported LTS
release rather than the End-of-Life v16.18.0.

In `@develop-python-plugins.md`:
- Around line 47-61: In the query(self, query) function the dict returned has a
missing comma after the "ContextData" entry which causes a syntax error; add a
trailing comma after the "ContextData": ["foo", "bar"] line so the
"JsonRPCAction" key/value pair is correctly separated and the function (query)
returns a valid dictionary containing "Title", "SubTitle", "IcoPath",
"ContextData", and "JsonRPCAction".
- Around line 171-218: The example's returned dict keys in HelloWorld.query and
HelloWorld.context_menu use wrong casing; update the top-level result fields to
PascalCase so Flow can parse them: change "title" -> "Title", "subTitle" ->
"SubTitle", "icoPath" -> "IcoPath", "jsonRPCAction" -> "JsonRPCAction" and
"score" -> "Score" in the dicts returned by the query and context_menu methods
(keep the inner JsonRPCAction payload keys as-is if your schema expects them).
Ensure both HelloWorld.query and HelloWorld.context_menu are updated
consistently.

---

Outside diff comments:
In `@develop-executable-plugins.md`:
- Around line 214-221: The code in the "query" case incorrectly unmarshals
req.Parameters[0] into a []string; change it to unmarshal directly into a single
string variable (e.g., "query") instead of "params", remove the slice length
check, and pass that string to handleQuery; update the json.Unmarshal call to
decode into &query and use that query variable when calling handleQuery to match
the JSON-RPC protocol expectation.

In `@plugin-explorer.md`:
- Line 64: Update the typo in the documentation sentence string "Adding a
directory here will exclude it from the Flow Launcher search, over-riding any
settings you maye have in Windows Indexing or Everything." by replacing "maye"
with "may" so it reads "...any settings you may have in Windows Indexing or
Everything."; ensure the corrected sentence is saved in plugin-explorer.md.

---

Nitpick comments:
In `@develop-nodejs-plugins.md`:
- Line 106: The JSON value for the "IcoPath" key uses Windows backslashes
("Images\\app.png") which require escaping and hurt cross-platform
compatibility; update the value to use forward slashes ("Images/app.png") so the
path is valid JSON and works on all platforms, locating the change at the
"IcoPath" property in the document.

In `@develop-python-plugins.md`:
- Around line 172-176: The snippet mixes os.path with earlier pathlib usage;
replace the os.path-based setup (variables like parent_folder_path and calls to
sys.path.append(os.path.join(...)) and sys.path.append(parent_folder_path)) with
the same pathlib-based pattern used earlier in the doc: derive the current file
parent via Path(__file__).resolve().parent and append str(parent) and str(parent
/ "lib") and str(parent / "plugin") to sys.path so the approach is consistent
across the guide.

In `@plugin-explorer.md`:
- Line 3: The phrase "third party tool" in the sentence describing Everything
should be hyphenated when used as a compound adjective; change the fragment
"popular third party tool" to "popular third-party tool" (refer to the string
containing "Everything from the company Voidtools" and "popular third party
tool") to correct the compound adjective formatting.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d1c4628d-9f8f-4582-a1a6-5aafd0b4e053

📥 Commits

Reviewing files that changed from the base of the PR and between b640565 and 12a409c.

📒 Files selected for processing (18)
  • develop-executable-plugins.md
  • develop-nodejs-plugins.md
  • develop-python-plugins.md
  • faq.md
  • keyboard-shortcuts.md
  • nodejs-develop-plugins.md
  • nodejs-plugin-references.md
  • nodejs-release-project.md
  • nodejs-setup-project.md
  • nodejs-write-code.md
  • plugin-dev.md
  • plugin-explorer.md
  • py-develop-plugins.md
  • py-plugin-references.md
  • py-release-project.md
  • py-setup-project.md
  • py-write-code.md
  • quickstart.md
💤 Files with no reviewable changes (10)
  • py-write-code.md
  • py-setup-project.md
  • py-release-project.md
  • nodejs-write-code.md
  • py-plugin-references.md
  • nodejs-develop-plugins.md
  • py-develop-plugins.md
  • nodejs-release-project.md
  • nodejs-plugin-references.md
  • nodejs-setup-project.md
✅ Files skipped from review due to trivial changes (3)
  • quickstart.md
  • plugin-dev.md
  • keyboard-shortcuts.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • faq.md

3. Reads the JSON-RPC response from the process's **stdout**
4. Renders the returned results

Your process stays alive for the lifetime of the Flow session with JsonRPC v2 (for v1 it runs when called and then exits). It must read from stdin in a loop and write responses to stdout.
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot May 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for other references to JSON-RPC versioning
rg -n -C3 'JSON.?RPC.*v[12]|version.*JSON.?RPC' --type=md

Repository: Flow-Launcher/docs

Length of output: 44


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Matches for JsonRPC / JSON-RPC across repo =="
rg -n --hidden --no-ignore -S 'JsonRPC|JSON-RPC' .

echo
echo "== Nearby context in develop-executable-plugins.md (around line 21) =="
FILE='develop-executable-plugins.md'
# Print ~15 lines around the target line
nl -ba "$FILE" | sed -n '10,35p'

Repository: Flow-Launcher/docs

Length of output: 5150


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE='develop-executable-plugins.md'
echo "== Context around $FILE: lines 15-30 =="
awk 'NR>=15 && NR<=30 {printf "%d\t%s\n", NR, $0}' "$FILE"

echo
echo "== Searches for JSON-RPC v1/v2 wording (all file types) =="
rg -n --hidden --no-ignore -S 'JsonRPC v[12]|JSON-RPC v[12]|json-rpc v[12]|JSONRPC v[12]|v[12].*JSON-RPC|JSON-RPC.*v[12]' .

echo
echo "== json-rpc.md (first ~120 lines) =="
FILE2='json-rpc.md'
[ -f "$FILE2" ] && awk 'NR<=120 {printf "%d\t%s\n", NR, $0}' "$FILE2" || echo "Missing $FILE2"

Repository: Flow-Launcher/docs

Length of output: 3649


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Any remaining JSON-RPC v1/v2 mentions (all file types) =="
rg -n --hidden --no-ignore -S 'JsonRPC v[12]|JSON-RPC v[12]|json-rpc v[12]|JSON.?RPC v[12]|v1.*JSON.?RPC|v2.*JSON.?RPC' .

echo
echo "== Search for 'v1'/'v2' specifically inside json-rpc.md and json-rpc-settings.md =="
for f in json-rpc.md json-rpc-settings.md; do
  if [ -f "$f" ]; then
    echo "--- $f ---"
    rg -n --no-ignore -S 'v1|v2' "$f" || true
  fi
done

echo
echo "== Search for 'JsonRPC v' across repo (all file types) =="
rg -n --hidden --no-ignore -S 'JsonRPC v' .

Repository: Flow-Launcher/docs

Length of output: 762


Clarify or remove the “JsonRPC v2 (for v1 it runs when called and then exits)” wording

The only place that references a JSON-RPC v1 vs v2 behavior distinction is develop-executable-plugins.md line 21; json-rpc.md doesn’t explain it. Either document what “v1” vs “v2” means (and whether executable plugins support both modes), or drop the v1 phrasing and just state the required long-running stdin/stdout loop.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@develop-executable-plugins.md` at line 21, Edit the sentence in
develop-executable-plugins.md that mentions “JsonRPC v2 (for v1 it runs when
called and then exits)” to either (A) expand and document what “v1” vs “v2”
means and whether executable plugins support both modes—add a short note
referencing json-rpc.md and describe the lifetime/IO differences for the plugin
process—or (B) if v1 is not supported or is irrelevant, remove the “v1” clause
and simplify the sentence to state that executable plugins must run as a
long‑lived process that reads stdin in a loop and writes responses to stdout;
update the surrounding sentence in develop-executable-plugins.md accordingly to
keep the doc consistent with json-rpc.md.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@deefrawley I think until we add documentation for v2, let's not mention the difference.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!

Comment thread develop-nodejs-plugins.md
Comment thread develop-nodejs-plugins.md
Comment on lines +91 to +121
```js
const open = require('./node_modules/open');

const { method, parameters, settings } = JSON.parse(process.argv[2]);

if (method === "query") {
console.log(JSON.stringify(
{
"result": [{
"Title": "Hello World Typescript",
"Subtitle": "Showing your query parameters: " + parameters + ". Click to open Flow's website",
"JsonRPCAction": {
"method": "do_something_for_query",
"parameters": ["https://github.com/Flow-Launcher/Flow.Launcher"]
},
"IcoPath": "Images\\app.png",
"score" : 0
}]
}
));
}

if (method === "do_something_for_query") {
url = parameters[0];
do_something_for_query(url);
}

function do_something_for_query(url) {
open(url);
}
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Fix JSON field name casing to match Flow's expected schema.

The result object field names must match Flow's schema exactly:

  • Line 101: "Subtitle" should be "SubTitle" (capital T)
  • Line 107: "score" should be "Score" (capital S)

These inconsistencies will prevent Flow from correctly parsing and rendering the results.

🐛 Proposed fix for field name casing
 			"result": [{
 				"Title": "Hello World Typescript",
-				"Subtitle": "Showing your query parameters: " + parameters + ". Click to open Flow's website",
+				"SubTitle": "Showing your query parameters: " + parameters + ". Click to open Flow's website",
 				"JsonRPCAction": {
                     "method": "do_something_for_query",
                     "parameters": ["https://github.com/Flow-Launcher/Flow.Launcher"]
                 },
 				"IcoPath": "Images\\app.png",
-                "score" : 0
+                "Score": 0
 			}]
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```js
const open = require('./node_modules/open');
const { method, parameters, settings } = JSON.parse(process.argv[2]);
if (method === "query") {
console.log(JSON.stringify(
{
"result": [{
"Title": "Hello World Typescript",
"Subtitle": "Showing your query parameters: " + parameters + ". Click to open Flow's website",
"JsonRPCAction": {
"method": "do_something_for_query",
"parameters": ["https://github.com/Flow-Launcher/Flow.Launcher"]
},
"IcoPath": "Images\\app.png",
"score" : 0
}]
}
));
}
if (method === "do_something_for_query") {
url = parameters[0];
do_something_for_query(url);
}
function do_something_for_query(url) {
open(url);
}
```
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@develop-nodejs-plugins.md` around lines 91 - 121, In the JSON returned when
method === "query" (the object logged inside the console.log call), fix the
field name casing to match Flow's schema by renaming "Subtitle" to "SubTitle"
and "score" to "Score" in the result object literal; update the keys in that
returned item so Flow can parse/render it correctly (no other logic changes
needed).

Comment thread develop-python-plugins.md
Comment on lines +47 to +61
```python
def query(self, query):
return [
{
"Title": "Hello World, this is where title goes. {}".format(('Your query is: ' + query , query)[query == '']),
"SubTitle": "This is where your subtitle goes, press enter to open Flow's url",
"IcoPath": "Images/app.png",
"ContextData": ["foo", "bar"]
"JsonRPCAction": {
"method": "open_url",
"parameters": ["https://github.com/Flow-Launcher/Flow.Launcher"]
}
}
]
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Fix missing comma in dictionary.

Line 54 is missing a trailing comma after the "ContextData" entry, which will cause a Python syntax error.

🐛 Proposed fix
                 "IcoPath": "Images/app.png",
-                "ContextData": ["foo", "bar"]
+                "ContextData": ["foo", "bar"],
                 "JsonRPCAction": {
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@develop-python-plugins.md` around lines 47 - 61, In the query(self, query)
function the dict returned has a missing comma after the "ContextData" entry
which causes a syntax error; add a trailing comma after the "ContextData":
["foo", "bar"] line so the "JsonRPCAction" key/value pair is correctly separated
and the function (query) returns a valid dictionary containing "Title",
"SubTitle", "IcoPath", "ContextData", and "JsonRPCAction".

Comment thread develop-python-plugins.md
Comment on lines +171 to +218
```python
import sys,os
parent_folder_path = os.path.abspath(os.path.dirname(__file__))
sys.path.append(parent_folder_path)
sys.path.append(os.path.join(parent_folder_path, 'lib'))
sys.path.append(os.path.join(parent_folder_path, 'plugin'))

from flowlauncher import FlowLauncher
import webbrowser


class HelloWorld(FlowLauncher):

def query(self, query):
return [
{
"title": "Hello World, this is where title goes. {}".format(('Your query is: ' + query , query)[query == '']),
"subTitle": "This is where your subtitle goes, press enter to open Flow's url",
"icoPath": "Images/app.png",
"jsonRPCAction": {
"method": "open_url",
"parameters": ["https://github.com/Flow-Launcher/Flow.Launcher"]
},
"score": 0
}
]

def context_menu(self, data):
return [
{
"title": "Hello World Python's Context menu",
"subTitle": "Press enter to open Flow the plugin's repo in GitHub",
"icoPath": "Images/app.png", # related path to the image
"jsonRPCAction": {
"method": "open_url",
"parameters": ["https://github.com/Flow-Launcher/Flow.Launcher.Plugin.HelloWorldPython"]
},
"score" : 0
}
]

def open_url(self, url):
webbrowser.open(url)

if __name__ == "__main__":
HelloWorld()

```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Fix inconsistent field name casing in the second example.

The field names in this main.py example use incorrect casing (camelCase/lowercase) instead of the required PascalCase. This contradicts:

  1. The first example (lines 47-61) which correctly uses "Title", "SubTitle", "IcoPath", "JsonRPCAction"
  2. The schema documented in plugin-dev.md

Flow expects PascalCase field names. The current casing will prevent Flow from correctly parsing results.

🐛 Proposed fix for correct field casing
     def query(self, query):
         return [
             {
-                "title": "Hello World, this is where title goes. {}".format(('Your query is: ' + query , query)[query == '']),
-                "subTitle": "This is where your subtitle goes, press enter to open Flow's url",
-                "icoPath": "Images/app.png",
-                "jsonRPCAction": {
+                "Title": "Hello World, this is where title goes. {}".format(('Your query is: ' + query , query)[query == '']),
+                "SubTitle": "This is where your subtitle goes, press enter to open Flow's url",
+                "IcoPath": "Images/app.png",
+                "JsonRPCAction": {
                     "method": "open_url",
                     "parameters": ["https://github.com/Flow-Launcher/Flow.Launcher"]
                 },
-                "score": 0
+                "Score": 0
             }
         ]

     def context_menu(self, data):
         return [
             {
-                "title": "Hello World Python's Context menu",
-                "subTitle": "Press enter to open Flow the plugin's repo in GitHub",
-                "icoPath": "Images/app.png", # related path to the image
-                "jsonRPCAction": {
+                "Title": "Hello World Python's Context menu",
+                "SubTitle": "Press enter to open Flow the plugin's repo in GitHub",
+                "IcoPath": "Images/app.png", # related path to the image
+                "JsonRPCAction": {
                     "method": "open_url",
                     "parameters": ["https://github.com/Flow-Launcher/Flow.Launcher.Plugin.HelloWorldPython"]
                 },
-                "score" : 0
+                "Score": 0
             }
         ]
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@develop-python-plugins.md` around lines 171 - 218, The example's returned
dict keys in HelloWorld.query and HelloWorld.context_menu use wrong casing;
update the top-level result fields to PascalCase so Flow can parse them: change
"title" -> "Title", "subTitle" -> "SubTitle", "icoPath" -> "IcoPath",
"jsonRPCAction" -> "JsonRPCAction" and "score" -> "Score" in the dicts returned
by the query and context_menu methods (keep the inner JsonRPCAction payload keys
as-is if your schema expects them). Ensure both HelloWorld.query and
HelloWorld.context_menu are updated consistently.

Executable plugins let you build a Flow Launcher plugin in **any language that can produce a binary** — Go, Rust, C, compiled TypeScript, Zig, or anything else. Flow treats the executable as a subprocess and communicates with it over JSON-RPC via stdin/stdout.

This is a good choice when you want:
- Minimal startup latency (no interpreter to boot)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This probably is not worth mentioning, interpreter usage doesn't increase much latency.


When a user triggers your plugin, Flow:

1. Launches your executable as a subprocess
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Launches your executable as a subprocess
1. Launches your executable as a short-lived subprocess

3. Reads the JSON-RPC response from the process's **stdout**
4. Renders the returned results

Your process stays alive for the lifetime of the Flow session with JsonRPC v2 (for v1 it runs when called and then exits). It must read from stdin in a loop and write responses to stdout.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@deefrawley I think until we add documentation for v2, let's not mention the difference.

Comment on lines +133 to +137
| `Flow.Launcher.OpenUrl` | `[url]` | Opens a URL in the default browser |
| `Flow.Launcher.OpenDirectory` | `[path]` | Opens a folder in Explorer |
| `Flow.Launcher.OpenFile` | `[path]` | Opens a file with its default app |
| `Flow.Launcher.CopyToClipboard` | `[text]` | Copies text to the clipboard |
| `Flow.Launcher.ShellRun` | `[command]` | Runs a shell command |
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pretty sure there are more methods that can be called right?

Comment thread develop-nodejs-plugins.md
Comment thread keyboard-shortcuts.md

## Tips

- Typing **`?`** shows all currently active action keywords. Narrow them by typing the first character or two of the keyword you're looking for.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Think typing first few characters of the plugin name you are looking for?

Comment thread installation.md

#### Minimum Requirement

Note that as of Flow version 2.0+, Windows 10 is the minimum requirement.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Note that as of Flow version 2.0+, Windows 10 is the minimum requirement.
Note that as of Flow version 2.0.0+, Windows 10 is the minimum requirement.

Comment thread usage-tips.md
- Right-click with the mouse, or press right-arrow on the keyboard, on a result to access the context menu for additional actions. The context menu is specific to the plugin providing the result.

#### Plugins
- Typing `?` in the search bar will show you the keywords currently active. This can be refined by typing the first letter or two of the keywords you are after.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Plugin name instead of 'keywords'?

Comment thread usage-tips.md
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we delete or rename this remember to edit the main repo's readme as it links to this
https://github.com/Flow-Launcher/Flow.Launcher#%E2%80%8D%EF%B8%8F-tips

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants