AnyTool
Your files never leave your device. All processing happens locally in your browser.

How do I make a crossword puzzle from my own words and clues?

Open AnyTool Crossword Maker, type a title, and paste your word list as "WORD: clue" — one pair per line. Tap Generate and the engine interlocks your words into a compact criss-cross grid: it seeds the longest word, then crosses every later word at a shared letter, numbers the start cells, and builds Across and Down clue lists from those numbers. Solve the blank grid on screen, toggle Show answers to fill every letter, then Print a clean numbered puzzle with the clues plus a separate answer-key page. Words that share no letters with the rest can’t interlock and are flagged. Your words and clues never leave the browser.

  • Enter "WORD: clue" lines — the word is the answer (letters-only, uppercased), the clue shows in the list
  • The engine interlocks words at shared letters into a compact criss-cross grid and numbers the start cells
  • Across and Down clue lists are built from the cell numbers; (length) hints show beside each clue
  • Show answers fills every letter; Generate again for a fresh interlocking layout
  • Print a clean numbered puzzle + clues, plus a separate answer key · 100% in your browser, nothing uploaded

What is

Crossword Maker (Criss-Cross)

A crossword maker builds an interlocking word puzzle from a list of word + clue pairs. This tool makes a criss-cross (freeform) crossword: it places the longest word, then interlocks each remaining word so it crosses an already-placed letter running perpendicular, with no illegal overlaps. The starting cell of every across and down entry is numbered, and the clues are listed by number under Across and Down. It is not a symmetric, black-square newspaper-style grid — words that share no letters with the rest cannot be placed.

Generators

Related terms

Word and clue pairsInterlocking / crossingAcross and DownCell numberingAnswer keyCriss-cross / freeform

Frequently Asked Questions

One per line as "WORD: clue", for example "APPLE: a red fruit". You can separate the word from its clue with a colon, a dash or a tab.

Type one entry per line as the answer word, a separator, then the clue — for example "PLANET: a world that orbits a star". A colon, an en/em dash, " - ", or a tab all work as the separator; if you type just a word and a clue with a space between, the first token is taken as the word and the rest as the clue. The word becomes the answer and is cleaned to letters only and uppercased, duplicates are removed, and the clue is shown next to its number in the Across or Down list. A line with no clue is skipped so every placed entry has a clue to solve from.

A criss-cross crossword only places a word if it crosses an already-placed letter. A word that shares no letter with the rest of the grid can’t interlock and is flagged.

This is a criss-cross (freeform) crossword: after the first word, every word must cross an existing letter at a shared character, running perpendicular to the word it crosses, without illegal overlaps or words running flush alongside each other. If a word shares no usable letter with anything already placed, it genuinely cannot interlock, so it is left out and listed in a clear warning. To fix it, add a connecting word that shares a letter with both, swap in a different term, or Generate again — each Generate tries several crypto-shuffled orderings and may find a layout that fits more words. Words with common letters (E, A, R, S, T, N) and longer overlapping words interlock most easily.

Yes. Start cells are numbered in reading order, the clues are split into Across and Down by number, and Show answers (or Print + key) reveals every letter.

Once the grid is built and trimmed to its bounding box, the engine numbers every cell that starts an across and/or down entry, numbering top-to-bottom then left-to-right just like a newspaper crossword. The clues are then split into Across and Down lists, each ordered by number, with a (length) hint beside each clue. On screen the grid starts blank for solving; Show answers fills in every letter. For paper, Print opens a clean numbered puzzle with both clue lists, and Print + key adds a separate page with the whole grid filled in as the answer key — ideal for teachers grading worksheets.

Yes. It is free, needs no account, and runs entirely in your browser — your words, clues and the puzzle are never uploaded, logged or stored.

AnyTool Crossword Maker is completely free with no sign-up. Your title, word list, clues and the finished grid are processed locally in your browser, with the Web Crypto API used for layout shuffling and tie-breaks (never Math.random), so every Generate explores a fresh interlocking. Nothing is uploaded, logged or saved — closing the tab discards everything — which makes it a safe choice for teachers who would rather a vocabulary list and its answer key never left the classroom. There is no tracking, and the page works offline after its first load.

Detailed Explanation

Methodology

How AnyTool Interlocks Words into a Criss-Cross Grid

