Keep your computer active with intelligent mouse movement
MoveIt is a modern, lightweight desktop application that prevents your computer from going to sleep by intelligently moving your mouse cursor at specified intervals. Perfect for presentations, video calls, monitoring dashboards, or any situation where you need your computer to stay active.
- 🖱️ Intelligent Mouse Movement - Minimal, barely noticeable cursor movements
- ⏰ Flexible Scheduling - Set custom schedules for different days and times
- 🌍 Multi-Language Support - Available in 12 languages
- 🎨 Modern UI - Clean, intuitive interface with dark/light themes
- 📊 System Tray Integration - Runs quietly in the background
- 🔒 Privacy-First - All processing happens locally, no data collection
- ⚡ Lightweight - Minimal system resource usage
- 🖥️ Cross-Platform - Works on macOS and Windows
Screenshots and demo GIFs will be added soon
-
GitHub Releases (Recommended)
- Download the latest version from Releases
- Choose the appropriate file for your platform:
MoveIt Setup.exefor WindowsMoveIt.dmgfor macOS
-
Build from Source
- See the Developer Setup section below
macOS:
- Download
MoveIt.dmg - Open the DMG file
- Drag MoveIt to Applications folder
- Launch MoveIt from Applications
- Grant accessibility permissions when prompted
Windows:
- Download
MoveIt Setup.exe - Run the installer
- Follow the setup wizard
- Launch MoveIt from Start Menu or Desktop
- Launch MoveIt - The app opens with a clean, minimal interface
- Set Interval - Choose how often to move the mouse (1-60 minutes)
- Configure Schedule (Optional) - Set specific days and times for movement
- Start/Stop - Click the blue/red button to start or stop mouse movement
- System Tray - Minimize to tray for background operation
Accessibility Permissions (macOS):
- MoveIt needs accessibility permissions to control your mouse
- When prompted, click "Open Settings" to grant permissions
- Add MoveIt to the list of allowed applications
Windows:
- No special permissions required - works out of the box
Q: Will this interfere with my normal computer usage? A: No! MoveIt uses minimal 1-pixel movements that are barely noticeable and won't interfere with your work.
Q: Does MoveIt collect any data? A: Absolutely not. MoveIt runs entirely on your local machine and doesn't send any data anywhere.
Q: Can I use this during video calls? A: Yes! The movements are so small they won't be noticed by others on video calls.
Q: Why does macOS ask for accessibility permissions? A: macOS requires explicit permission for apps to control mouse movement. This is a security feature.
Q: How much system resources does it use? A: Very minimal - typically less than 50MB RAM and negligible CPU usage.
- Frontend: React 19 + TypeScript
- Backend: Electron 38 (Node.js)
- Styling: Tailwind CSS v4
- State Management: Zustand
- Mouse Control: @nut-tree-fork/nut-js
- Internationalization: React Intl
- Build System: Vite + electron-builder
- Code Quality: ESLint + Prettier + Husky
- Node.js 18 or higher
- npm or yarn
- Git
Platform-specific:
- macOS: Xcode Command Line Tools
- Windows: Visual Studio Build Tools (for native modules)
# Clone the repository
git clone https://github.com/NicolaeBP/MoveIt.git
cd MoveIt
# Install dependencies
npm install
# Start development server
npm run devThis will:
- Build the Electron main process
- Start the Vite dev server
- Launch the app with hot reloading
- Open React DevTools
MoveIt/
├── src/ # React frontend source
│ ├── components/ # React components
│ ├── store/ # Zustand stores
│ ├── i18n/ # Internationalization
│ ├── hooks/ # Custom hooks
│ └── utils/ # Utility functions
├── electron/ # Electron main process
│ ├── main.ts # Main process entry
│ ├── preload.ts # Preload script
│ └── constants.ts # App constants
├── shared/ # Shared types and utilities
├── assets/ # App icons and resources
├── scripts/ # Build and utility scripts
└── dist/ # Build output
# Development
npm run dev # Start development environment
npm run dev:vite # Start only Vite dev server
npm run dev:electron # Start only Electron
# Building
npm run build:vite # Build React app
npm run build:electron # Build Electron main process
npm run build:mac # Build macOS app
npm run build:win # Build Windows app
npm run build:all # Build for all platforms
# Code Quality
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint issues
npm run type-check # TypeScript type checking
npm run format # Format code with Prettier
# Testing
npm test # Run tests (when implemented)The build process uses electron-builder with platform-specific configurations:
macOS:
- Creates
.dmginstaller - Code signing with developer certificate
- Notarization for Gatekeeper
- Universal binary (Intel + Apple Silicon)
Windows:
- Creates
.exeinstaller with NSIS - Code signing (when certificates are configured)
- Supports both x64 and ia32 architectures
For signed Windows builds, you'll need to set up the SSL.com CodeSignTool:
- Download CodeSignTool from SSL.com
- Extract to
tools/CodeSignTool/in the project root - Configure credentials in
.env.local:WINDOWS_SIGN_USER_NAME=your_username WINDOWS_SIGN_USER_PASSWORD=your_password WINDOWS_SIGN_CREDENTIAL_ID=your_credential_id WINDOWS_SIGN_USER_TOTP=your_totp_secret
Project structure after setup:
MoveIt/
├── tools/
│ └── CodeSignTool/
│ ├── CodeSignTool.sh
│ ├── CodeSignTool.bat
│ └── jar/
│ └── code_sign_tool-1.3.2.jar
Unsigned builds (for testing):
npm run build:win:nosign # Skips code signing# Run type checking
npm run type-check
# Run linting
npm run lint
# Format code
npm run formatNote: Unit and integration tests will be added in future releases.
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run quality checks (
npm run lint && npm run type-check) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style
- Add TypeScript types for all new code
- Use semantic commit messages
- Update documentation as needed
- Test on both macOS and Windows if possible
- Use TypeScript for all new code
- Follow the ESLint configuration
- Use functional React components with hooks
- Prefer named exports over default exports
- Keep components small and focused
- Update version in
package.json - Update
CHANGELOG.md - Create a git tag:
git tag v1.0.0 - Push tags:
git push --tags - GitHub Actions will automatically build and create a release
MoveIt can be distributed through the Microsoft Store in addition to direct downloads.
-
Microsoft Partner Center Account
- Cost: $19 USD one-time registration fee (individual)
- Register: https://partner.microsoft.com/dashboard
- What you get: Access to submit apps to Microsoft Store
-
Get Publisher ID
- After registration, go to Account Settings → Certificates
- Copy your Publisher ID (format:
CN=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
Important: Windows Store packages (AppX) can only be built on Windows. We use GitHub Actions for this.
-
Update Publisher ID in
package.json"appx": { "publisher": "CN=YOUR_ACTUAL_PUBLISHER_ID" }
-
Trigger GitHub Actions Workflow
- Go to: https://github.com/NicolaeBP/MoveIt/actions/workflows/build-windows-store.yml
- Click "Run workflow"
- Enter version number (e.g.,
1.0.4) - Click "Run workflow"
-
Download AppX Package
- Wait for workflow to complete (~5-10 minutes)
- Download artifact:
windows-store-package-X.X.X - Extract to find
.appxfile
-
Create App Listing
- Go to Partner Center → Apps and games → New app
- Reserve app name: "MoveIt"
- Fill in basic information
-
Upload Package
- Create new submission
- Upload
.appxfile from GitHub Actions - Can upload directly via web (no special tools needed)
-
Complete Store Listing
- Screenshots: Min 1, recommended 3-4 (PNG/JPG)
- Description: Professional productivity tool for mouse automation
- Keywords: mouse, automation, productivity, utility, remote work
- Privacy Policy URL: https://nicolaebp.github.io/MoveIt/PRIVACY_POLICY
- Support URL: https://github.com/NicolaeBP/MoveIt
- Category: Productivity or Utilities
-
Submit for Review
- Review timeline: 1-3 days (typically faster than Mac App Store)
- Email notification when approved/rejected
⚠️ AppX packages must be built on Windows (GitHub Actions handles this)⚠️ Mouse automation may face policy review - Frame as productivity tool⚠️ Sandboxing concerns - Test package before submission if possible- ✅ Keep GitHub releases - Primary distribution method regardless
| Store | Registration Fee | Renewal |
|---|---|---|
| Microsoft Store | $19 one-time | None |
| Mac App Store | $99/year | Annual |
Adding a new language:
- Create a new locale file in
src/i18n/locales/ - Add the locale to
src/i18n/config.ts - Update the language selector component
Supported languages: English, Spanish, French, German, Italian, Portuguese, Romanian, Russian, Chinese, Japanese, Korean.
- Main Process: Handles system integration, mouse control, and IPC
- Renderer Process: React UI with modern state management
- IPC Communication: Type-safe channels between processes
- State Management: Zustand stores for UI state
- Scheduling: Custom scheduler with timezone support
Development Tools:
- React DevTools (opens automatically in dev mode)
- Electron DevTools (Cmd/Ctrl + Shift + I)
- VS Code debugger configuration included
Common Issues:
- Mouse not moving: Check accessibility permissions on macOS
- Build failures: Ensure all native dependencies are installed
- Hot reloading not working: Restart the dev server
This project is licensed under the MIT License - see the LICENSE file for details.
- Electron - Cross-platform desktop apps
- React - UI framework
- nut-js - Desktop automation library
- Tailwind CSS - Utility-first CSS framework
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: nicolaebalica@bpconsulting.pro
Made with ❤️ by Nicolae Balica