{"id":21262340,"url":"https://github.com/apexatoll/cliptic","last_synced_at":"2025-09-16T13:21:41.390Z","repository":{"id":65608399,"uuid":"383468950","full_name":"apexatoll/cliptic","owner":"apexatoll","description":"A terminal interface for fetching and playing daily cryptic crosswords","archived":false,"fork":false,"pushed_at":"2024-01-23T17:38:50.000Z","size":6881,"stargazers_count":119,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-02T09:09:25.451Z","etag":null,"topics":["cli","crossword","cryptic","game","puzzle","ruby","tui"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apexatoll.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-06T12:56:32.000Z","updated_at":"2025-03-24T02:01:44.000Z","dependencies_parsed_at":"2025-01-08T23:07:03.661Z","dependency_job_id":null,"html_url":"https://github.com/apexatoll/cliptic","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apexatoll%2Fcliptic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apexatoll%2Fcliptic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apexatoll%2Fcliptic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apexatoll%2Fcliptic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apexatoll","download_url":"https://codeload.github.com/apexatoll/cliptic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248036063,"owners_count":21037092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","crossword","cryptic","game","puzzle","ruby","tui"],"created_at":"2024-11-21T04:58:12.299Z","updated_at":"2025-09-16T13:21:36.344Z","avatar_url":"https://github.com/apexatoll.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `cliptic`: Crosswords in your Terminal\n\n![](https://github.com/apexatoll/cliptic/blob/master/assets/demo.gif)\n\n\n- A command-line interface for downloading and playing cryptic crosswords from within the terminal. \n- Puzzles are sourced from the free crosswords uploaded daily to [Lovatt's][1]. \n- cliptic is written in Ruby using the ncurses library\n\n## New to 0.1.3\n\n### Bug Fixes\n- Fix the ssl certificate bug that prevents fetching puzzles\n- Fix the \"out of range\" bug when moving to an undefined index using `g`\n\n### Features\n- Add manual redraw feature to the main puzzle view. Called with `^L` (useful for terminal resize)\n- Add exit controls to the resize interface (`q` or `^C`)\n\n## Features\n- VIM-like keybindings\n- Puzzles scraped daily from Lovatt's. Puzzles are cached locally to prevent excessive requests\n- Progress can be saved to continue puzzles at a later time\n- Time taken to complete the puzzle is logged on completion of puzzle. High scores can be viewed within cliptic\n- Track progress for puzzles released in the last week\n- Puzzle history is tracked, making it easy to pick up recently played puzzles\n- Select puzzles to play by date manually (puzzles are available for up to 9 months from release)\n- Customisation of cliptic's appearance\n\n## Dependencies\n\n### System\n- Ruby\n- Ncurses\n- Curl\n\n### Gems\n- curb\n- curses\n- sqlite3\n\n## Installing\n\n### As a Gem\n- cliptic is available as a Ruby Gem. To install, simply run:\n```bash\ngem install cliptic\n```\n### Manually\n- Or, to install manually:\n```bash\ngit clone https://github.com/apexatoll/cliptic\ncd cliptic\nrake build install\n```\n\n## Running\n- To run cliptic after installation, simply run the command `cliptic` from within the terminal\n- When the program is first run it will ask the user whether they want cliptic to generate a default config file. This is located in `~/.config/cliptic/cliptic.rc`\n- If the screen is too small to display cliptic, please resize until the prompt disappears\n\n### Other Commands\n- There are other commands that can be run from the command line\n\n#### Today\n- The command `cliptic today` will play today's puzzle\n- This command can be followed with a negative number to play a puzzle n days before today\n- For example `cliptic today -2` will play the puzzle from the day before yesterday\n\n#### Resetting Progress\n- The command `cliptic reset` will allow the user to reset progress in cliptic.\n- The command can be followed with either `all`, `states`, `scores` or `recents`\n- `all` resets all progress\n- `states` resets all game progress\n- `scores` resets high scores\n- `recents` resets puzzle history\n\n## Main Menu\n- On the main menu there are several options \n\t* Play today's puzzle\n\t* Show this week's progress\n\t* Select a date manually\n\t* Display recent puzzles\n\t* Show high scores\n\t* Exit cliptic\n\n### Menu Navigation\n| Command          | Action         |\n|------------------|----------------|\n| `j/DOWN`, `k/UP` | Move cursor    |\n| `q`              | Back/quit      |\n| `ENTER`          | Make selection |\n\t\n## Solving Puzzles\n- By default, cliptic uses vim-like keybindings for navigation and text manipulation. There are plans to release more \"accessible\" keybindings in the future.\n- Text manipulation is modal akin to vim. Vim-users will be familiar with insert and normal modes\n- The currently focussed clue is displayed within the window at the bottom of the screen. If you are on a cell that is an intersection of two clues (ie an across and a down) you can swap between them using `TAB`\n\n### Game Modes\n- There are 2 game modes that can be played. These can be changed in the cliptic config file.\n1. *Auto_mark* = 1 (default)\n\t- Each clue is marked once every cell is filled\n\t- The clue will be highlighted green or red depending on whether the attempt is correct\n2. *Auto_mark* = 0\n\t- No clues are marked automatically, similar to a paper crossword \n\t- Clues can be checked manually using the `^G` command\n\n### Global Commands\n\n| Command | Action                                                                                              |\n|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `^S`    | Save current progress (note that progress is saved when exiting puzzles by default)        |\n| `^R`    | Reveals solution for focussed clue (note that this forfeits adding this puzzle to high scores) |\n| `^C`    | Exit puzzle                                                                                         |\n| `^E`    | Resets timer and progress for puzzle                                                                |\n| `^G`    | Mark current progress (only relevant if auto_mark is set to 0)                                      |\n| `^P`    | Pause game                                                                                          |\n| `^L`    | Redraws the screen (useful on resizing terminal window)                                             |\n\n### Navigation (Normal Mode)\n- There are several ways to navigate the cells of the cliptic grid in **NORMAL MODE**.\n\n| Command            | Action                                                         |\n|--------------------|----------------------------------------------------------------|\n| `h`, `j`, `k`, `l` | Move cursor left, up, down, right. Arrow keys can also be used |\n| `(n)w`             | Move to (nth) next unsolved clue                               |\n| `(n)b`             | Move to (nth) previous unsolved clue                           |\n| `e`                | Move to end of clue                                            |\n| `\u003cclue number\u003eg`   | Move to clue by number                                         |\n| `\u003ccell number\u003eG`   | Move to cell by number (not 0 indexed                          |\n| `TAB`              | Swap from across to down clue (or vice versa)                  |\n\n### Entering Text (Insert Mode)\n\n| Command     | Action                              |\n|-------------|-------------------------------------|\n| `a-z`       | Enter character to cell             |\n| `BACKSPACE` | Delete one character                |\n| `ESC`       | Exit insert mode. Enter normal mode |\n\n### Normal Mode\n\n| Command   | Action                                                                         |\n|-----------|-----------------------------------------------------------------------------------------------------|\n| `I`       | Move to the start of the clue and enter insert mode                            |\n| `a`       | Advance one cell and enter insert mode                                         |\n| `c(obj)`  | calls d(obj) then enters insert mode                                           |\n| `d(obj)`  | delete the object provided after d (may be w for word or l for character) |\n| `i`       | Enter insert mode                                                              |\n| `r(char)` | Replaces the character under the cursor with `char`                            |\n| `x`       | deletes the character under the cursor                                         |\n\n## Configuration\n- Cliptic settings can be added to the cliptic.rc file found at `~/.config/cliptic/cliptic.rc`\n\n### Interface\n- Affect how cliptic functions\n- Set using the format\n```\nset \u003csetting\u003e \u003c0/1\u003e\n```\n\n#### Settable Items\n\n| Item           | Description                    | Default |\n|----------------|--------------------------------|---------|\n| `auto_advance` | Move to next clue after solve  | 1       |\n| `auto_mark`    | Mark clues as they are entered | 1       |\n| `auto_save`      | Save progress on exit          | 1       |\n\n### Colours\n- Colours are numbered 1-16. \n\t* 0 is default terminal color\n\t* 1-8 equates to your terminals 8 default colours. \n\t* 9-16 equate to same colours as the background and blank as the foreground\n- To set colour settings use the format\n```\nhi \u003cobj\u003e \u003ccolour\u003e\n```\n\t\n#### Settable Items\n\n| Item            | Description                | Default |\n|-----------------|----------------------------|---------|\n| `active_num`    | Grid number of active clue | 3       |\n| `bar`           | Top and bottom bars        | 16      |\n| `block`         | Grid blocks                | 8       |\n| `box`           | Box outlines               | 8       |\n| `grid`          | cliptic grids              | 8       |\n| `incorrect`     | Incorrect clue attempt     | 1       |\n| `correct`       | Correct clue attempt       | 2       |\n| `prompt`        | Menu prompt                | 3       |\n| `default`       | Default text color         | 0       |\n| `meta`          | Clue box metadata          | 3       |\n| `num`           | Inactive grid numbers      | 8       |\n| `logo_text`     | Logo text color            | 3       |\n| `I`             | Insert mode prompt         | 15      |\n| `N`             | Normal mode prompt         | 12      |\n| `menu_active`   | Active menu option         | 15      |\n| `menu_inactive` | Inactive menu option       | 0       |\n\n## Feedback\n- Cliptic is still in development\n- If you have any feature requests or find any bugs please leave a new issue\n- Contributions welcome!\n\n*Dedicated to WES who passed on to me his love of crosswords*\n\n[1]: https://lovattspuzzles.com/online-puzzles-competitions/daily-cryptic-crossword/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapexatoll%2Fcliptic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapexatoll%2Fcliptic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapexatoll%2Fcliptic/lists"}