The internal architecture of VRT-plus revolves around the pseudo terminal concept. Pseudo terminal is a software device provided by the host operating system that acts like a regular terminal from the application standpoint, but instead of a keyboard and a screen it offers an API that allows to "type" on its keyboard and "look" at its screen.

VRT-plus uses pseudo terminal to drive the application. All application input and output is handled through the terminal's software API.

To record a user session, VRT-recorder creates a pseudo terminal and "connects" it to the current terminal. To the user, it appears just like if they were working with the system as usual. But VRT-recorder can now "eavesdrop" on all user activity and application responses. No data, whether application or terminal bound, can escape the recorder that stands on the data path. All the original sequences of user input and application responses are captured along with timing information in the session log file generated by VRT-recorder. The resulting log can be viewed and analyzed off-line.

More importantly, this log can be used to generate a script program coded in VRT-script language. This can be accomplished using a program called VRT-compiler.

To execute a script (whether compiled by VRT-compiler, or edited manually), VRT-exec also creates a pseudo terminal. Then VRT-exec works in accordance with the script logic, sending input sequences and analyzing application responses as directed by script commands. A built-in terminal emulator constructs a "virtual" terminal screen, so that the script commands can access the application "screen" in terms of rows and columns. Script flow can be changed based on the data collected from the screen. In other words, VRT-exec plays the role of a virtual user.

If the script was compiled for a multiple user session, the execution is synchronized to follow the original event sequence. In this way multiple virtual users can synchronously simulate real input. Any number of scripts can be run simultaneously. Parameters can be passed to the script to alter execution scenarios.