{"id":21311222,"url":"https://github.com/daxter-army/key-cast","last_synced_at":"2025-07-11T23:32:28.426Z","repository":{"id":62319601,"uuid":"406250755","full_name":"daxter-army/key-cast","owner":"daxter-army","description":"Cast your key presses and mouse clicks on the screen, while casting your favorite application on the screen. Better than the rest.","archived":false,"fork":false,"pushed_at":"2023-10-02T18:59:06.000Z","size":106401,"stargazers_count":27,"open_issues_count":5,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-02T05:10:05.486Z","etag":null,"topics":["cross-platform","keyboard-events","mouse-events","pyinstaller","pynput","screen-cast","tkinter-gui"],"latest_commit_sha":null,"homepage":"https://daxter-army.github.io/key-cast/","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/daxter-army.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2021-09-14T06:27:29.000Z","updated_at":"2025-06-01T17:53:07.000Z","dependencies_parsed_at":"2025-06-01T19:52:27.909Z","dependency_job_id":null,"html_url":"https://github.com/daxter-army/key-cast","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/daxter-army/key-cast","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daxter-army%2Fkey-cast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daxter-army%2Fkey-cast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daxter-army%2Fkey-cast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daxter-army%2Fkey-cast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daxter-army","download_url":"https://codeload.github.com/daxter-army/key-cast/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daxter-army%2Fkey-cast/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264913887,"owners_count":23682732,"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","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":["cross-platform","keyboard-events","mouse-events","pyinstaller","pynput","screen-cast","tkinter-gui"],"created_at":"2024-11-21T17:17:00.597Z","updated_at":"2025-07-11T23:32:23.648Z","avatar_url":"https://github.com/daxter-army.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003clink rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css\" integrity=\"sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\" /\u003e\n\n[![Linux](https://svgshare.com/i/Zhy.svg)](https://svgshare.com/i/Zhy.svg)\n[![Windows](https://svgshare.com/i/ZhY.svg)](https://svgshare.com/i/ZhY.svg)\n[![macOS](https://svgshare.com/i/ZjP.svg)](https://svgshare.com/i/ZjP.svg)\n[![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/)\n[![PyPI license](https://img.shields.io/pypi/l/ansicolortags.svg)](https://pypi.python.org/pypi/ansicolortags/)\n\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/daxter-army/key-cast/\"\u003e\n    \u003cimg src=\"./logo/kc_64x64_logo.png\" alt=\"Logo\" width=\"50\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eKey Cast\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Screen cast your keyboard and mouse clicks in style\n    \u003cbr /\u003e\n    \u003ca href=\"https://daxter-army.github.io/key-cast/\"\u003e\u003cstrong\u003eProject Homepage »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://daxter-army.github.io/key-cast/\"\u003eView Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://daxter-army.github.io/key-cast/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://daxter-army.github.io/key-cast/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\u003cdetails open=\"open\"\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eIntroduction\u003c/a\u003e\n      \u003ca href=\"#functionalities\"\u003eFunctionalities\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started (Development)\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#building\"\u003eBuilding\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003c!-- \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e --\u003e\n    \u003c!-- \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e --\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgement\"\u003eAcknowledgement\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#info\"\u003eInfo\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#issues\"\u003eIssues\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## ✨ Introduction\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"./docs/docs_assets/keycast_demo_gif_2.gif\" width=\"75%\" alt=\"Keycast in action\"/\u003e\n\u003c/p\u003e\n\nIn this internet age, everyone is learning to stay ahead in their career or to develop something new, creative and fun. Digging the internet for quality tutorials, watching that youtube videos of blender, illustrator, photoshop, webdev and what not. To give back to your community, you also thought of creating some tutorials, but guess what, you are not having any good keyboard and mouse indicators, and that ones which are available in the market, do not suits your personality.\n\u003cbr/\u003e\u003cbr/\u003e\nHere comes **Keycast**, which enables you to, screen cast your keyboard and mouse clicks, while also being pleasant to your eyes and why you should consider Keycast, here's why:\n\n- **Cross-platform:** Run it anywhere. Run it on Linux, Windows or OS X.\n- **Keybaord \u0026 mouse clicks:** From keyboard presses to mouse clicks, we've covered you all!.\n- **Drag it anywhere:** Obstructing your view? place it anywhere on the screen.\n- **Show in style:** Choose from the themes, suit your mood.\n- **Transparency control:** Adjust the transparency level of the panel as per your convenience.\n\n## 🌠 Functionalities\n\n**Following are the functionalities implemented till now:**\n\n- Show previous and current keypresses/key combinations\n- Show mouse activity\n- Drag and drop anywhere on the screen\n- Various themes\n- Adjust the transparency level of the window\n\n### 🛠 Built With\n\nThis was achieved with **Python** (cPython), with **Pynput** as global keyboard and mouse event listener, **Tkinter** powering the GUI, \u0026 **Pyinstaller** for creating distributable package files.\n\n- [Python](https://python.org)\n- [Tkinter](https://docs.python.org/3/library/tkinter.html)\n- [Pynput](https://pypi.org/project/pynput/)\n- [Pyinstaller](https://pyinstaller.readthedocs.io/en/stable/)\n\n\u003c!-- GETTING STARTED --\u003e\n\n## 🏎 Getting Started\n\n- You do not need Python installed to use this app, just go to the application [Homepage](https://daxter-army.github.io/key-cast), and download the package as per your OS.\n\n**For Linux/OS X users only**\n\n- After downloading the file, open the properties of the file, go to permissions tab and check the option saying **allow executing file as program**, and then run the file, now it would run smoothly.\n\n## 🚲 Getting Started (Development)\n\nThis section will help you to get started with the project, locally\n\n## 🗜 Prerequistes\n\n- You should be having Python version \u003e 3.6.x\n- Install the requirements from **REQUIREMENTS.txt** file via **pip** before actually running the application, with\n\n```python\n    pip3 install -r REQUIREMENTS.txt\n```\n\n### 🏍️ Installation\n\n- Clone the project locally with\n\n```sh\n    git clone git@github.com:daxter-army/key-cast.git\n```\n\n- Navigate to the project dir and activate virtual env\n- _for windows_\n\n```sh\n    .\\keycast_env\\bin\\activate\n```\n\n- _for linux/OS X_\n\n```sh\n    source .\\keycast_env\\bin\\activate\n```\n\n- Now you'll see that virtual env has been activated, after this hit\n\n```sh\n    python3 keycast_dev.py\n```\n\n- You have done it, you will be seeing a window running on your screen, if everything goes well.\n\n### 🧪 Building\n\nTo create one distributable file on linux/OS X, type\n\n```sh\n    pyinstaller keycast_prod.py --onefile -i \"path_to_icon/icon_file.ico\" --add-data \"assets:assets\"\n```\n\nWith hidden console window, in Windows, type\n\n```sh\n    pyinstaller keycast_prod.py --onefile -i \"path_to_icon/icon_file.ico\" --add-data \"assets;assets\" --windowed\n```\n\nWith console window in the background, in Windows, remove **--windowed** argument\n\n\u003c!-- USAGE EXAMPLES --\u003e\n\n## 🥏 Usage\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/docs_assets/ui-ss-def.png\" width=\"30%\" alt=\"gui-default\" /\u003e\n  \u003cimg src=\"./docs/docs_assets/ui-ss-van.png\" width=\"30%\" alt=\"gui-vanilla\" /\u003e\n  \u003cimg src=\"./docs/docs_assets/ui-ss-hac.png\" width=\"30%\" alt=\"gui-hacker\" /\u003e\n\u003c/p\u003e\n\n- You can use it with any of your favourite software while making any tutorial, screen casting your screen, or while streaming your game over the internet.\n- Choose any of the style that suits your mood, and flex in your way. 😎\n\n\u003c!-- CONTRIBUTING --\u003e\n\u003c!-- ## Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request --\u003e\n\n\u003c!-- LICENSE --\u003e\n\n## 🗄 License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003c!-- CONTACT --\u003e\n\n## 📱 Contact\n\nMehul Singh Teya - mehulsinghteya@gmail.com | [LinkedIn](https://linkedin.com/in/mehulsinghteya)\n\u003cbr/\u003e\nProject Link: [https://github.com/daxter-army/key-cast](https://github.com/daxter-army/key-cast)\n\u003cbr/\u003e\nProject Homepage : [https://daxter-army.github.io/key-cast](https://daxter-army.github.io/key-cast)\n\n## 🙏 Acknowledgement\n\n- [Fontawesome](https://fontawesome.com)\n- [Python](https://python.org)\n- [Tkinter](https://docs.python.org/3/library/tkinter.html)\n- [Pynput](https://pypi.org/project/pynput/)\n- [Pyinstaller](https://pyinstaller.readthedocs.io/en/stable/)\n\n## ℹ Info\n\n- Right now it is heavily under development, and is being developed in linux (ubuntu). You can see unidentified characters being shown by the software, because sometimes different key combos having different key codes, I am working on this to support as many as keyboards and key combos possible.\n\n- **windows_bundle** directory contains bundled package for windows, same is the case with **linux_bundle**, bundle to be created for mac OS X.\n\n- The main file that runs is **/dist/keycast_prod.exe**, these are also the files that are available on the homepage to be downloaded.\n\n- For development use, **keycast_dev.py**, then copy-paste the whole code to **keycast_prod.py**, and also paste the code of additional files in that file also, to increase the performance.\n\n## 🐞 Issues\n\nVisit Issues tab\n\u003cbr/\u003e\n\u003ca href=\"https://github.com/daxter-army/key-cast/issues\"\u003eIssues\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaxter-army%2Fkey-cast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaxter-army%2Fkey-cast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaxter-army%2Fkey-cast/lists"}