⌨️ typeout
Simulate keystrokes to type text into remote desktops, VMs, or paste-blocked inputs.
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| typeout-0.1.0.tar.gz | 5.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.