Skip to main content
Deno 2 is finally here πŸŽ‰οΈ
Learn more

stars issues ci version deno version vr scripts nest badge

Cross-platform desktop automation framework for Deno.

Features

  • Keyboard

    • Type a string using .type
    • Tap a key using .tap
    • Toggle key using .toggleKey
  • Mouse

    • Simulate mouse movement using .moveMouse
    • Click using .click
    • Simulate a scroll using .scroll
    • Get mouse position using .mousePosition
    • Get mouse position pixel color .pixelColor
  • Screen

    • Capture screen using .screenshot
    • Get screen size using .screenSize
    • Check if point out of bounds using .pointVisible
    • Get number of pixels in a point using .screenScale
  • Notifications

    • Native popup using .alert
    • Notifications using .notify
  • Monitors

    • Get the number of monitors using .getMonitors
  • Window management (only for linux)

    • Get window title using .getWindow
    • Transform windows size using .transformByIndex

Documentation

Detailed documentation of the API is available at:

https://autopilot.mod.land

Requirements

Linux

sudo apt-get update
sudo apt-get install libdbus-1-dev x11-xserver-utils wmctrl libxtst-dev cmake libc-dev libx11-dev libxcb1-dev

Usage

Running your Deno script with AutoPilot requires some flags

deno run --unstable -A file.ts

NOTE: Prebuilt binaries are automatically downloaded the first time you import Autopilot in your project and are cached.

import AutoPilot from 'https://deno.land/x/autopilot@0.2.1/mod.ts';

// create a new AutoPilot instance.
var pilot = new AutoPilot();

// type a string
await pilot.type("Yay! This works");

// alert something
await pilot.alert("This is a alert");

// get screen size
await pilot.screenSize();

// move mouse
await pilot.moveMouse(200, 400);

// take a full-screen screenshot
await pilot.screenshot("screenshot.png");

Env variables

  • CACHE: Set if you want to update the release from Github.
  • DEV: Set if you want t use the development debug builds.

Development

Clone this repo and run cargo build to produce a development build.

Commands

  • Run tests: vr test
  • Run and produce benchmarks: vr bench
  • Format code fmt: vr fmt
  • Create development build: vr build

Contributing

Contributing code and ideas to AutoPilot is really easy! Create an issue or PR. :)

License

See MIT License. All rights reserved. Divy Srivastava 2020.