{"id":31989276,"url":"https://github.com/aimhco/random-phone-number-selector","last_synced_at":"2026-04-16T02:32:34.714Z","repository":{"id":318764179,"uuid":"1075768552","full_name":"aimhco/random-phone-number-selector","owner":"aimhco","description":"A Python-based macOS tool with a Tkinter GUI that randomly selects a phone number from an input list, adds it to Contacts, and sends an automated iMessage/SMS using AppleScript.","archived":false,"fork":false,"pushed_at":"2025-12-13T02:10:05.000Z","size":732,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-14T12:56:22.393Z","etag":null,"topics":["applescript","automation","contact-management","contacts","gui","imessage","imessage-automation","macos","macos-app","macos-automation","messaging","pyobjc","python","python-automation","python-gui","randomizer","sms","sms-automation","tkinter","workflow"],"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/aimhco.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-10-14T01:01:59.000Z","updated_at":"2025-12-13T02:10:08.000Z","dependencies_parsed_at":"2025-10-15T09:51:06.671Z","dependency_job_id":"ddcb330a-11c6-4af9-aff8-2678eaff979a","html_url":"https://github.com/aimhco/random-phone-number-selector","commit_stats":null,"previous_names":["denwii25/random-phone-number-selector"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/aimhco/random-phone-number-selector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aimhco%2Frandom-phone-number-selector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aimhco%2Frandom-phone-number-selector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aimhco%2Frandom-phone-number-selector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aimhco%2Frandom-phone-number-selector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aimhco","download_url":"https://codeload.github.com/aimhco/random-phone-number-selector/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aimhco%2Frandom-phone-number-selector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31868512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"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":["applescript","automation","contact-management","contacts","gui","imessage","imessage-automation","macos","macos-app","macos-automation","messaging","pyobjc","python","python-automation","python-gui","randomizer","sms","sms-automation","tkinter","workflow"],"created_at":"2025-10-15T10:14:49.322Z","updated_at":"2026-04-16T02:32:34.703Z","avatar_url":"https://github.com/aimhco.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Random Phone Number Selector (Mystery Messenger)\n\n[![macOS](https://img.shields.io/badge/macOS-000000?logo=apple\u0026logoColor=F0F0F0)](#)\n[![Python](https://img.shields.io/badge/Python-3776AB?logo=python\u0026logoColor=fff)](#)\n[![Python Version](https://img.shields.io/badge/python-3.9%2B-blue)](#)\n[![License](https://img.shields.io/badge/license-MIT-blue)](#)\n\n\u003cp align=\"center\"\u003e\u003cimg width=\"350\" height=\"350\" alt=\"phone_logo\" src=\"assets/phone_logo.png\" /\u003e\u003c/p\u003e\n\nSmall Tkinter utility that collects a list of phone numbers, lets you draft a single message, and then (after confirmation) sends the message to one randomly selected number. The app also adds the number chosen to Contacts so Messages can deliver the iMessage/SMS.\n\n## Requirements\n\n- macOS with Contacts and Messages apps configured for SMS relay\n- Python 3.9+ (ships with Tkinter on macOS)\n\n## Setup\n\n1. Clone or download this directory.\n2. (Optional) Activate a virtual environment if you want to isolate dependencies.\n3. No additional packages are needed; the standard library covers everything.\n\n## Usage\n\n```bash\npython3 phone_numbers.py\n```\n\n1. Enter phone numbers one at a time and click **Add Another Phone Number** (or press Enter) to build the list. Press **OK** to move to the message window once you have at least one number.\n\u003cp align=\"center\"\u003e\u003cimg width=\"400\" alt=\"step1\" src=\"assets/step1.png\" /\u003e\u003c/p\u003e\n\n2. Draft your message and press **OK**.\n\u003cp align=\"center\"\u003e\u003cimg width=\"400\" alt=\"step2\" src=\"assets/step2.png\" /\u003e\u003c/p\u003e\n\n3. You will be prompted to confirm.\n\u003cp align=\"center\"\u003e\u003cimg width=\"250\" alt=\"step3\" src=\"assets/step3.png\" /\u003e\u003c/p\u003e\n\n4. When confirmed, the app randomly picks one saved number, adds a \"Test\" contact to Contacts, and sends the SMS through Messages.\n\u003cp align=\"center\"\u003e\u003cimg width=\"250\" alt=\"step4\" src=\"assets/step4.png\" /\u003e\n\u003cimg width=\"400\" alt=\"step5\" src=\"assets/step5.png\" /\u003e\u003c/p\u003e\n\n\n### macOS Permissions\n\nThe application requires the following macOS permissions:\n- Access to **Contacts** app\n- Access to **Messages** app\n- SMS must be set up and configured in Messages\n\n## Notes\n\n- The script hides which number was chosen to keep the selection random.\n- AppleScript commands run synchronously via `osascript`; failures will show up in the GUI and stdout.\n- Cleanup removes both windows after completion or cancellation.\n\n## Limitations\n\n- **macOS Only**: Requires macOS operating system for Contacts and Messages integration\n- **SMS Setup Required**: Messages app must be configured for SMS\n- **Fixed Contact Name**: All contacts are created with the name \"Test\"\n- **No Edit/Delete**: Cannot remove phone numbers once added (must restart app)\n\n## Troubleshooting\n\n### \"Failed to add contact\" error\n- Ensure the Contacts app is accessible\n- Check System Preferences \u003e Security \u0026 Privacy \u003e Privacy \u003e Contacts\n- Grant Terminal (or your Python interpreter) access to Contacts\n\n### \"Failed to send SMS\" error\n- Ensure the Messages app is open and configured for SMS\n- Check that your Mac is connected to your iPhone for SMS relay\n- Verify System Preferences \u003e Security \u0026 Privacy \u003e Privacy \u003e Automation permissions\n\n### Application doesn't start\n- Verify Python 3 is installed: `python3 --version`\n- Ensure tkinter is available: `python3 -m tkinter`\n\n## License\n\nDistributed under the MIT License. See [LICENSE](LICENSE) for more information.\n\n## Contact\n\nDenny - denny@aimh.co\n\nWebsite: https://www.aimh.co\n\nProject Link: https://github.com/aimhco/random-phone-number-selector/\n\n## Acknowledgements\n\nThis template was adapted from:\n[https://github.com/othneildrew/Best-README-Template](https://github.com/othneildrew/Best-README-Template).\n\nAn extensive list of Shields.io badges: [https://github.com/inttter/md-badges](https://github.com/inttter/md-badges) \n\nTemplates for open source and other licenses: \n[https://github.com/licenses/license-templates](https://github.com/licenses/license-templates) \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faimhco%2Frandom-phone-number-selector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faimhco%2Frandom-phone-number-selector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faimhco%2Frandom-phone-number-selector/lists"}