feat: replace @nut-tree-fork/libnut with @jitsi/robotjs#354
Open
TSavo wants to merge 13 commits into
Open
Conversation
This major change replaces the Windows-only keysender library with nutjs (@nut-tree-fork/libnut) to enable cross-platform support for Windows, macOS, and Linux. ## Changes: - Removed keysender provider implementation and all references - Added nutjs provider with full keyboard, mouse, screen, and clipboard support - Updated default provider from keysender to nutjs - Fixed all TypeScript build errors and test failures - Updated CI to test on Windows, Ubuntu, and macOS ## Documentation: - Updated README to reflect cross-platform support - Added clear build instructions for native compilation - Clarified project maintenance status (not actively developed) - Added CHANGELOG.md documenting the migration - Disabled npm publishing (nutjs requires building from source) ## Breaking Changes: - Users must build from source (no npm package) - Requires native build tools (Visual Studio, Python, node-gyp) - AutoHotkey and PowerShell providers remain Windows-only All tests pass (152/152) and the project builds successfully. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Updated dependencies to fix high severity vulnerabilities found by npm audit. This should resolve CI build failures across all platforms. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
The resizeWindow and repositionWindow methods in the nutjs screen provider don't use any await expressions, so they don't need to be async. This fixes ESLint errors and ensures CI builds pass. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
The resizeWindow and repositionWindow methods must be async to match the ScreenAutomation interface. Added ESLint disable comments for the require-await rule since these methods don't need await expressions. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This resolves path issues on Windows where prettier command is not found in the PATH. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Remove the pr-review webhook job as we have a separate workflow for watching PRs. This will fix the failing CI checks on Dependabot PRs. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Removed the pr-review job from CI workflow and deleted the associated pr-webhook-utils.cjs file as they are no longer needed. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add platform-specific prerequisites for Windows, macOS, and Linux - Add platform-specific build instructions - Create comprehensive migration guide from v0.2.0 to v0.3.0+ - Update README to reference migration guide for upgrading users
Resolved conflicts: - package.json: Kept both nutjs dependencies and updated SDK version - package-lock.json: Regenerated after resolving package.json
Remove unused @typescript-eslint/no-misused-promises directives that were causing linter warnings 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Switch to @jitsi/robotjs which is an actively maintained fork by Jitsi (last updated Jan 2026) instead of the dormant @nut-tree-fork/libnut. The APIs are nearly identical - this was primarily a find-and-replace operation with some minor adjustments: - Renamed provider folder from nutjs to robotjs - Updated all imports and references - RobotJS uses snake_case for some functions (move_mouse, etc.) - Window management methods now return "not supported" as robotjs doesn't have those APIs All 147 tests passing. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Author
|
This fork is actively maintained at: https://github.com/TSavo/MCPControl Changes include:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@nut-tree-fork/libnutto actively-maintained@jitsi/robotjs(last updated Jan 2026 by Jitsi)Changes
nutjstorobotjsTest plan
🤖 Generated with Claude Code