Online Freecell solver (text based)


An online solver for Freecell, a kind of card solitaire game, and several related solitaire games. Please enable JavaScript.




Input a Freecell layout in the fc-solve format:

(Format as a preset file, with backslashes at the end of lines. See the online documentation for information regarding syntax.)

Status: Not started

Bookmark This Form

You can use the button below to generate a URL that will auto-populate the form. This is also useful for reporting problems.

How to Use

Enter a board in the input text area in Freecell Solver’s input format with each line of input representing a column (or stack) of cards. Freecells and foundations can also be specified. Numbered layouts (compatible with Microsoft Windows FreeCell, FreeCell Pro and compatible Freecell implementations) can be input using the deal number feature. Press the “Solve” button to run the solver, and assuming it was successful, you will be able to read and/or copy the output from the output box.


Solving other, similar, games

Click the Advanced button and select the game from the drop-down.


This is a web-based interface to Freecell Solver, that was translated from the C source code to JavaScript, by using the emscripten LLVM bit-code to JavaScript compiler. Like Freecell Solver itself, this JavaScript port is open-source software under the permissive MIT/Expat licence.

Other technologies used for writing this page are:

  • jQuery - the “write less, do more” JavaScript library. A convenient JavaScript browser-side library for DOM manipulations, UI and much more.

  • jQuery UI - a library for user-interface controls based on jQuery.

  • Joose - an object oriented programming system for JavaScript (inspired by Perl's Moose). Note: it is no longer used here due to not being compatible with Node.js and non-browser environments.

  • jquery-querystring -a plugin for jQuery for manipulating query strings.

  • Firebug - a web development tool for Firefox, that provides a JavaScript debugger, a CSS manipulation tool, DOM introspection and more. (The Opera web browser's Opera Dragonfly does something similar for Opera, and is also useful.)

  • Google Web Fonts - provides an attractive font for the button leading to this page.


  • Alon Zakai - writing emscripten, the LLVM-to-JavaScript compiler that was used to prepare this page, based on the original C (gnu99) source, and answering some bug reports and questions I filed about it.

  • Stefan Petrea - inspired the implementation of the populate-with-sample-board button.

  • Amir Aharoni - tipped me regarding integrating @font-face into my CSS.

  • Ari Becker - tipped me regarding unsolvable deals.