I have a solution that works nicely in irb, but I'd like some help making it more friendly. It works well in that using method_missing I have set it up so that unquoted uncoloned barewords in commaless lists just work: $ irb -r LispGame You are in the living room of a wizard's house. There is a wizard snoring loudly on the couch. There is a stairway going upstairs from here. There is a door going west from here. You see a whiskeyBottle on the floor. You see a bucket on the floor. irb(main):001:0> get bucket You are now carrying the bucket. => nil irb(main):002:0> go west You are in a beautiful garden. There is a well in front of you. There is a door going east from here. You see a chain on the floor. You see a frog on the floor. => nil irb(main):003:0> get chain You are now carrying the chain. => nil irb(main):004:0> go east You are in the living room of a wizard's house. There is a wizard snoring loudly on the couch. There is a stairway going upstairs from here. There is a door going west from here. You see a whiskeyBottle on the floor. => nil irb(main):005:0> go upstairs You are in the attic of the wizard's house. There is a giant welding torch in the corner. There is a stairway going downstairs from here. => nil irb(main):006:0> weld chain to bucket (irb):6: warning: parenthesize argument(s) for future version (irb):6: warning: parenthesize argument(s) for future version The chain is now securely welded to the bucket. => nil irb(main):007:0> But the problem with this approach is that I can't display a helpful message when the player enters an invalid command: irb(main):007:0> help => :help irb(main):008:0> I'm trying to come up with a way to have my cake and eat it, too. Is there any way to hook into irb and have some code executed every time the prompt is displayed, like $PROMPT_COMMAND in bash? That would let me work around this . . .