{"id":31763440,"url":"https://github.com/nicolaebp/moveit","last_synced_at":"2026-04-08T20:02:59.549Z","repository":{"id":317241611,"uuid":"1066613633","full_name":"NicolaeBP/MoveIt","owner":"NicolaeBP","description":"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.","archived":false,"fork":false,"pushed_at":"2026-01-10T08:16:46.000Z","size":788,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-11T02:36:24.375Z","etag":null,"topics":["electron","electron-builder","electron-updater","javascript","mousemove-simulator","react","reactjs","tailwind","vitest","yubikey","zustand"],"latest_commit_sha":null,"homepage":"https://www.moveitapp.io/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NicolaeBP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-29T18:16:13.000Z","updated_at":"2026-01-10T08:16:50.000Z","dependencies_parsed_at":"2025-12-03T00:10:30.940Z","dependency_job_id":null,"html_url":"https://github.com/NicolaeBP/MoveIt","commit_stats":null,"previous_names":["nicolaebp/moveit"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/NicolaeBP/MoveIt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolaeBP%2FMoveIt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolaeBP%2FMoveIt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolaeBP%2FMoveIt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolaeBP%2FMoveIt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicolaeBP","download_url":"https://codeload.github.com/NicolaeBP/MoveIt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolaeBP%2FMoveIt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31571601,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["electron","electron-builder","electron-updater","javascript","mousemove-simulator","react","reactjs","tailwind","vitest","yubikey","zustand"],"created_at":"2025-10-09T23:20:54.591Z","updated_at":"2026-04-08T20:02:59.540Z","avatar_url":"https://github.com/NicolaeBP.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🖱️ MoveIt\n\n**Keep your computer active with intelligent mouse movement**\n\n[![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)](https://github.com/NicolaeBP/MoveIt)\n[![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Windows-lightgrey.svg)](https://github.com/NicolaeBP/MoveIt)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n[![Electron](https://img.shields.io/badge/Electron-38-blue.svg)](https://electronjs.org/)\n[![React](https://img.shields.io/badge/React-19-blue.svg)](https://reactjs.org/)\n\n---\n\n## 🎯 For Users\n\n### What is MoveIt?\n\nMoveIt 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.\n\n### ✨ Key Features\n\n- 🖱️ **Intelligent Mouse Movement** - Minimal, barely noticeable cursor movements\n- ⏰ **Flexible Scheduling** - Set custom schedules for different days and times\n- 🌍 **Multi-Language Support** - Available in 12 languages\n- 🎨 **Modern UI** - Clean, intuitive interface with dark/light themes\n- 📊 **System Tray Integration** - Runs quietly in the background\n- 🔒 **Privacy-First** - All processing happens locally, no data collection\n- ⚡ **Lightweight** - Minimal system resource usage\n- 🖥️ **Cross-Platform** - Works on macOS and Windows\n\n### 📸 Screenshots\n\n*Screenshots and demo GIFs will be added soon*\n\n### 🚀 Installation\n\n#### Download Options\n\n1. **GitHub Releases** *(Recommended)*\n   - Download the latest version from [Releases](https://github.com/NicolaeBP/MoveIt/releases)\n   - Choose the appropriate file for your platform:\n     - `MoveIt Setup.exe` for Windows\n     - `MoveIt.dmg` for macOS\n\n2. **Build from Source**\n   - See the [Developer Setup](#-developer-setup) section below\n\n#### Installation Steps\n\n**macOS:**\n1. Download `MoveIt.dmg`\n2. Open the DMG file\n3. Drag MoveIt to Applications folder\n4. Launch MoveIt from Applications\n5. Grant accessibility permissions when prompted\n\n**Windows:**\n1. Download `MoveIt Setup.exe`\n2. Run the installer\n3. Follow the setup wizard\n4. Launch MoveIt from Start Menu or Desktop\n\n### 🎮 How to Use\n\n1. **Launch MoveIt** - The app opens with a clean, minimal interface\n2. **Set Interval** - Choose how often to move the mouse (1-60 minutes)\n3. **Configure Schedule** *(Optional)* - Set specific days and times for movement\n4. **Start/Stop** - Click the blue/red button to start or stop mouse movement\n5. **System Tray** - Minimize to tray for background operation\n\n### 🔧 First-Time Setup\n\n**Accessibility Permissions (macOS):**\n- MoveIt needs accessibility permissions to control your mouse\n- When prompted, click \"Open Settings\" to grant permissions\n- Add MoveIt to the list of allowed applications\n\n**Windows:**\n- No special permissions required - works out of the box\n\n### ❓ FAQ\n\n**Q: Will this interfere with my normal computer usage?**\nA: No! MoveIt uses minimal 1-pixel movements that are barely noticeable and won't interfere with your work.\n\n**Q: Does MoveIt collect any data?**\nA: Absolutely not. MoveIt runs entirely on your local machine and doesn't send any data anywhere.\n\n**Q: Can I use this during video calls?**\nA: Yes! The movements are so small they won't be noticed by others on video calls.\n\n**Q: Why does macOS ask for accessibility permissions?**\nA: macOS requires explicit permission for apps to control mouse movement. This is a security feature.\n\n**Q: How much system resources does it use?**\nA: Very minimal - typically less than 50MB RAM and negligible CPU usage.\n\n---\n\n## 👨‍💻 For Developers\n\n### 🛠️ Tech Stack\n\n- **Frontend:** React 19 + TypeScript\n- **Backend:** Electron 38 (Node.js)\n- **Styling:** Tailwind CSS v4\n- **State Management:** Zustand\n- **Mouse Control:** @nut-tree-fork/nut-js\n- **Internationalization:** React Intl\n- **Build System:** Vite + electron-builder\n- **Code Quality:** ESLint + Prettier + Husky\n\n### 📋 Prerequisites\n\n- **Node.js** 18 or higher\n- **npm** or **yarn**\n- **Git**\n\n**Platform-specific:**\n- **macOS:** Xcode Command Line Tools\n- **Windows:** Visual Studio Build Tools (for native modules)\n\n### 🚀 Developer Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/NicolaeBP/MoveIt.git\ncd MoveIt\n\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n```\n\nThis will:\n1. Build the Electron main process\n2. Start the Vite dev server\n3. Launch the app with hot reloading\n4. Open React DevTools\n\n### 📁 Project Structure\n\n```\nMoveIt/\n├── src/                    # React frontend source\n│   ├── components/         # React components\n│   ├── store/             # Zustand stores\n│   ├── i18n/              # Internationalization\n│   ├── hooks/             # Custom hooks\n│   └── utils/             # Utility functions\n├── electron/              # Electron main process\n│   ├── main.ts           # Main process entry\n│   ├── preload.ts        # Preload script\n│   └── constants.ts      # App constants\n├── shared/               # Shared types and utilities\n├── assets/              # App icons and resources\n├── scripts/             # Build and utility scripts\n└── dist/               # Build output\n```\n\n### 🔧 Available Scripts\n\n```bash\n# Development\nnpm run dev                 # Start development environment\nnpm run dev:vite           # Start only Vite dev server\nnpm run dev:electron       # Start only Electron\n\n# Building\nnpm run build:vite         # Build React app\nnpm run build:electron     # Build Electron main process\nnpm run build:mac          # Build macOS app\nnpm run build:win          # Build Windows app\nnpm run build:all          # Build for all platforms\n\n# Code Quality\nnpm run lint               # Run ESLint\nnpm run lint:fix          # Fix ESLint issues\nnpm run type-check         # TypeScript type checking\nnpm run format            # Format code with Prettier\n\n# Testing\nnpm test                  # Run tests (when implemented)\n```\n\n### 🏗️ Build Process\n\nThe build process uses electron-builder with platform-specific configurations:\n\n**macOS:**\n- Creates `.dmg` installer\n- Code signing with developer certificate\n- Notarization for Gatekeeper\n- Universal binary (Intel + Apple Silicon)\n\n**Windows:**\n- Creates `.exe` installer with NSIS\n- Code signing (when certificates are configured)\n- Supports both x64 and ia32 architectures\n\n#### Windows Code Signing Setup\n\nFor signed Windows builds, you'll need to set up the SSL.com CodeSignTool:\n\n1. **Download CodeSignTool** from [SSL.com](https://www.ssl.com/guide/esigner-codesigntool-command-guide/)\n2. **Extract** to `tools/CodeSignTool/` in the project root\n3. **Configure credentials** in `.env.local`:\n   ```bash\n   WINDOWS_SIGN_USER_NAME=your_username\n   WINDOWS_SIGN_USER_PASSWORD=your_password\n   WINDOWS_SIGN_CREDENTIAL_ID=your_credential_id\n   WINDOWS_SIGN_USER_TOTP=your_totp_secret\n   ```\n\n**Project structure after setup:**\n```\nMoveIt/\n├── tools/\n│   └── CodeSignTool/\n│       ├── CodeSignTool.sh\n│       ├── CodeSignTool.bat\n│       └── jar/\n│           └── code_sign_tool-1.3.2.jar\n```\n\n**Unsigned builds (for testing):**\n```bash\nnpm run build:win:nosign   # Skips code signing\n```\n\n### 🧪 Testing\n\n```bash\n# Run type checking\nnpm run type-check\n\n# Run linting\nnpm run lint\n\n# Format code\nnpm run format\n```\n\n*Note: Unit and integration tests will be added in future releases.*\n\n### 🤝 Contributing\n\nWe welcome contributions! Please follow these steps:\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Make** your changes\n4. **Run** quality checks (`npm run lint \u0026\u0026 npm run type-check`)\n5. **Commit** your changes (`git commit -m 'Add amazing feature'`)\n6. **Push** to the branch (`git push origin feature/amazing-feature`)\n7. **Open** a Pull Request\n\n#### Development Guidelines\n\n- Follow the existing code style\n- Add TypeScript types for all new code\n- Use semantic commit messages\n- Update documentation as needed\n- Test on both macOS and Windows if possible\n\n#### Code Style\n\n- Use TypeScript for all new code\n- Follow the ESLint configuration\n- Use functional React components with hooks\n- Prefer named exports over default exports\n- Keep components small and focused\n\n### 📦 Release Process\n\n1. Update version in `package.json`\n2. Update `CHANGELOG.md`\n3. Create a git tag: `git tag v1.0.0`\n4. Push tags: `git push --tags`\n5. GitHub Actions will automatically build and create a release\n\n### 🪟 Windows Store Release Workflow\n\nMoveIt can be distributed through the Microsoft Store in addition to direct downloads.\n\n#### Prerequisites\n\n1. **Microsoft Partner Center Account**\n   - **Cost:** $19 USD one-time registration fee (individual)\n   - **Register:** https://partner.microsoft.com/dashboard\n   - **What you get:** Access to submit apps to Microsoft Store\n\n2. **Get Publisher ID**\n   - After registration, go to Account Settings → Certificates\n   - Copy your Publisher ID (format: `CN=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`)\n\n#### Build Windows Store Package\n\n**Important:** Windows Store packages (AppX) can only be built on Windows. We use GitHub Actions for this.\n\n1. **Update Publisher ID in `package.json`**\n   ```json\n   \"appx\": {\n     \"publisher\": \"CN=YOUR_ACTUAL_PUBLISHER_ID\"\n   }\n   ```\n\n2. **Trigger GitHub Actions Workflow**\n   - Go to: https://github.com/NicolaeBP/MoveIt/actions/workflows/build-windows-store.yml\n   - Click **\"Run workflow\"**\n   - Enter version number (e.g., `1.0.4`)\n   - Click **\"Run workflow\"**\n\n3. **Download AppX Package**\n   - Wait for workflow to complete (~5-10 minutes)\n   - Download artifact: `windows-store-package-X.X.X`\n   - Extract to find `.appx` file\n\n#### Submit to Microsoft Store\n\n1. **Create App Listing**\n   - Go to Partner Center → Apps and games → New app\n   - Reserve app name: \"MoveIt\"\n   - Fill in basic information\n\n2. **Upload Package**\n   - Create new submission\n   - Upload `.appx` file from GitHub Actions\n   - Can upload directly via web (no special tools needed)\n\n3. **Complete Store Listing**\n   - **Screenshots:** Min 1, recommended 3-4 (PNG/JPG)\n   - **Description:** Professional productivity tool for mouse automation\n   - **Keywords:** mouse, automation, productivity, utility, remote work\n   - **Privacy Policy URL:** https://nicolaebp.github.io/MoveIt/PRIVACY_POLICY\n   - **Support URL:** https://github.com/NicolaeBP/MoveIt\n   - **Category:** Productivity or Utilities\n\n4. **Submit for Review**\n   - Review timeline: 1-3 days (typically faster than Mac App Store)\n   - Email notification when approved/rejected\n\n#### Important Notes\n\n- ⚠️ **AppX packages must be built on Windows** (GitHub Actions handles this)\n- ⚠️ **Mouse automation may face policy review** - Frame as productivity tool\n- ⚠️ **Sandboxing concerns** - Test package before submission if possible\n- ✅ **Keep GitHub releases** - Primary distribution method regardless\n\n#### Cost Comparison\n\n| Store | Registration Fee | Renewal |\n|-------|-----------------|---------|\n| Microsoft Store | $19 one-time | None |\n| Mac App Store | $99/year | Annual |\n\n### 🌍 Internationalization\n\nAdding a new language:\n\n1. Create a new locale file in `src/i18n/locales/`\n2. Add the locale to `src/i18n/config.ts`\n3. Update the language selector component\n\nSupported languages: English, Spanish, French, German, Italian, Portuguese, Romanian, Russian, Chinese, Japanese, Korean.\n\n### 📝 Architecture Notes\n\n- **Main Process:** Handles system integration, mouse control, and IPC\n- **Renderer Process:** React UI with modern state management\n- **IPC Communication:** Type-safe channels between processes\n- **State Management:** Zustand stores for UI state\n- **Scheduling:** Custom scheduler with timezone support\n\n### 🐛 Debugging\n\n**Development Tools:**\n- React DevTools (opens automatically in dev mode)\n- Electron DevTools (Cmd/Ctrl + Shift + I)\n- VS Code debugger configuration included\n\n**Common Issues:**\n- **Mouse not moving:** Check accessibility permissions on macOS\n- **Build failures:** Ensure all native dependencies are installed\n- **Hot reloading not working:** Restart the dev server\n\n### 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n### 🙏 Acknowledgments\n\n- [Electron](https://electronjs.org/) - Cross-platform desktop apps\n- [React](https://reactjs.org/) - UI framework\n- [nut-js](https://github.com/nut-tree/nut.js) - Desktop automation library\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n\n### 📞 Support\n\n- **Issues:** [GitHub Issues](https://github.com/NicolaeBP/MoveIt/issues)\n- **Discussions:** [GitHub Discussions](https://github.com/NicolaeBP/MoveIt/discussions)\n- **Email:** nicolaebalica@bpconsulting.pro\n\n---\n\n**Made with ❤️ by [Nicolae Balica](https://github.com/NicolaeBP)**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicolaebp%2Fmoveit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicolaebp%2Fmoveit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicolaebp%2Fmoveit/lists"}