Skip to content

Conversation

@esershnr
Copy link
Contributor

@esershnr esershnr commented Jan 15, 2026

Description

Screencast

Checklist

@raycastbot raycastbot added new extension Label for PRs with new extensions platform: Windows labels Jan 15, 2026
@raycastbot
Copy link
Collaborator

Congratulations on your new Raycast extension! 🚀

Due to our current reduced availability, the initial review may take up to 10-15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@esershnr esershnr marked this pull request as ready for review January 15, 2026 07:19
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 15, 2026

Greptile Summary

Adds a Windows-only extension for controlling microphone state using NirCmd. The extension provides four commands (toggle, mute, unmute, and status check) and allows users to configure a custom NirCmd path or use the system PATH.

Key Changes:

  • Created complete extension structure with proper metadata, screenshots, and configuration
  • Implemented microphone control using NirCmd's mutesysvolume command for the default_record device
  • Added fallback path resolution: checks user preference first, then system PATH
  • Included diagnostic command to verify NirCmd availability

Issues Found:

  • Manually defines Preferences interface instead of using auto-generated types from raycast-env.d.ts

Confidence Score: 4/5

  • This PR is safe to merge with one minor type definition fix needed
  • The extension is well-structured with proper configuration, error handling, and user feedback. The only issue is a manually-defined Preferences interface that should use auto-generated types. All custom instructions are followed correctly (Prettier config, ESLint config, CHANGELOG format, platforms, title case). The code is simple, focused, and doesn't over-engineer the solution.
  • extensions/micplus/src/utils.ts requires removal of manual Preferences interface

Important Files Changed

Filename Overview
extensions/micplus/src/utils.ts Manually defines Preferences interface instead of using auto-generated types; otherwise implements NirCmd interaction correctly
extensions/micplus/package.json Properly configured with Windows platform, correct preferences structure, and all required metadata

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

12 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment on lines +8 to +10
interface Preferences {
nircmdPath?: string;
}
Copy link
Contributor

Choose a reason for hiding this comment

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

syntax: Remove manual Preferences interface definition. Raycast auto-generates these types in raycast-env.d.ts when the extension runs.

Suggested change
interface Preferences {
nircmdPath?: string;
}

Context Used: Rule from dashboard - What: Don't manually define Preferences for getPreferenceValues() or commends Argument interfa... (source)

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Copy link
Contributor

@0xdhrv 0xdhrv left a comment

Choose a reason for hiding this comment

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

Thanks for your contribution 🔥

We already have an extension in the Store that provide Mic functionality. Could we consider enhancing the existing extension below instead of creating another one?

I see you have it added for the Windows platform, but I think you can enhance the existing extension for Windows.

If there are unique features or workflows you’re aiming to add, we’d love to hear them and see if they can be integrated into this to avoid duplication and improve discoverability.

This would help avoid duplication and keep related functionality consolidated in one place.
As mentioned in our extension guidelines here ↗

@0xdhrv 0xdhrv assigned 0xdhrv and unassigned pernielsentikaer Jan 15, 2026
@0xdhrv 0xdhrv marked this pull request as draft January 15, 2026 07:27
@esershnr
Copy link
Contributor Author

Thanks for your contribution 🔥

We already have an extension in the Store that provide Mic functionality. Could we consider enhancing the existing extension below instead of creating another one?

I see you have it added for the Windows platform, but I think you can enhance the existing extension for Windows.

If there are unique features or workflows you’re aiming to add, we’d love to hear them and see if they can be integrated into this to avoid duplication and improve discoverability.

This would help avoid duplication and keep related functionality consolidated in one place.
As mentioned in our extension guidelines here ↗

Thanks for the review!

The main reason I submitted this separately is that native microphone control on Windows is quite restrictive compared to macOS. This extension relies specifically on nircmd to function reliably, and merging it with a macOS-focused extension would complicate the codebase due to these distinct dependencies.

If maintaining this as a separate, Windows-specific extension doesn't align with the Store's goals, I am completely fine with closing this PR and keeping it on my personal GitHub for my own use.

However, if you do decide to include it, I am willing to investigate a native solution in the future to reduce dependencies, though I cannot guarantee a stable native implementation due to the OS limitations.

@0xdhrv
Copy link
Contributor

0xdhrv commented Jan 15, 2026

Thanks for your contribution 🔥
We already have an extension in the Store that provide Mic functionality. Could we consider enhancing the existing extension below instead of creating another one?

I see you have it added for the Windows platform, but I think you can enhance the existing extension for Windows.
If there are unique features or workflows you’re aiming to add, we’d love to hear them and see if they can be integrated into this to avoid duplication and improve discoverability.

This would help avoid duplication and keep related functionality consolidated in one place.
As mentioned in our extension guidelines here ↗

Thanks for the review!

The main reason I submitted this separately is that native microphone control on Windows is quite restrictive compared to macOS. This extension relies specifically on nircmd to function reliably, and merging it with a macOS-focused extension would complicate the codebase due to these distinct dependencies.

If maintaining this as a separate, Windows-specific extension doesn't align with the Store's goals, I am completely fine with closing this PR and keeping it on my personal GitHub for my own use.

However, if you do decide to include it, I am willing to investigate a native solution in the future to reduce dependencies, though I cannot guarantee a stable native implementation due to the OS limitations.

I see what you mean. With this change, you can add Windows support to the existing extension so users won't need two different ones. The same extension will support Windows once this PR, which is under review, is merged

@esershnr
Copy link
Contributor Author

Thanks for your contribution 🔥

We already have an extension in the Store that provide Mic functionality. Could we consider enhancing the existing extension below instead of creating another one?

I see you have it added for the Windows platform, but I think you can enhance the existing extension for Windows.

If there are unique features or workflows you’re aiming to add, we’d love to hear them and see if they can be integrated into this to avoid duplication and improve discoverability.

This would help avoid duplication and keep related functionality consolidated in one place.
As mentioned in our extension guidelines here ↗

Hi, i did what you want here: #24640. Can you please check it?

@esershnr esershnr closed this Jan 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new extension Label for PRs with new extensions platform: Windows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants