ksolve+ is a C++ program that can find algorithms for many different puzzles - any simple permutation puzzle you can think of, and some not-so-simple ones too. This includes 2x2x2, 3x3x3, Megaminx, Square-1, and so on. You write a definition file defining the puzzle, and a scramble file listing the scrambles, and then ksolve+ will find optimal (or near-optimal, if you want) solutions for your scrambles.

Download version 1.3 here. Apart from ksolve+ itself, this includes a readme, a bunch of sample definition and scramble files, and the source code.

Definition Files

You can write your own definition files, but here are some useful ones to save you time.