autome

Write GUI automation scripts with Nim

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:24

Installation

nimble install autome
choosenim install autome
git clone https://github.com/miere43/autome

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
autome - - - - - - -

Source

Repository https://github.com/miere43/autome
Homepage https://github.com/miere43/autome
Registry Source nimble_official

README

autome

Simple GUI automation tool (Windows only).

Features

  • mouse: get/set cursor pos, emit clicks
  • keyboard: send characters (ASCII only)
  • window: get/set window pos, find, show/hide, activate/deactivate, minimize/maximize/unminimize/unmaximize, focus/unfocus
  • hotkeys: run your code when user presses certain keyboard combination.

Documentation

Docs are not always up-to-date, but still: http://miere.ru/docs/autome/

You can also generate docs yourself with $ nim doc2 autome.

Example

import autome

var wnd = findWindow("Some app")
wnd
  .attach() # attach this thread to window thread, so we can use show()
  .show() # make sure window is in front of other windows
  .detach() # detach this thread
mouse
  .move(400, 400) # select textbox
  .click()
  # press on text box three times so its text got selected
  .emit(mLeft, msDown, msDown, msDown, msUp)
keyboard
  .send("D:/pic.tga") # replace text
mouse
  .move(600, 600) # click submit button
  .click()

TODO

  • close window proc
  • clean up stuff that was leaved after refactoring
  • check out why window.size & window.clientsize procs' report wrong values
  • implement ton of stuff I forgot about