"Movie Hacker" should perhaps include nmap and sshnuke [1] despite being a real command and a real skiddie exploit [2]. When that that first played in the movies (The Matrix) people in the bay area theaters were standing up and cheering. People not familiar with the tools were very confused as to what was going on.
Unrelated, but I saw a movie in the early 2000s while visiting San Francisco. One of the trailers was for the Ben Affleck movie Paycheck (2003). When the trailer voice dramatically announced, "Michael Jennings is the best reverse-engineer in the business," the entire audience erupted in laughter. I felt like I had found my people. I moved to SF shortly after.
I've tried this sort of thing but then your muscle memory works against you when you have to use a "normal" keyboard.
Even remapping Cap Lock to Control, which I do, trips me up for a few minutes when I need to work on any other computer that has not been set up that way.
For what it’s worth, a normal (100%) Russian PC keyboard set to a Latin layout turns into a bog-standard QWERTY, with the sole exception of an ISO-style Return (like a British keyboard) but a wide left Shift and two equivalent Alt keys (like a US one). The variation among various keyboards advertised as 60% is wide enough that the Russian part really shouldn’t matter as long as you can ignore the additional labels.
in the age of agents I found myself loving frontend again, loving devops again, loving email servers again, you name it, I suspect in most cases those roles will merge into one (excluding the ones needing extreme competency and trust).
There's a highscore system but considering it's a matter of time before that gets cheated, the first run where I didn't struggle with backspacing into a previous command (which is blocked):
Fun idea, I like the categories and the option to specify keyboard+layout in the highscore, and the page layout/design is very clear. Thanks for making!
I made a typing trainer for developers for a vim inspired corne keyboard layout (enthium) called enthalpy. It's made for matrix keyboards. You can find it at https://enthalpy.arik.zip/
Something I realized with the new LLM tools is that learning how to type plain English words fast i.e. without capitalization or punctuation, and even typos is not that big of a problem anymore. And so it follows that code-specific typing is even less important if you can just type in normal words fast and then just check it's output. Although yes for stuff this small i.e. super small terminal commands I feel there does still exist an advantage.
Also, another observation I've had is sometimes I just don't feel like speaking, so voice as input to LLMs is really not an ALL time replacement in my personal opinion. In fact, I find myself preferring to type fast and with typos in lowercase much more than anything else.
I'm not sure. And to be honest, typing speed was never that big a deal. By the time I got out of college a few decades ago I was in the 110-120wpm range.
However as I progressed in my career as a developer what I found is that both my "working" WPM and then my "normal" WPM dropped over time. Once I moved out of truly junior, pure code grinding roles, I spent more and more time thinking, talking to people, etc than I did typing. At that point, what does it matter if I'm at 20wpm or 200?
Likewise, in day to day life, it's not like I'm sitting there typing a novel. I'm mostly clicking buttons, writing short messages, tweet,s and the like. My day to day typing speed has also decreased. I'm sure it's still up around 80-100wpm, but it's rare that I'm sitting there typing long enough to matter.
Same with LLM. Who cares if it takes me 10 seconds or 20 seconds to type in a prompt, when it's going to sit there and spin for a minute anyways?
I’m seeing a lot of people that having that train of thought. I think that is a fallacy. I can understand that some LLM execution can be faster, but definitely not all. Agents need to explore, grep and get back up to speed to get context, if you have a good mental model, you can do changes or adaptions in <7s with a bunch of shortcuts or commands.
One could argue to find the <7s commands in your head takes you more mental power than to just wish it in to the LLM and whilst its running you can wish something else in another session, but I’m thinking that the cost of context is more important than the actual execution time for your task. Every extra task gets more expensive. It’s not a ressource where you have a limit, right from the 2nd task the cognitive load increases.
Therefore I’m thinking one task that can be done in one context window without switching is worth a load in these days of constant distraction.
I get your point but I do prefer delegating almost all of the things to the LLM.
A lot of times human commands are prone to errors / edge cases as well. Example a simple git pull command usually would take < 7 seconds, but then LLM can take care of resolving merge conflicts etc as well.
A simple git push is usually instant but that comes with an overload of some un intended changes being pushed, which LLMs take care of removing themselves.
When LLM is doing its thing, we can spend the same time in writing the next prompt.
> A simple git push is usually instant but that comes with an overload of some un intended changes being pushed, which LLMs take care of removing themselves.
In my experience it can often be the opposite - AI would commit a lot of slop comments and sometimes unnecessary stuff, whereas if you can review things in GitKraken or another program with diffs, things are closer to what you want. Writing commit messages and PR descriptions (maybe change summaries, the intro less so) is easily outsourced to the LLMs though.
Your connection is not private
Attackers might be trying to steal your information from haxxorwpm.0s.is (for example, passwords, messages, or credit cards). Learn more about this warning
net::ERR_CERT_AUTHORITY_INVALID
this is what happens when you dont have always on ssh box for your agents
It's on a VM running behind caddy + bog-standard Let's Encrypt DV cert. It apparently works for nearly everyone, but I did have one user in the past that reported that *.0s.is domain doesnt work in his browser. Could not get enough info about what his setup was, if you could share what OS/Browser + versions you got that would be much appreciated
For me, Firefox on desktop (Windows) and mobile (Android) both give the SSL warning. Although mine appears a bit different than the parent comment:
An error occurred during a connection to haxxorwpm.0s.is. SSL received a record that exceeded the maximum permissible length.
Error code: SSL_ERROR_RX_RECORD_TOO_LONG
No issues here with Firefox on Linux or Android 11 (installed from F-Droid in case that matters). Strange. I wonder if it's a network difference rather than the workstation setup
Typing speed only really matters for juniors and going into intermediate developers, after that point thinking methodology - abstraction design, data structures, system design, complexity isolation, matter way, WAY more.
50% because by the time you get to this your typing speed has crossed a threshold of no longer being the bottleneck and 50% because you are experienced enough not to make all the silly little mistakes and your unit of work is larger and more complex
Switching categories does not restore scroll position to top, so you start to type what shows as being on top and the whole list changes to "you've got the first command wrong and here is a completely new list to type". I didn't understand what had happened at first
The scroll position of the whole page (including the field where I'm typing) changes when you press enter with the first three commands, until until the current command is centered within the commands list
WPM is a strange measure when some words are -h and others are "user@example.com" including the quotes. Not like language doesn't have long and short words but especially with needing shift etc., this feels kinda weird and like it would depend a lot on which words you get randomly assigned. You can pick the longer duration to even that out, but you could also just switch to CPM and get more reliable results faster -- or so I'd expect
The highscores don't show the run's duration, aka the error margin
Theoretically this would have to use readline or whatever input mode the person is used to. Ctrl+P would put the cursor at the end of the previous command, Ctrl+W then erases the last word (until the previous whitespace), Alt+Backspace is similar but erases until the previous punctuation, etc. Not sure if that's all possible on web. For some reason it also didn't bother me though, although I'm a very heavy user of these and e.g. web KVMs and chat input fields (when writing a command to a nerd friend) keep tripping me up. I guess it just feels like a typing test and not "real". But it makes me wonder what "real" would do for typing speed
Going back to the previous command (with (ctrl+)backspace I think mainly) is something I kept trying to do though, also tripping up 3 commands in a row (notice typo -> autopilot-mode fixing it: backspace to undo the enter, type correct character, enter again -> now you have 2 lines wrong). Maybe backspace (or also arrow keys?) being able to go back to a previous command could be a setting so people are free to choose whatever is faster for them
The input field defocuses at the end, so then the default browser commands start triggering as I'm typing the remainder of the command (mostly that's just searching on the page and the scroll jumps to some random spot, but can also be leaving the page with backspace). Maybe the fix can be as simple as restoring the box' previous value onkeyup and coloring it as though it's disabled
Highscores are probably more fun if you see (or can toggle between) the latest submissions as well as the top month/year/all-time. More of a long-term thing, for now I lead one of the categories so I know the submission worked and that I'm amazing *pats self on back* (there is only one other person in that category for now :P)
I wonder how long it takes for everyone to get kicked out by a cheater though. Maybe there should be a cheater category that shows up once you hit >1.5×max(leaderboards), because people will want to try autotyping but you also don't want to give them ideas. Then they have some place to submit to without breaking the other highscores. I know that a lot of cheaters won't care but... I would :shrug:
Choosing e.g. Debian does not include Basic commands that I can tell, whereas of course on Debian it's not like you never mv a file. Maybe multi-selecting categories would enable people to combine it however they want, but then the highscore system is difficult so hm.
To reproduce... actually, I wonder if you can guess my browser and OS family based on the above :D
None of these are a blocker or big bother for me btw, it's just that I saw the invite to report UI issues/ideas and I can't help myself. I had fun using it, thanks for making!
This is fun lol. typing tests but for terminal commands instead of regular words is such a niche idea but it actually makes sense. every dev has typed git pull origin main so many times their fingers do it on autopilot, so measuring that muscle memory is a cool way to track terminal fluency.
The leaderboard angle is smart too,people love competing on pointless metrics and wpm is the perfect one for that.would love to see a mode for specific tools tho, like a docker-only round or a vim escape sequence speedrun. The git rebase one would genuinely stress test people lol.
[1] - https://nmap.org/movies/
[2] - https://blog.doyensec.com/2025/03/04/exploitable-sshd.html
https://m.youtube.com/watch?v=rkE5I9nFqrI
; CapsLock + J/K -> ( )
CapsLock & j::SendText "("
CapsLock & k::SendText ")"
; CapsLock + U/I -> [ ]
CapsLock & u::SendText "["
CapsLock & i::SendText "]"
; CapsLock + L/: -> { }
CapsLock & l::SendText "{"
; SC027 = physical ;/: key on a US keyboard
CapsLock & SC027::SendText "}"
; CapsLock + O/P/M/E -> _ + - =
CapsLock & o::SendText "_"
CapsLock & p::SendText "+"
CapsLock & m::SendText "-"
CapsLock & e::SendText "="
Even remapping Cap Lock to Control, which I do, trips me up for a few minutes when I need to work on any other computer that has not been set up that way.
I was using a 106 with US layout
Colleague #1 was using 60% with russian layout
Colleague #2 was on catalan layout
90% of the time we were just hunting for special chars
60s | Basics category | 79 wpm | 100% acc | 38 cmds | QWERTY | Logitech K200 (membrane keyboard from like 2007)
Fun idea, I like the categories and the option to specify keyboard+layout in the highscore, and the page layout/design is very clear. Thanks for making!
Also, another observation I've had is sometimes I just don't feel like speaking, so voice as input to LLMs is really not an ALL time replacement in my personal opinion. In fact, I find myself preferring to type fast and with typos in lowercase much more than anything else.
However as I progressed in my career as a developer what I found is that both my "working" WPM and then my "normal" WPM dropped over time. Once I moved out of truly junior, pure code grinding roles, I spent more and more time thinking, talking to people, etc than I did typing. At that point, what does it matter if I'm at 20wpm or 200?
Likewise, in day to day life, it's not like I'm sitting there typing a novel. I'm mostly clicking buttons, writing short messages, tweet,s and the like. My day to day typing speed has also decreased. I'm sure it's still up around 80-100wpm, but it's rare that I'm sitting there typing long enough to matter.
Same with LLM. Who cares if it takes me 10 seconds or 20 seconds to type in a prompt, when it's going to sit there and spin for a minute anyways?
One could argue to find the <7s commands in your head takes you more mental power than to just wish it in to the LLM and whilst its running you can wish something else in another session, but I’m thinking that the cost of context is more important than the actual execution time for your task. Every extra task gets more expensive. It’s not a ressource where you have a limit, right from the 2nd task the cognitive load increases.
Therefore I’m thinking one task that can be done in one context window without switching is worth a load in these days of constant distraction.
A lot of times human commands are prone to errors / edge cases as well. Example a simple git pull command usually would take < 7 seconds, but then LLM can take care of resolving merge conflicts etc as well.
A simple git push is usually instant but that comes with an overload of some un intended changes being pushed, which LLMs take care of removing themselves.
When LLM is doing its thing, we can spend the same time in writing the next prompt.
In my experience it can often be the opposite - AI would commit a lot of slop comments and sometimes unnecessary stuff, whereas if you can review things in GitKraken or another program with diffs, things are closer to what you want. Writing commit messages and PR descriptions (maybe change summaries, the intro less so) is easily outsourced to the LLMs though.
Go Bobby!
this is what happens when you dont have always on ssh box for your agents
50% because by the time you get to this your typing speed has crossed a threshold of no longer being the bottleneck and 50% because you are experienced enough not to make all the silly little mistakes and your unit of work is larger and more complex
Also for the masochists among us - obfuscated perl, IOCCC style C and Malbolge ;)
The scroll position of the whole page (including the field where I'm typing) changes when you press enter with the first three commands, until until the current command is centered within the commands list
WPM is a strange measure when some words are -h and others are "user@example.com" including the quotes. Not like language doesn't have long and short words but especially with needing shift etc., this feels kinda weird and like it would depend a lot on which words you get randomly assigned. You can pick the longer duration to even that out, but you could also just switch to CPM and get more reliable results faster -- or so I'd expect
The highscores don't show the run's duration, aka the error margin
Theoretically this would have to use readline or whatever input mode the person is used to. Ctrl+P would put the cursor at the end of the previous command, Ctrl+W then erases the last word (until the previous whitespace), Alt+Backspace is similar but erases until the previous punctuation, etc. Not sure if that's all possible on web. For some reason it also didn't bother me though, although I'm a very heavy user of these and e.g. web KVMs and chat input fields (when writing a command to a nerd friend) keep tripping me up. I guess it just feels like a typing test and not "real". But it makes me wonder what "real" would do for typing speed
Going back to the previous command (with (ctrl+)backspace I think mainly) is something I kept trying to do though, also tripping up 3 commands in a row (notice typo -> autopilot-mode fixing it: backspace to undo the enter, type correct character, enter again -> now you have 2 lines wrong). Maybe backspace (or also arrow keys?) being able to go back to a previous command could be a setting so people are free to choose whatever is faster for them
The input field defocuses at the end, so then the default browser commands start triggering as I'm typing the remainder of the command (mostly that's just searching on the page and the scroll jumps to some random spot, but can also be leaving the page with backspace). Maybe the fix can be as simple as restoring the box' previous value onkeyup and coloring it as though it's disabled
Highscores are probably more fun if you see (or can toggle between) the latest submissions as well as the top month/year/all-time. More of a long-term thing, for now I lead one of the categories so I know the submission worked and that I'm amazing *pats self on back* (there is only one other person in that category for now :P)
I wonder how long it takes for everyone to get kicked out by a cheater though. Maybe there should be a cheater category that shows up once you hit >1.5×max(leaderboards), because people will want to try autotyping but you also don't want to give them ideas. Then they have some place to submit to without breaking the other highscores. I know that a lot of cheaters won't care but... I would :shrug:
Choosing e.g. Debian does not include Basic commands that I can tell, whereas of course on Debian it's not like you never mv a file. Maybe multi-selecting categories would enable people to combine it however they want, but then the highscore system is difficult so hm.
To reproduce... actually, I wonder if you can guess my browser and OS family based on the above :D
None of these are a blocker or big bother for me btw, it's just that I saw the invite to report UI issues/ideas and I can't help myself. I had fun using it, thanks for making!
Different durations have different high score lists.
The leaderboard angle is smart too,people love competing on pointless metrics and wpm is the perfect one for that.would love to see a mode for specific tools tho, like a docker-only round or a vim escape sequence speedrun. The git rebase one would genuinely stress test people lol.