# Copycat
`copycat` is a tool that record and replay mouse and keyboard macro.
## Demo
This is a short demo of the tool:
https://github.com/user-attachments/assets/4ce6616e-8fa1-4efb-8c31-f31bfe8e827c
## Installation
This tool uses [poetry](https://python-poetry.org/) to manage dependencies and packaging. To install all the
dependencies simply run:
``` shell
poetry install
```
[//]: # (### Installation using pip (Coming soon))
[//]: # ()
[//]: # (You can install the tool using pip:)
[//]: # ()
[//]: # ()
[//]: # (``` shell)
[//]: # ()
[//]: # (pip install copycat)
[//]: # ()
[//]: # (```)
[//]: # ()
[//]: # ()
[//]: # (### Installation using AUR (Coming soon))
[//]: # ()
[//]: # (If you are using an Arch-based distribution, you can install the tool using the AUR package:)
[//]: # ()
[//]: # ()
[//]: # (``` shell)
[//]: # ()
[//]: # (yay -S copycat)
[//]: # ()
[//]: # (```)
## Usage
You can run the tool using poetry:
``` shell
poetry run copycat --help
```
Or you can run the tool using python:
``` shell
python -m copycat --help
```
Or you can run the tool directly from the directory or add it to your path:
``` shell
copycat --help
```
```shell
usage: copycat [-h] [--verbose] [--debug] [--quiet | --no-quiet | -q] [--version] [--gui] [--theme THEME] [--speed SPEED] [--reply REPLY]
Copycat is a tool that record and replay mouse and keyboard macro.
options:
-h, --help show this help message and exit
--verbose, -v Increase verbosity. Use more than once to increase verbosity level (e.g. -vvv).
--debug Enable debug mode.
--quiet, --no-quiet, -q
Do not print any output/log
--version, -V Show version and exit.
--gui Run the tool in GUI mode.
--theme THEME, -t THEME
Set the "ttkthemes" GUI theme. (Default: equilux)
--speed SPEED, -s SPEED
Speed of the macro playback. (Default: 1.0)
--reply REPLY, -r REPLY
Define macro name to reply.
```
### How it works
First, you need to record a macro, you can do this by running the tool in GUI mode:
``` shell
copycat --gui
```
If you want to use a different theme, you can use the `--theme` option:
``` shell
copycat --gui --theme "arc"
```
Visit the [ttkthemes](https://ttkthemes.readthedocs.io/en/latest/themes.html) documentation to see all the available
themes.
#### Record a macro
Then you can record a macro by clicking the `record` button. Once you start recording, the GUI will hide so you can
perform any mouse and keyboard actions.
In every moment, press the `ESC` key to `pause` the recording.
You can resume the recording pressing again the `record` button, or you can complete the record process and save the
macro by clicking on the `save` button.
Select the name of the macro and click on the `save` button.
#### Replay a macro
Once you have a macro saved, you can replay it in two ways:
1. by clicking on the `replay` button, and selecting the macro you want to replay and the replay `speed` (1.0 is the
real record speed).
2. by running the tool with the `--reply` option:
``` shell
copycat --reply <macro_name> --speed <speed>
```
## Development
### Testing
To run the tests simply run:
``` shell
poetry run test
```
### Update `setup.py`
To update the `setup.py` file with the latest dependencies and versions run:
``` shell
poetry run poetry2setup > setup.py
```
### Acknowledgements
This project was generated using powerful tools and libraries such as [poetry](https://python-poetry.org/),
[pydantic](https://docs.pydantic.dev/latest/), [pytest](https://docs.pytest.org/en/stable/), [ttkthemes](https://ttkthemes.readthedocs.io/en/latest/authors.html), [pynput](https://pynput.readthedocs.io/en/latest/) [pyautogui](https://pyautogui.readthedocs.io/en/latest/)
and more, I simply put the pieces together. Please check and support all the tools and libraries used in this project.
Raw data
{
"_id": null,
"home_page": "https://github.com/ZappaBoy/copycat",
"name": "copycat",
"maintainer": "ZappaBoy",
"docs_url": null,
"requires_python": "<3.13,>=3.11",
"maintainer_email": "federico.zappone@justanother.cloud",
"keywords": "copycat, productivity, macro, keyboard, mouse",
"author": "ZappaBoy",
"author_email": "federico.zappone@justanother.cloud",
"download_url": "https://files.pythonhosted.org/packages/27/8c/d66c00e5523bf9ef3c64ce7454796ad4cc8e66855d54f6a29ab21271876b/copycat-0.1.2.tar.gz",
"platform": null,
"description": "# Copycat\n\n`copycat` is a tool that record and replay mouse and keyboard macro.\n\n## Demo\n\nThis is a short demo of the tool:\n\nhttps://github.com/user-attachments/assets/4ce6616e-8fa1-4efb-8c31-f31bfe8e827c\n\n## Installation\n\nThis tool uses [poetry](https://python-poetry.org/) to manage dependencies and packaging. To install all the\ndependencies simply run:\n\n``` shell\npoetry install\n```\n\n[//]: # (### Installation using pip (Coming soon))\n\n[//]: # ()\n\n[//]: # (You can install the tool using pip:)\n\n[//]: # ()\n\n[//]: # ()\n\n[//]: # (``` shell)\n\n[//]: # ()\n\n[//]: # (pip install copycat)\n\n[//]: # ()\n\n[//]: # (```)\n\n[//]: # ()\n\n[//]: # ()\n\n[//]: # (### Installation using AUR (Coming soon))\n\n[//]: # ()\n\n[//]: # (If you are using an Arch-based distribution, you can install the tool using the AUR package:)\n\n[//]: # ()\n\n[//]: # ()\n\n[//]: # (``` shell)\n\n[//]: # ()\n\n[//]: # (yay -S copycat)\n\n[//]: # ()\n\n[//]: # (```)\n\n## Usage\n\nYou can run the tool using poetry:\n\n``` shell\npoetry run copycat --help\n```\n\nOr you can run the tool using python:\n\n``` shell\npython -m copycat --help\n```\n\nOr you can run the tool directly from the directory or add it to your path:\n\n``` shell\ncopycat --help\n```\n\n```shell\nusage: copycat [-h] [--verbose] [--debug] [--quiet | --no-quiet | -q] [--version] [--gui] [--theme THEME] [--speed SPEED] [--reply REPLY]\n\nCopycat is a tool that record and replay mouse and keyboard macro.\n\noptions:\n -h, --help show this help message and exit\n --verbose, -v Increase verbosity. Use more than once to increase verbosity level (e.g. -vvv).\n --debug Enable debug mode.\n --quiet, --no-quiet, -q\n Do not print any output/log\n --version, -V Show version and exit.\n --gui Run the tool in GUI mode.\n --theme THEME, -t THEME\n Set the \"ttkthemes\" GUI theme. (Default: equilux)\n --speed SPEED, -s SPEED\n Speed of the macro playback. (Default: 1.0)\n --reply REPLY, -r REPLY\n Define macro name to reply.\n```\n\n### How it works\n\nFirst, you need to record a macro, you can do this by running the tool in GUI mode:\n\n``` shell\ncopycat --gui\n```\n\nIf you want to use a different theme, you can use the `--theme` option:\n\n``` shell\ncopycat --gui --theme \"arc\"\n```\n\nVisit the [ttkthemes](https://ttkthemes.readthedocs.io/en/latest/themes.html) documentation to see all the available\nthemes.\n\n#### Record a macro\n\nThen you can record a macro by clicking the `record` button. Once you start recording, the GUI will hide so you can\nperform any mouse and keyboard actions.\nIn every moment, press the `ESC` key to `pause` the recording.\nYou can resume the recording pressing again the `record` button, or you can complete the record process and save the\nmacro by clicking on the `save` button.\nSelect the name of the macro and click on the `save` button.\n\n#### Replay a macro\n\nOnce you have a macro saved, you can replay it in two ways:\n\n1. by clicking on the `replay` button, and selecting the macro you want to replay and the replay `speed` (1.0 is the\n real record speed).\n2. by running the tool with the `--reply` option:\n\n``` shell\ncopycat --reply <macro_name> --speed <speed>\n```\n\n## Development\n\n### Testing\n\nTo run the tests simply run:\n\n``` shell\npoetry run test\n```\n\n### Update `setup.py`\n\nTo update the `setup.py` file with the latest dependencies and versions run:\n\n``` shell\npoetry run poetry2setup > setup.py\n```\n\n### Acknowledgements\n\nThis project was generated using powerful tools and libraries such as [poetry](https://python-poetry.org/),\n[pydantic](https://docs.pydantic.dev/latest/), [pytest](https://docs.pytest.org/en/stable/), [ttkthemes](https://ttkthemes.readthedocs.io/en/latest/authors.html), [pynput](https://pynput.readthedocs.io/en/latest/) [pyautogui](https://pyautogui.readthedocs.io/en/latest/)\nand more, I simply put the pieces together. Please check and support all the tools and libraries used in this project.\n",
"bugtrack_url": null,
"license": null,
"summary": "A tool that record and replay keyboard and mouse macro.",
"version": "0.1.2",
"project_urls": {
"Documentation": "https://github.com/ZappaBoy/copycat/blob/main/README.md",
"Homepage": "https://github.com/ZappaBoy/copycat",
"Repository": "https://github.com/ZappaBoy/copycat"
},
"split_keywords": [
"copycat",
" productivity",
" macro",
" keyboard",
" mouse"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "935216dffd58039f147ec9f0625b2c6448f2c5ed5a063eff227c3ae6a45bfce4",
"md5": "d966d706bd7914b56240d42a71ede6f2",
"sha256": "4390b22cea5e59101628e69888292cd4272d824a62a954ee49e7278a607e7fd5"
},
"downloads": -1,
"filename": "copycat-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d966d706bd7914b56240d42a71ede6f2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.11",
"size": 26308,
"upload_time": "2024-09-15T22:46:01",
"upload_time_iso_8601": "2024-09-15T22:46:01.402705Z",
"url": "https://files.pythonhosted.org/packages/93/52/16dffd58039f147ec9f0625b2c6448f2c5ed5a063eff227c3ae6a45bfce4/copycat-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "278cd66c00e5523bf9ef3c64ce7454796ad4cc8e66855d54f6a29ab21271876b",
"md5": "75207ba40fa4caacfe065fb2579d83e8",
"sha256": "7f963c4e05d34311457ef33fde8ceb9129cf36c5a665a78a2f7b6a00cb46a1dd"
},
"downloads": -1,
"filename": "copycat-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "75207ba40fa4caacfe065fb2579d83e8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.11",
"size": 22851,
"upload_time": "2024-09-15T22:46:02",
"upload_time_iso_8601": "2024-09-15T22:46:02.839198Z",
"url": "https://files.pythonhosted.org/packages/27/8c/d66c00e5523bf9ef3c64ce7454796ad4cc8e66855d54f6a29ab21271876b/copycat-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-15 22:46:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ZappaBoy",
"github_project": "copycat",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "copycat"
}