Dominiate is a Dominion simulator, in which you can program bots to follow strategies that you define and see which one wins.
It is inspired by Geronimoo's Dominion Simulator. It shares the feature that, to define many possible strategies, you may simply list cards and conditions in which to buy them in priority order.
The code is meant to be open and extensible. Many other aspects of a strategy can be overridden, including its preferences for how to play actions. If this system doesn't allow you to define the strategy you want and you're okay with writing more code, I encourage you to fork the simulator and change it so that it does.
Dominiate runs in your Web browser.
Some of the modules in Dominiate are written with "literate code" that documents itself as it goes, which I've made into nice web pages using Docco.
A good place to start is cards.coffee, which defines Dominion cards and their effects. The navigator in the top right brings you to other modules from there.
Use Dominiate's issues page on GitHub.
To run Dominiate at the command line or to edit its Web interface, you need node.js, CoffeeScript, and Less CSS. To use it, you only need a current Web browser. (I've tested it on Firefox 6 and Chrome 12.)
Dominiate is licensed under the Affero GPL, version 3. In short, you can copy it, change it, and redistribute it, as long as your version is also under the Affero GPL version 3 and you make the source code available to anyone who can play it.
You can also clone the project with Git by running:
$ git clone git://github.com/rspeer/dominiate