GUI + CLI

Your form works. Until someone types this.

Naughty Keyboard types the next awkward value into the field in front of you, with one shortcut. 207 values in 18 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, macOS and Linux
AltShiftN types the next value
nullcomes back empty
=1+1exports as a formula
30.02.2026rolls over to 2 March
Kowalskiaccount not found
How it works

Three steps, and the cursor never leaves the field

  1. Click a field

    In any application: a browser, a desktop program, a terminal.

  2. 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.

  3. 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.

18 packs, 207 values

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 values

Characters that take up space, or claim to, and are impossible to see in a form.

Unicode and text

12 values

Characters that look innocent and break counting, comparison and display.

Length bombs

12 values

Values sized against common limits and against the gap between a character and a byte.

Magic values

12 values

Words a human reads as text and a parser reads as a boolean, an absent value or a number.

Extreme numbers

12 values

Numbers at the edges of their types, in foreign notations, and where precision runs out.

Impossible dates

12 values

Dates that do not exist, that are ambiguous, or that are written differently than the field assumes.

Export breakers

12 values

Values that pass validation and break only in the exported file.

Polish locale

6 values

Polish identifiers, formats and characters that global commercial products do not handle.

File names and paths

12 values

Names a file system rejects, alters, or reads differently than the user meant.

Look-alike pairs

12 values

Pairs of values that are identical on screen and different in storage.

Complex emoji

12 values

Characters beyond the basic plane and composed sequences that break counting and truncation.

Encoding and mojibake

11 values

Text that went through the wrong encoding and never came back.

Pasted from a document

12 values

Characters that arrive with text copied out of a word processor or a web page.

E-mail addresses and URLs

12 values

Addresses that are formally valid but extreme, and ones that only look valid.

Names and identity

12 values

Names that break assumptions about what a "normal" name looks like.

Time and time zones

12 values

Hours that do not exist, happen twice, or are written without a zone.

Money and separators

12 values

Amounts written the way people and spreadsheets write them, and where precision ends.

Pseudolocalisation

10 values

The standard internationalisation-testing technique, reduced to values you can paste into a field.

Command line

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.

Every command and option

nkb emit
$ 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
What it never does

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.

What it reads, what it writes, and how to check

Find it before your users do

Free, no account, no telemetry. The palette and the command line, for Windows, macOS and Linux.