I am working on a home automation system using node red as a server (nothing new). I am working on various types of client device command codes, e.g. "AU, or BF, simple string codes. I was wondering if there was a way to directly type a simple string, and it run through the system to make sure communication works. I have literally hundreds of predefined codes. if i have to edit an inject node, every time I need to change the command code, I will be here for days. I could just throw a UI node in and go that route but then I'm switching between UI and flow constantly. It would be much easier if there were a keyboard input node, that one could select, put in a command code or string, and when you hit enter it dumps the payload. Anyone know of something similar?
you could use Inject now feature ?

as mentioned above by @smanjunath211, you can type input dynamically via 'Inject now'.
Alternatively, you can setup a quick dashboard with various types of input nodes - text, drop-list etc.
OP has already considered it, and not in favor of.
Add all the commands to a template node in list or csv.
Then split the list and rate limit the output.
You can then use an inject to flush individual commands
e.g.
[{"id":"70aa1ff22dec91ce","type":"inject","z":"613df62afc8a16bf","name":"initialise list","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":60,"wires":[["a5969cf6278658a1"]]},{"id":"a5969cf6278658a1","type":"template","z":"613df62afc8a16bf","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"ab\ncd\nef\ngh\nij","output":"str","x":300,"y":60,"wires":[["bd5c2c98ae2d4a2f"]]},{"id":"bd5c2c98ae2d4a2f","type":"split","z":"613df62afc8a16bf","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","property":"payload","x":450,"y":60,"wires":[["21073e53ef1d1394"]]},{"id":"21073e53ef1d1394","type":"delay","z":"613df62afc8a16bf","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"60","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":420,"y":100,"wires":[["3bd36f9325ef1830"]]},{"id":"f7e5749a5d722a3c","type":"inject","z":"613df62afc8a16bf","name":"clear list","props":[{"p":"reset","v":"true","vt":"bool"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":140,"y":100,"wires":[["21073e53ef1d1394"]]},{"id":"f74705bb3d6f3388","type":"inject","z":"613df62afc8a16bf","name":"next","props":[{"p":"flush","v":"1","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":110,"y":180,"wires":[["21073e53ef1d1394"]]},{"id":"3bd36f9325ef1830","type":"debug","z":"613df62afc8a16bf","name":"debug 2588","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":610,"y":100,"wires":[]}]
How on earth did I not see that! They really Blended it in nicely didn't they! Thank you all for reminding me that I need bifocals now. : )