At the moment it's just for rotating a single stepper in a gearbox. But if you look at the code you'll see the approach would allow you to send any grbl command based on any input you can implement.
There's no implementation of the proper jog commands yet, I'm using rapids and getting the results I need for my tests. However if you plan to use this in a CNC build I suggest you implement the proper jog commands so you can resume work easier. Also either don't trigger any inputs while the machine is being sent a gcode file!
The current version also tells the PC gcode sender what it told the grbl Arduino and prefixes it with a "P" for pendant:
Please go ahead and build on this to suit your needs. Add joysticks, axis selector rotary switches, reset and home buttons, coolant start/stop, laser on/off switches.