Skip to main content

⌨️ typeout

Simulate keystrokes to type text into remote desktops, VMs, or paste-blocked inputs.

PyPI version License: MIT Python 3.9+ Ruff

Ever had to input a 30-character random password into a VirtualBox console, VMware ESXi web terminal, Citrix / VNC / RDP session, or a banking portal that blocks Ctrl+V?

typeout bypasses paste restrictions by acting as a virtual keyboard. It countdowns so you can switch windows, then simulates hardware keystrokes directly into the active field.


🚀 Installation

Install using uv, pipx, or standard pip:

# With uv (recommended)
uv tool install typeout

# With pipx
pipx install typeout

# With pip
pip install typeout

⚡ Quick Start

# Type text after 3 seconds:
typeout "my-password" -w 3

# Secure hidden prompt (keeps passwords out of your shell history!):
typeout -s -w 5

# Type whatever is in your clipboard, then press Enter:
typeout -c -w 3 --enter

# Type a public key or script into an air-gapped terminal:
typeout -f ~/.ssh/id_ed25519.pub -w 5

# Pipe text directly from stdin:
echo "export TOKEN=xyz" | typeout -w 2

🛠️ Options & Flags

Flag Description
[text] Positional argument: text to type out.
-s, --secure Prompts for secret input via getpass (won't leak into terminal history).
-c, --clipboard Reads input directly from system clipboard.
--clear-clipboard Wipes the clipboard immediately after reading it for security.
-f, --file <path> Reads text from a local file.
-w, --wait <sec> Countdown in seconds before typing starts (default: 3).
-r, --repeat <n> Repeat typing sequence n times (default: 1).
--enter Automatically presses the Enter key after typing finishes.
--human Natural typing cadence preset with subtle randomized jitter.
--delay <sec> Base delay between characters in seconds (default: 0.012).
--jitter <sec> Maximum random extra delay added per character.
-q, --quiet Suppresses countdown timer output.
-v, --version Show program version.

💡 Common Use Cases

1. Pasting Passwords without Leaving Them in Bash History

Using typeout "MySecret" saves the password to ~/.bash_history. Instead, use -s:

typeout -s -w 4
# Enter secure text to typeout: [hidden]
# [typeout] Switch to target window now... Typing in 4s...

2. Typing from Clipboard into VMware / VirtualBox / RDP

Copy the text in your host OS, then run:

typeout -c -w 3 --enter

Switch to the VM window. 3 seconds later, it types out the clipboard contents and presses Enter.

3. Typing into Laggy or Packet-Loss Prone Consoles

If a slow remote connection is dropping letters, slow down the typing rate:

typeout "long_command_to_run" --delay 0.05

🧪 Development

typeout uses uv for high-speed dependency management and development:

# Clone and setup
git clone https://github.com/prasannareddych/typeout.git
cd typeout

# Run tests
uv run pytest

# Run linter and formatter
uv run ruff check .
uv run ruff format .

📄 License

MIT License © Prasanna Reddy

Metadata

Release files for typeout 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for typeout 0.1.0
File Size Uploaded Provenance
typeout-0.1.0.tar.gz 5.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for typeout 0.1.0
File Interpreter ABI Platform
typeout-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.9 kB

Release files / typeout-0.1.0.tar.gz

Download URL typeout-0.1.0.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2a3312dddb610ae59b51d937702f5fadcd0baf6aae9d2dec859860de373a01d5
BLAKE2b-256 checksum
How to use checksums
7df8548aa1a4a9e8cfc30f1dfef308eced7e234f44f6d4a9b193043edb0568ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / typeout-0.1.0-py3-none-any.whl

Download URL typeout-0.1.0-py3-none-any.whl
Size 7.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8cdfcf3fceb3cb99f9901d7507430d1832fcefd4e6e268c9063c52bd03948822
BLAKE2b-256 checksum
How to use checksums
7d48780c85682d584cf88ab6c57d46b2a30e044ffa73fc4657e198ea6dceca29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for typeout 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page