{"id":31074121,"url":"https://github.com/trose/mouse-jiggler","last_synced_at":"2026-04-30T11:33:37.026Z","repository":{"id":312900326,"uuid":"1048787342","full_name":"trose/mouse-jiggler","owner":"trose","description":"jigglypuff: AI-Controlled Mouse Activity Manager for macOS  Prevent screen savers and system sleep during AI agent processing with intelligent mouse jiggling. MCP-compatible tool that keeps your system awake when needed and allows it to sleep when idle.","archived":false,"fork":false,"pushed_at":"2025-09-15T17:15:36.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-26T14:42:31.469Z","etag":null,"topics":["ai","ai-tools","automation","bash","cliclick","cursor","macos","mcp","model-context-protocol","mouse-jiggler","mouse-movement","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trose.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-02T03:01:53.000Z","updated_at":"2025-09-15T17:15:40.000Z","dependencies_parsed_at":"2025-09-02T18:33:34.821Z","dependency_job_id":"4c052039-bb00-4154-bbc5-6b43c96e31c4","html_url":"https://github.com/trose/mouse-jiggler","commit_stats":null,"previous_names":["trose/mouse-jiggler"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/trose/mouse-jiggler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trose%2Fmouse-jiggler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trose%2Fmouse-jiggler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trose%2Fmouse-jiggler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trose%2Fmouse-jiggler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trose","download_url":"https://codeload.github.com/trose/mouse-jiggler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trose%2Fmouse-jiggler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32463892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ai","ai-tools","automation","bash","cliclick","cursor","macos","mcp","model-context-protocol","mouse-jiggler","mouse-movement","python"],"created_at":"2025-09-16T02:03:11.126Z","updated_at":"2026-04-30T11:33:32.010Z","avatar_url":"https://github.com/trose.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jigglypuff: AI-Controlled Mouse Activity Manager for macOS\n\n[![MCP Badge](https://lobehub.com/badge/mcp/trose-jigglypuff)](https://lobehub.com/mcp/trose-jigglypuff)\n\n**Prevent screen savers, system sleep, and keep your macOS awake during AI processing tasks.** jigglypuff is a lightweight mouse jiggler and activity manager that uses imperceptible cursor movements to simulate user activity. Perfect for developers using AI agents like Cursor, Qoder and Claude Desktop.\n\n**Keywords**: mouse jiggler, cursor mover, screen saver preventer, system wakefulness, AI automation, macOS automation, MCP tools, Model Context Protocol, keep screen awake, prevent sleep, automation tools, developer utilities\n\nVersion: 1.0.0\n\n## Features\n\n- **Prevents screen savers and system sleep** during AI processing tasks\n- **Allows system to sleep** when waiting for user input to conserve energy\n- **Controlled via MCP tools** for seamless integration with AI agents\n- **Lightweight and efficient** implementation with minimal system impact\n- **Small, imperceptible mouse movements** that won't interfere with your work\n- **Automatic jiggling rules** - Automatically enables/disables jiggling based on task status\n- **Cross-AI agent compatibility** - Works with Cursor, Qoder, Claude Desktop, and other MCP-compatible tools\n\n## Prerequisites\n\n- macOS system (10.15+ recommended)\n- Homebrew package manager\n- Python 3.11+\n- cliclick CLI tool for mouse automation\n- MCP-compatible AI agent (Qoder, Claude Desktop, Cursor, etc.)\n\n## Installation\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/trose/jigglypuff.git\n   cd jigglypuff\n   ```\n\n2. **Install dependencies:**\n   ```bash\n   # Install cliclick using Homebrew\n   brew install cliclick\n   \n   # Create a virtual environment\n   python3 -m venv venv\n   source venv/bin/activate\n   \n   # Install Python MCP SDK\n   pip install mcp\n   ```\n\n3. **Configure accessibility permissions:**\n   - Open System Preferences \u003e Security \u0026 Privacy \u003e Privacy\n   - Select \"Accessibility\" from the left sidebar\n   - Click the lock icon and authenticate\n   - Add your terminal application (Terminal.app, iTerm2, etc.) to the list\n\n4. **Make scripts executable:**\n   ```bash\n   chmod +x jiggly_puff.sh mcp_server.py\n   ```\n\n## Usage\n\n### Running the MCP Server\n\nTo start the MCP server that exposes the jigglypuff tools:\n\n```bash\nsource venv/bin/activate\npython mcp_server.py\n```\n\nThe server will listen on stdio transport for MCP-compatible clients.\n\n### MCP Tools\n\nThe server exposes several tools for AI agent integration:\n\n#### Core Tools\n1. **wake_up_jiggly** - Initiates the cursor jiggling process\n   - `interval`: Time between jiggles in seconds (5-300, default: 30)\n   - `offset`: Mouse movement offset in pixels (1-10, default: 1)\n   - Returns: Status message with PID and settings\n\n2. **put_jiggly_to_sleep** - Terminates the running cursor jiggling process\n   - Returns: Confirmation message with PID\n\n3. **check_jiggly_status** - Checks current cursor jiggling state\n   - Returns: Current status (jiggling, sleeping, or stopped)\n\n#### Rule-Compliant Tools\n4. **enable_jiggling_before_tasks** - Implements the rule: ALWAYS use jigglypuff MCP to enable jiggling before beginning tasks\n   - Automatically starts jiggling with default settings\n\n5. **disable_jiggling_after_tasks** - Implements the rule: ALWAYS disable jiggling when task complete\n   - Automatically stops jiggling\n\n### MCP Prompts\n\nThe server provides helpful prompts for user interaction:\n\n1. **jigglypuff_help** - Comprehensive usage guide and best practices\n2. **jigglypuff_troubleshooting** - Solutions for common issues and problems\n\n### MCP Resources\n\nThe server exposes resources for context data management:\n\n1. **jigglypuff-config** - Current configuration and system status (JSON format)\n2. **jigglypuff-rules** - Official usage rules and best practices (JSON format)\n\n## Configuration\n\n### MCP Server Configuration\n\nExample configuration:\n```json\n{\n  \"mcpServers\": {\n    \"jigglypuff\": {\n      \"command\": \"/Users/trose/src/mouse-jiggler/venv/bin/python\",\n      \"args\": [\"mcp_server.py\"],\n      \"cwd\": \"/Users/trose/src/mouse-jiggler\"\n    }\n  }\n}\n```\n\n## Testing\n\nRun the provided test suite to verify functionality:\n\n```bash\nsource venv/bin/activate\n\n# Run individual test files\npython tests/test_functions.py\npython tests/test_comprehensive.py\n\n# Or run all tests (if you have pytest installed)\npytest tests/\n```\n\n## LobeHub Integration\n\nThis MCP server is registered with [LobeHub](https://lobehub.com/mcp/trose-jigglypuff) and includes:\n\n- ✅ **MCP Tools**: 5 tools for mouse jiggling control\n- ✅ **MCP Prompts**: 2 prompts for help and troubleshooting  \n- ✅ **MCP Resources**: 2 resources for configuration and rules\n- ✅ **Installation Methods**: Multiple deployment options\n- ✅ **README Documentation**: Comprehensive usage guide\n- ✅ **MIT License**: Open source licensing\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrose%2Fmouse-jiggler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrose%2Fmouse-jiggler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrose%2Fmouse-jiggler/lists"}