Generation runs entirely in the browser from a list of word + clue pairs typed as "WORD: clue" (a colon, dash or tab separates the two). Each entry is sanitized — the word is uppercased and stripped to A–Z, words under two letters or with an empty clue are dropped, and duplicates are removed in first-seen order. The longest word is seeded across the centre of a generous working board, because long words are the hardest to interlock once the grid fills. Every remaining word is then tried at every crossing against an already-placed letter: the new word runs perpendicular to the word it crosses and a placement is legal only when each covered cell is empty or already holds the matching letter, the cells immediately before and after the word are blank (so two entries never merge into one long word), and any non-crossing cell has blank perpendicular neighbours (so the word never runs flush alongside another). Each legal placement is scored by the number of crossings first, then by how little it expands the bounding box, with an unbiased crypto tie-break (Web Crypto API, never Math.random). The engine repeats this for several randomly shuffled orderings and keeps the layout that places the most words in the most compact, squarest grid, then trims to the bounding box.

  • Input is "WORD: clue" pairs; words sanitized to A–Z, uppercased, de-duplicated, blank-clue lines skipped
  • Longest word seeded first; every later word must cross an already-placed letter (perpendicular)
  • Adjacency rules forbid end-to-end merges and words running flush alongside each other
  • Placements scored by crossings then compactness, with a Web Crypto tie-break (never Math.random)
  • Several shuffled orderings are tried; the layout placing the most words most compactly is kept
Use Cases

Numbering, Across/Down Clues and the Answer Key

After the grid is trimmed to its bounding box, every cell that starts an across and/or down entry is numbered in reading order — top-to-bottom, then left-to-right — exactly as a newspaper crossword numbers its clues. The clues are then split into two lists, Across and Down, each ordered by number, and every clue shows a (length) hint giving the answer’s letter count. On screen the grid is rendered blank for solving, with the small clue numbers shown in the starting cells; toggling Show answers fills in every letter and also appends the answer word to each clue. For paper, Print opens a clean window with the numbered blank grid and both clue lists, and Print + key appends a separate page with the whole grid filled in as the answer key. Because everything renders locally, printing uploads nothing; for crisp squares, print at 100% / actual size rather than fit-to-page.

  • Entry-start cells numbered top-to-bottom then left-to-right, like a newspaper grid
  • Clues split into Across and Down lists, each ordered by number, with (length) hints
  • Blank grid for solving on screen; Show answers fills every letter and appends the answer
  • Print a numbered puzzle with clue lists; Print + key adds a separate filled answer-key page
  • Print at 100% / actual size for crisp, square cells
Limitations

A Criss-Cross, Not a Symmetric Newspaper Grid

This tool is honest about what it builds: a criss-cross (also called freeform) crossword that interlocks your own words, not a symmetric, rotationally-balanced, fully-checked newspaper grid filled from a large dictionary. The practical consequence is that every word after the first must cross an already-placed letter, so a word that shares no letter with anything in the grid genuinely cannot be placed — it is left out and clearly flagged rather than forced. Users can resolve this by adding a connecting word that shares a letter with both sides, swapping in a different term, or generating again (each Generate tries several crypto-shuffled orderings and may fit more words). Words built from common letters (E, A, R, S, T, N) and longer overlapping words interlock most easily, which is useful guidance when choosing a vocabulary list. The title, words, clues and finished grid never leave the browser, making the tool a privacy-safe option for classroom worksheets.

  • Honest scope: a criss-cross / freeform crossword, not a symmetric newspaper-style grid
  • Every word after the first must cross an already-placed letter to be placed
  • Words sharing no letter with the rest are flagged, not forced — add a connecting word or retry
  • Common-letter and longer overlapping words interlock most easily
  • Title, words, clues and puzzle stay in the browser — never uploaded or stored
Crossword maker: in-browser criss-cross (AnyTool) vs typical online crossword makers
CapabilityAnyToolTypical online crossword makers
Custom words + cluesYour own "WORD: clue" pairs, letters-only, de-duplicatedYes, usually
Puzzle typeHonest criss-cross / freeform (interlocked at shared letters)Often the same, not always stated
InterlockingCrossings scored, compact layout, adjacency rules enforcedVaries in quality
RandomnessWeb Crypto CSPRNG shuffle + tie-break (no modulo bias)Usually Math.random
Numbering & cluesAuto-numbered start cells, Across/Down lists with (length)Usually yes
Unplaceable wordsClearly flagged, never forcedOften silently dropped
ProcessingGenerated in your browserOften server-side
Answer keyOn-screen fill + separate printable key pageSometimes gated
PrintingClean numbered puzzle + clues + optional key, localSometimes watermarked or gated
PrivacyWords & clues never uploaded, not stored, works offlineMay transmit or log your list
Cost / signupFree, no signupOften ad-heavy or gated

AnyTool builds and prints every crossword locally with crypto-secure randomness and uploads nothing — your words and clues never leave the browser.