Skip to content

Make AutoHotkey the default provider and improve Windows documentation#202

Open
Cheffromspace wants to merge 2 commits into
mainfrom
feat/autohotkey-default-provider
Open

Make AutoHotkey the default provider and improve Windows documentation#202
Cheffromspace wants to merge 2 commits into
mainfrom
feat/autohotkey-default-provider

Conversation

@Cheffromspace

Copy link
Copy Markdown
Collaborator

Summary

  • Changed the default provider from keysender to AutoHotkey to reduce build tool requirements
  • Updated documentation to use PowerShell syntax for environment variables (more appropriate for Windows users)
  • Made keysender an optional dependency, allowing installation without complex native build tools

Changes

  1. Configuration Updates

    • Changed default provider from 'keysender' to 'autohotkey' in src/config.ts
    • Updated factory defaults to use AutoHotkeyProvider for all components
  2. Documentation Improvements

    • Updated README environment variable examples from bash export to PowerShell $env: syntax
    • Reordered provider list to show AutoHotkey as default
    • Clarified that build tools are only needed for the optional keysender provider
  3. Dependency Management

    • Moved keysender from dependencies to optionalDependencies in package.json
    • This allows users to install MCPControl without requiring native build tools

Test plan

  • Code builds successfully with npm run build
  • Code passes linting with npm run lint
  • Code is properly formatted with npm run format
  • Test that AutoHotkey provider works as default
  • Test that keysender can still be installed as optional dependency
  • Verify documentation is clear for Windows users

🤖 Generated with Claude Code

Cheffromspace and others added 2 commits May 18, 2025 10:48
- Change default provider from keysender to autohotkey
- Update environment variable examples to PowerShell syntax
- Move keysender to optionalDependencies
- Update documentation to reflect keysender as optional
- Clarify that build tools are only needed for keysender provider

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Updated provider factory tests to expect AutoHotkey as the default provider
instead of Keysender. Added necessary mocks and test cases for AutoHotkey
provider to ensure test suite passes with the new default.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

@MCPClaude MCPClaude left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Overall Assessment

This PR changes the default automation provider from keysender to AutoHotkey, makes keysender an optional dependency, and updates Windows-specific documentation. The changes are well-structured and generally make sense given the goal of reducing build tool requirements for most users.

README.md Changes

  • Good update to use PowerShell syntax for environment variables ($env: instead of export)
  • Reordering of providers to show AutoHotkey as default is helpful
  • Clear explanation about keysender being optional now

package.json Changes

  • Appropriate move of keysender to optionalDependencies
  • This will allow users to install the package without the native build requirements if they don't need keysender

config.ts and index.ts Changes

  • Proper update of provider defaults and documentation
  • Good addition of AutoHotkey to supported providers list

factory.ts and factory.test.ts Changes

  • Correctly updated default provider throughout the factory implementation
  • Test cases have been appropriately extended to cover AutoHotkey provider

Suggestions for Improvement

  1. Error Handling: Consider adding graceful degradation logic when a user attempts to use keysender features but doesn't have it installed. Currently, this might lead to runtime errors that could be difficult to diagnose.

  2. Documentation: It might be helpful to add a small section in the README explaining how to install the optional keysender dependency if needed (npm install keysender or similar).

  3. Version Bump: Since this is a potentially breaking change for users who explicitly depend on keysender being installed by default, consider whether this warrants a major version bump according to your versioning strategy.

Overall, this is a well-structured PR that will make the project more accessible to Windows users by reducing the default installation requirements.

@Cheffromspace

Copy link
Copy Markdown
Collaborator Author

@MCPClaude are you there?

@MCPClaude

Copy link
Copy Markdown
Contributor

Yes, I'm here. How can I help you?

@Cheffromspace

Copy link
Copy Markdown
Collaborator Author

@MCPClaude Are you able to see the repository? Do you have shell access? gh cli access? Give me your Commander Data diagnostic report.

@MCPClaude

Copy link
Copy Markdown
Contributor

I need shell access permissions to run diagnostic commands. The repository is a TypeScript project called MCPControl with providers for automation tasks including keyboard, mouse, and screen control.

@Cheffromspace

Copy link
Copy Markdown
Collaborator Author

@MCPClaude Do you have shell access?

@MCPClaude

Copy link
Copy Markdown
Contributor

Error processing command: Failed to process command: Command failed: claude --dangerously-skip-permissions --print "Do you have shell access?"
--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons

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.

2 participants