A sleek, browser-based converter that transforms plain text into Rubber Ducky Script 1.0 payloads — no installs, no dependencies, just open and go.
REM ================================================
REM Generated by DuckyType
REM github.com/your-username/duckytype
REM ================================================
DELAY 500
STRING Hello, world!
ENTER
DELAY 100
STRING This was converted automatically.
ENTER
DELAY 100
- Instant conversion — paste any text and it's converted to Ducky Script in real time
- Adjustable line delay — slider + manual input (0–99999ms) controls the
DELAYbetween each typed line - Initial delay — configurable startup
DELAYbefore typing begins - Per-line ENTER toggle — choose whether each line ends with an
ENTERkeystroke - Empty line handling — empty lines become
ENTERkeystrokes, or skip them entirely - Live stats — see input line count, total commands, character count, and estimated runtime
- Export as
.txt— download your payload file ready to flash to a USB Rubber Ducky - One-click copy — copy the full script to clipboard instantly
- Auto REM header — every generated script includes a clean comment block at the top
- Line numbers — on both input and output panels
- Zero dependencies — single
.htmlfile, works offline
- Fork or clone this repo
- Go to Settings → Pages
- Set source to
mainbranch,/ (root) - Visit
https://your-username.github.io/duckytype
Just open the file in any browser:
git clone https://github.com/your-username/duckytype.git
cd duckytype
open ducky-converter.html # macOS
start ducky-converter.html # Windows
xdg-open ducky-converter.html # LinuxNo server required. No npm install. No build step.
Each non-empty line of your input becomes:
STRINGDELAY 30 ← (optional, inserted before every STRING command)
STRING your line of text here
ENTER ← (optional, toggled on by default)
DELAY 100 ← (optional, based on your delay setting)
Each empty line becomes:
ENTER
This maps directly to Rubber Ducky Scripting Language 1.0 — the same syntax used by the original USB Rubber Ducky.
| Control | Description |
|---|---|
| Line Delay | Milliseconds of DELAY inserted after each line (slider or number input) |
| Initial Delay | DELAY added at the very top of the script before typing starts |
| String Delay | Sets STRINGDELAY <ms> before every STRING command — controls the pause between each individual character typed |
| ENTER after each line | Toggle whether each STRING command is followed by ENTER |
| Add DELAY between lines | Toggle whether delay commands are inserted between lines |
| Add STRINGDELAY | Toggle whether the STRINGDELAY command is emitted |
| Skip empty lines | When enabled, blank lines in input are ignored entirely |
| Export .txt | Downloads the script as payload.txt |
| Copy Script | Copies the full output to your clipboard |
| Clear | Resets both input and output panels |
| Command | Description |
|---|---|
STRING <text> |
Types the given string as keyboard input |
STRINGDELAY <ms> |
Sets the delay between each character typed (applies to all following STRING commands) |
ENTER |
Presses the Enter key |
DELAY <ms> |
Waits for the specified number of milliseconds |
REM <text> |
Comment — ignored during execution |
For the full command reference, see the official Hak5 documentation.
This tool is intended for educational purposes, penetration testing, and authorized security research only. Using a USB Rubber Ducky or any HID injection device on systems you do not own or have explicit permission to test is illegal. The author assumes no responsibility for misuse.
duckytype/
├── ducky-converter.html # The entire app — open this in a browser
└── README.md # You're reading it
Contributions are welcome! If you'd like to add features (new Ducky Script commands, themes, import from file, etc.), feel free to open a pull request.
- Fork the repo
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Add my feature') - Push and open a PR
MIT License — see LICENSE for details.
Built with 💚 for the hacking community