cgram —
solve Sunday-paper cryptograms
cgram is a curses-based widget for solving
  Sunday-paper-type cryptograms based on substitution ciphers. If
  file is given, it is used as cleartext, otherwise a
  random cleartext is chosen using
  fortune(6); either way, a
  random substitution key is generated.
The ciphertext is displayed. Typing a letter changes the key so
    that the letter under the cursor maps to the newly typed letter, and updates
    the display accordingly. Use Emacs-type cursor commands to move around.
    Enter a tilde (~) to quit. Press asterisk (*) to enter an easier mode where
    correct characters are displayed in boldface.
cgram was written circa 2004. It was imported into
  NetBSD in 2013 and first appeared in
  NetBSD 7.0.