IMHO, Karel should only be used for functions that cannot be achieved through TPP.
Why? Because Karel is closed source. It MUST be edited offline and then recompiled. You MUST have the latest source code to do this, which can't be easily verified. Keep Karel code for Karel only functions, then do the rest with TPP. TPP can be easily edited offline and there is no question as to the validity of the current code. TPP is remarkably easy to edit online, through the robot, via the teach pendant.
The teach pendant is different, but not evil. It was designed to make online edits easy. You don't even need to stop or abort the robot to make edits. Quit fighting what is easy and best. Accept TPP for what it is and learn to work with it.
That being said, if you need to use Karel, check out the latest Karel reference manual, everything you need is in there for robot IO. Again this is the hard way to go, but if you must, it will work. But WHY?