Skip to content
Switch branches/tags
Go to file


Failed to load latest commit information.
Latest commit message
Commit time

Phil, a crossword maker

Phil helps you make crosswords, using client-side JavaScript.

  • Import & export .xw (JSON) or .puz files.
  • Use the built-in dictionary, or any text file you want.
  • Print to PDF.
  • Create a New York Times submission in seconds.

Related repositories

Phil uses Font Awesome icons and jsPDF (along with jsPDF-AutoTable) for generating PDFs.

The Phil solving engine (in progress) uses the Glucose 3.0 SAT solver. The sources (with our modifications) are in the third_party directory.

Getting started

To use Phil:

  1. Go to

To run your own copy of Phil:

  1. Install a working Emscripten environment. On Mac, using homebrew is a good choice.

  2. From the command line, run:

    cd third_party/glucose-3.0/simp
    make xwsolve.js

    At this point, xwsolve.js and xwsolve.wasm should be generated.

  3. Go back to the Phil main directory (cd ../../..) and create symbolic links (aliases):

    ln -s third_party/glucose-3.0/simp/xwsolve.* .
  4. Run a local webserver. If you have Python 3 installed, then:

    python3 -m http.server 8000

    If you have only Python 2 installed, then:

    python -m SimpleHTTPServer 8000
  5. Point your browser to localhost:8000.

Crossword resources


Licensed under the Apache License, v2.0 (the 'License').

Unless required by law or agreed in writing, software distributed under the License is distributed on an 'as is' basis, without warranties or conditions, express or implied. See the License for the specific language governing permissions and limitations.

© Keiran King