{"id":30821135,"url":"https://github.com/thatsinewave/message-paster","last_synced_at":"2025-09-06T10:44:01.722Z","repository":{"id":306243811,"uuid":"927848982","full_name":"ThatSINEWAVE/Message-Paster","owner":"ThatSINEWAVE","description":"a simple yet powerful tool for assigning custom keybinds to frequently used messages. The application allows you to send predefined messages to any text field by simply pressing the corresponding keybind. It uses Python's pyautogui for simulating keystrokes and keyboard for capturing hotkeys.","archived":false,"fork":false,"pushed_at":"2025-07-24T11:05:23.000Z","size":25,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-09T19:57:33.291Z","etag":null,"topics":["automated-messages","automated-messaging","automation","good-first-contribution","good-first-issue","good-first-issues","good-first-pr","good-first-pr-first-contribution","good-first-project","good-first-prs","goodfirstissue","keybinder","keybinding","keybindings","message-paster","python","python-script","python3","script","thatsinewave"],"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/ThatSINEWAVE.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"ThatSINEWAVE","ko_fi":"thatsinewave"}},"created_at":"2025-02-05T16:38:53.000Z","updated_at":"2025-07-24T11:05:27.000Z","dependencies_parsed_at":"2025-07-24T15:48:07.115Z","dependency_job_id":"a9096af1-215a-47b3-8d7c-2e67058210d2","html_url":"https://github.com/ThatSINEWAVE/Message-Paster","commit_stats":null,"previous_names":["thatsinewave/message-paster"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ThatSINEWAVE/Message-Paster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThatSINEWAVE%2FMessage-Paster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThatSINEWAVE%2FMessage-Paster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThatSINEWAVE%2FMessage-Paster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThatSINEWAVE%2FMessage-Paster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThatSINEWAVE","download_url":"https://codeload.github.com/ThatSINEWAVE/Message-Paster/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThatSINEWAVE%2FMessage-Paster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273892841,"owners_count":25186561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"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":["automated-messages","automated-messaging","automation","good-first-contribution","good-first-issue","good-first-issues","good-first-pr","good-first-pr-first-contribution","good-first-project","good-first-prs","goodfirstissue","keybinder","keybinding","keybindings","message-paster","python","python-script","python3","script","thatsinewave"],"created_at":"2025-09-06T10:43:59.263Z","updated_at":"2025-09-06T10:44:01.705Z","avatar_url":"https://github.com/ThatSINEWAVE.png","language":"Python","funding_links":["https://github.com/sponsors/ThatSINEWAVE","https://ko-fi.com/thatsinewave"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Message Paster\n\nMessage Paster is a simple yet powerful tool for assigning custom keybinds to frequently used messages. The application allows you to send predefined messages to any text field by simply pressing the corresponding keybind. It uses Python's `pyautogui` for simulating keystrokes and `keyboard` for capturing hotkeys.\n\n![Message Paster](https://github.com/user-attachments/assets/593623bf-17c7-47d6-a056-74aa25b6954f)\n\n\u003c/div\u003e\n\n## Features\n\n- Assign custom keybinds to predefined messages.\n- Adjust typing speed with a user-friendly slider.\n- Easily load and save keybind configurations and messages in JSON format.\n- Intuitive graphical user interface built with Tkinter.\n- Threaded execution for sending messages, ensuring smooth performance without blocking other actions.\n\n\u003cdiv align=\"center\"\u003e\n\n## ☕ [Support my work on Ko-Fi](https://ko-fi.com/thatsinewave)\n\n\u003c/div\u003e\n\n## Installation\n\n1. Clone or download the repository.\n2. Install the required dependencies by running:\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n   The dependencies are:\n   - `keyboard`: for managing hotkeys.\n   - `pyautogui`: for simulating typing.\n   - `tkinter`: for creating the graphical interface.\n   - `json`: for reading and writing configuration files.\n\n## Usage\n\n1. Run the `paster.py` script:\n\n   ```bash\n   python paster.py\n   ```\n\n2. The window will open, allowing you to configure the keybinds and typing speed.\n\n3. For each message, you can click on it to assign a keybind. If a key is already assigned, you will be prompted with a warning.\n\n4. Adjust the typing speed using the slider for faster or slower typing.\n\n5. Once the keybinds are set up, press the assigned keys to send the corresponding message to the currently focused text field.\n\n## Configuration Files\n\n- **keybinds.json**: Stores the keybinds for each message.\n  - Example format:\n    ```json\n    {\n        \"Message 1\": \"F1\",\n        \"Message 2\": \"F2\"\n    }\n    ```\n- **messages.json**: Stores the predefined messages that can be assigned to keybinds.\n  - Example format:\n    ```json\n    {\n        \"Message 1\": \"[Placeholder]\",\n        \"Message 2\": \"[Another Placeholder]\"\n    }\n    ```\n\n## Customization\n\nYou can edit `messages.json` to change the predefined messages and `keybinds.json` to manage your key assignments.\n\n## Troubleshooting\n\n- If the program doesn't detect the keypresses, ensure you have the required permissions to listen for keyboard events, especially on Linux or macOS.\n- If you encounter issues with the message sending, verify that the correct application or text field is focused.\n\n\u003cdiv align=\"center\"\u003e\n\n## [Join my discord server](https://thatsinewave.github.io/Discord-Redirect/)\n\n\u003c/div\u003e\n\n## Contributing\n\nIf you'd like to contribute to this project, please fork the repository and create a pull request.\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthatsinewave%2Fmessage-paster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthatsinewave%2Fmessage-paster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthatsinewave%2Fmessage-paster/lists"}