Playing

You can move the robot using the arrow keys and the left and middle mouse buttons. (Clicking the right mouse button is the same as choosing Undo from the Game menu.)

Arrow key
Move the robot one square in the indicated direction, if possible.
Control-arrow
Move the robot as far as possible without pushing a stone.
Shift-arrow
Move the robot as far as possible, possibly pushing a stone.
Left mouse button on an empty square
Move the robot to the square clicked, if this can be done without pushing any stones.
Left mouse button on a stone
Start a drag-and-drop sequence. If the button is released in a different location, the stone will be pushed there if that can be done without moving any other stones. It is sometimes useful to release the button at the starting point: if the robot can push that stone around, ending with it in the same place and the robot in a place it could not reach without pushing, it will do so.
Middle mouse button
Move the robot to the place clicked if it can do so in a horizontal or vertical line, possibly pushing a stone.

Drag-and-drop movement, which was introduced in XSokoban, is extremely useful, but needs to be used with some caution if you are trying to keep the number of moves as small as possible. Like XSokoban, CPSokoban will always use the minimum number of pushes. Unlike XSokoban, it will also find the minimum number of moves for that number of pushes.