Your form works. Until someone types this.
Naughty Keyboard types the next awkward value into the field in front of you, with one shortcut. 102 values in 9 packs, and each one says what it usually breaks and what a correct application does instead.
- Free and open source, GPL-3.0
- No telemetry, no network connection
- Types on Windows, CLI and clipboard on macOS and Linux
Values your form has never met
They are not clever and not secret. They are what real users and real data produce, and nobody types them by hand because typing them is tedious.
Login and e-mail comparisons differ between browser and server; the account is created but cannot be found.
whitespace/trailing-space =1+1A value starting with an equals sign is treated as a formula by spreadsheet software; the exported file shows a computed result instead of the data.
export-breakers/formula-equals noYAML 1.1 and several config parsers read the unquoted word no as boolean false - and NO is the country code for Norway.
magic-values/bool-no 30.02.2026A date that cannot exist; naive parsers roll it over to the second of March instead of refusing it.
dates-impossible/feb-30A field that looks empty but is not: required-field validation passes, and the record has no usable name.
whitespace/zwsp-only 65,535 × aThe limit of the most common text column type, where crossing it usually produces a raw database error.
length-bombs/len-65535Three steps, and the cursor never leaves the field
Click a field
In any application on Windows: a browser, a desktop program, a terminal.
Press AltShiftN
The palette clears the line and types the next value of the pack. It never takes the keyboard focus, so the cursor stays where you put it.
Look at the result
When a value breaks something, AltShiftB copies a report block for the ticket: which value, typed as what, how large, and whether all of it arrived.
Pick a pack by what you are testing
Every value carries what it usually breaks and what a correct application does. The packs are free to use under CC BY 4.0.
Whitespace
12 valuesCharacters that take up space, or claim to, and are impossible to see in a form.
Unicode and text
12 valuesCharacters that look innocent and break counting, comparison and display.
Length bombs
12 valuesValues sized against common limits and against the gap between a character and a byte.
Magic values
12 valuesWords a human reads as text and a parser reads as a boolean, an absent value or a number.
Extreme numbers
12 valuesNumbers at the edges of their types, in foreign notations, and where precision runs out.
Impossible dates
12 valuesDates that do not exist, that are ambiguous, or that are written differently than the field assumes.
Export breakers
12 valuesValues that pass validation and break only in the exported file.
Polish locale
6 valuesPolish identifiers, formats and characters that global commercial products do not handle.
File names and paths
12 valuesNames a file system rejects, alters, or reads differently than the user meant.
Made for scripts too
nkb prints any pack as JSON, CSV or one value per line, escaped or raw. Values go to standard output and the account of what came out goes to standard error, so a redirected file holds values and nothing else. Every command has exit codes a pipeline can branch on.
$ nkb emit magic-values --format lines > magic-values.txt nkb emit: 12 values, 47 code points, 47 bytes $ head -4 magic-values.txt no null true NaN
A tool that types into other windows has to be trusted
Each of these is a promise, and most are held by a test in the repository that fails the build when it is broken.
No network connection
No telemetry, no update check, nothing downloaded while it runs.
Reads no window content
Only the kind of control that has the focus and the file name of its program. Never a title, a text or a value.
Clipboard only when you ask
The report block, clipboard mode and the Copy buttons, each after a press or a click. It never pastes for you and never reads the clipboard.
No keyboard hook
Its shortcuts are registered with the system's hotkey call, which tells it only about its own chords.
No administrator rights
It asks for none and does not raise its own privileges.
A pack is whole or absent
A pack file is checked before it is read, and refused on any error.
Find it before your users do
Free, no account, no telemetry. The palette and the command line, for Windows, macOS and Linux.