MCPcopy Index your code
hub / github.com/MatrixFrog/crossword

github.com/MatrixFrog/crossword @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
105 symbols 254 edges 5 files 50 documented · 48%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Crossword and Crosstui

animated gif of crosstui in action

This is an experimental project for solving crosswords in the terminal. I built it mainly because I wanted to build something fun with Ratatui, a library for TUIs (user interfaces that run in the terminal).

If you like crosswords and running things in the terminal, please give it a try!

To play a crossword

First, find a .puz file. Many crossword sites allow you to download puzzles in this format, such as https://crosshare.org/ or https://crosswordfiend.com/download/. Or, use one of the examples in this repo, in crossword/puzzles/.

Then, run the crosstui binary, passing the path to the .puz file as an argument:

cargo run --release --bin=crosstui -- /path/to/your/crossword.puz

Code organization

The code is separated into two crates.

The crossword crate understands .puz files and how crossword puzzles work, but has no UI. Its primary type is the Puzzle struct, and it should be possible to build a separate crossword app using a different UI framework, by depending on crossword only.

The crosstui crate is the interactive UI for displaying and solving puzzles, which uses the crossword crate to model the puzzle, and Ratatui for the UI.

Core symbols most depended-on inside this repo

get
called by 26
crossword/src/lib.rs
is_black
called by 13
crossword/src/lib.rs
is_empty
called by 9
crossword/src/lib.rs
checksum_metadata_string
called by 8
crossword/src/checksum.rs
take_n_bytes
called by 7
crossword/src/puz.rs
is_white
called by 7
crossword/src/lib.rs
checksum_region
called by 7
crossword/src/checksum.rs
width
called by 6
crossword/src/lib.rs

Shape

Method 75
Function 14
Class 11
Enum 5

Languages

Rust100%

Modules by API surface

crossword/src/lib.rs71 symbols
crossword/src/puz.rs15 symbols
crosstui/src/main.rs14 symbols
crossword/src/checksum.rs3 symbols
crossword/src/main.rs2 symbols

For agents

$ claude mcp add crossword \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact