Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time
January 26, 2023 08:11
August 25, 2021 10:19
January 16, 2023 10:42
February 20, 2023 15:41
February 20, 2023 15:41
February 20, 2023 15:41
January 11, 2023 11:29
February 20, 2023 15:41
January 25, 2023 15:13
January 14, 2023 06:33
February 20, 2023 15:41
December 23, 2022 11:18


vncdotool is a command line VNC client. It can be useful to automating interactions with virtual machines or hardware devices that are otherwise difficult to control.

It's under active development and seems to be working, but please report any problems you have.

Quick Start

To use vncdotool you will need a VNC server. Most virtualization products include one, or use RealVNC, TightVNC or clone your Desktop using x11vnc.

Once, you have a server running you can install vncdotool from pypi:

pip install vncdotool

and then send a message to the vncserver with:

vncdo -s vncserver type "hello world"

The vncserver argument needs to be in the format address[:display|::port]. For example:

# connect to on default port 5900
vncdo -s type "hello world"

# connect to localhost on display :3 (port 5903)
vncdo -s localhost:3 type "hello world"

# connect to on port 5902 (two colons needed)
vncdo -s type "hello world"

# connect via IPv6 to localhost on display :3 (port 5903)
vncdo -s '[::1]:3' type "hello IPv6"
#         ^   ^ mind those square brackets around the IPv6 address

You can also take a screen capture with:

vncdo -s vncserver capture screen.png

More documentation can be found on Read the Docs.


If you need help getting VNCDoTool working try the community at _Stackoverflow

Patches, and ideas for improvements are welcome and appreciated, via _GitHub issues. If you are reporting a bug or issue please include the version of both vncdotool and the VNC server you are using it with.


Thanks to Chris Liechti, techtonik and Todd Whiteman for developing the RFB and DES implementations used by vncdotool. Also, to the TigerVNC project for creating a community focus RFB specification document