https://github.com/ebonnal/botable
[alpha] Record and Play keyboard and mouse events, via command line or Python.
https://github.com/ebonnal/botable
keyboard-events mouse-events playback-controls python python3 recording
Last synced: 27 days ago
JSON representation
[alpha] Record and Play keyboard and mouse events, via command line or Python.
- Host: GitHub
- URL: https://github.com/ebonnal/botable
- Owner: ebonnal
- License: apache-2.0
- Created: 2024-11-29T20:02:07.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-03-28T22:59:36.000Z (8 months ago)
- Last Synced: 2025-10-05T04:36:31.114Z (about 1 month ago)
- Topics: keyboard-events, mouse-events, playback-controls, python, python3, recording
- Language: Python
- Homepage:
- Size: 4.84 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/ebonnal/botable/actions)
# 🤖 `botable`
### *Record and play keyboard and mouse events*
## install
```bash
pip install botable
```
(installs `botable` in `PATH`)
## `botable` command
1. **record**: This records and saves events in a file.
- Stop the recording by pressing f1 (see `--exit-key` option to override).
- Press f2 to pause/resume the recording (see `--pause-key` option to override).
```bash
botable record > /tmp/recorded_events.jsonl
```
1. **play**: this plays the recorded events 3 times (`--loops`), doubling the original speed (`--rate`), and stores the played events into a file.
- Stop the playback by pressing f1 (see `--exit-key` option to override).
- Pause/resume the playback by pressing f2 (see `--pause-key` option to override):
```bash
cat /tmp/recorded_events.jsonl | botable play --loops 3 --rate 2 > /tmp/played_events.jsonl
```
## `botable` as a Python module
```python
from botable import record, play
# collects the recorded events
recorded_events = list(record())
# press f1 to stop the recording when you are done
# plays 3 times the recorded events and collects the played events
played_events = list(play(recorded_events, loops=3))
```