Volver al ranking

repeats/Repeat

Java

Cross-platform mouse/keyboard record/replay and automation hotkeys/macros creation, and more advanced automation features.

hotkeyreplaykeyboard-shortcutsjavapythoncsharpkeyboardmousemacrosmacroautomationautomation-framework
Crecimiento de estrellas
Estrellas
1.1k
Forks
81
Crecimiento semanal
Issues
11
4006008001k
oct 2016ene 2020abr 2023jul 2026
ArtefactosMavengit clone https://github.com/repeats/Repeat.git
README

(For Vietnamese audience: Xem README bản tiếng Việt tại đây.)

Repeat

Full-fledged mouse/keyboard record/replay and sophisticated automation macros/hotkeys creation using modern programming languages, and more advanced automation features. Available across three major OSes: Windows, OSX, and Linux.

Demo

Note that the following gifs are at 1x speedup. Word expansion demo

Recording & playback

Fuzzy find demo

Mouse gesture activation

Multi clipboard

Simple manually build task

Task creation - All caps

Task creation - Fixing a typo

Task creation - Clipboard with history

Playing Collapse 3

Playing Plants vs Zombies

Features

  1. Record and replay computer activities.
  2. Store recorded tasks and replay them later.
  3. Write your own task in your favorite text editor using Python or Java so you have more control over the computer.
  4. Assign multiple arbitrary hotkey combinations to activate a stored task.
  5. Assign multiple mouse gestures to activate a stored task.
  6. Compile and run tasks on a group of remote machines.
  7. Manage your Repeat tasks (either recorded or written).

Disclaimer

  1. This is not a password storage program. Source code written is not encrypted.
  2. This program executes your own code. Use the advanced compile - replay feature carefully. Test your task before adding it to the list.

Getting started and advanced features

Check out the wiki page.

Requirements

JDK 8.0 or above. Both Oracle JDK and OpenJDK are OK.

If you wish to write/run tasks in Python, then Python3 is required.

On Windows, no special permission required.

On Linux, X11 window system. This would not work on Wayland window system.

On OSX, accessibility permission is required for the native hook to work. Enable this in System Preference --> Security & Privacy --> Accessibilty --> Privacy.

Installation

Just download the latest version, put the jar in a separate directory, and run it with java. That's it! You may need appropriate privileges since Repeat needs to listen to and/or control the mouse and keyboard.

The recommended way to launch the program is through terminal:

 $cd <jar_directory>
 $java -jar Repeat.jar

Important: The path containing the JAR file must not have space in it.

Note that since Java 9, the jar file must be launched from a JDK (as opposed to a JRE) to be able to compile file. The workaround used in Java 8 and before to set Java home no longer works.

FAQ

What is the difference between this and AutoHotkey or AutoKey?

  1. This runs on any platform that supports Java and is non headless. AutoHotkey is written for Windows only, and AutoKey is only for Linux. Repeat works on Linux, Windows, and OSX. The written macro can be re-used cross platforms.
  2. The only limit to your hotkey power is your knowledge of the language you write your tasks in (e.g. Java, Python or C#). You don't have to learn a new meta language provided by AutoHotkey. This allows you to leverage your expertise in the language chosen and/or the immense support from the internet.

Why is this only available in non headless system?

It does not make sense to listen to keyboard and mouse events in a headless system. How can you move your mouse if you have no screen? What would typing a key mean in such system?

I am running a Linux machine. Will the C# module get started at application start time?

C# module is disabled if you are on a non Windows OS. Nothing from C# module will get started.

Why can't this be a web service? It's a lot of effort downloading the JAR and run it.

This application listens on your mouse and keyboard events as well as allowing you to simulate mouse/keyboard events. If I could do such thing from a web browser, some hackers must have got your personal information, passwords, bank account number by now.

Libraries used

  1. Simple Native Hooks
  2. Argo JSON
  3. Jama - A Java matrix package
  4. Apache HttpComponents Core
  5. Apache HttpClient
  6. FreeMarker Java Template Engine
  7. Light Bootstrap Dashboard
  8. CodeMirror: a versatile text editor in Javascript
  9. Chart.js: simple yet flexible JavaScript charting
Repositorios relacionados
jaywcjlove/hotkeys-js

➷ A robust Javascript library for capturing keyboard input. It has no dependencies.

TypeScriptnpmMIT Licensehotkeysjavascript
jaywcjlove.github.io/hotkeys-js
7.1k412
boppreh/keyboard

Hook and simulate global keyboard events on Windows and Linux.

PythonPyPIMIT Licensepythonkeyboard-events
4k453
JohannesKlauss/react-hotkeys-hook

React hook for using keyboard shortcuts in components.

TypeScriptnpmMIT Licensereacthooks
react-hotkeys-hook.vercel.app
3.5k165
sindresorhus/KeyboardShortcuts

⌨️ Add user-customizable global keyboard shortcuts (hotkeys) to your macOS app in minutes

SwiftMIT Licensekeyboard-shortcutshotkey
swiftpackageindex.com/sindresorhus/KeyboardShortcuts/documentation/keyboardshortcuts/keyboardshortcuts
2.7k248
pit-ray/win-vind

You can operate Windows with key bindings like Vim.

C++MIT Licensevimmouse
pit-ray.github.io/win-vind/
2.3k58
ssleptsov/ninja-keys

Keyboard shortcuts interface for your website. Working with static HTML, Vanilla JS, Vue, React, Svelte.

TypeScriptnpmMIT Licenseweb-componentslit-element
ninja-keys-demo.vercel.app
1.7k69
benbuck/rbtray

A fork of RBTray from http://sourceforge.net/p/rbtray/code/.

C++GNU General Public License v2.0traytray-icon
1.5k114
wo52616111/capslock-plus

An efficiency tool that provides various functions by enhancing the Caps Lock key into a modifier key.

AutoHotkeyGNU General Public License v2.0capslockautohotkey
capslox.com/capslock-plus/
1.3k216
pdcgomes/XCActionBar

"Alfred for Xcode" plugin

Objective-CMIT Licensexcodeobjective-c
1.2k36
Eun/MoveToDesktop

Move windows using hotkeys or the system menu

C++Otherdesktopwindows-10
1.1k111