# Anagram Solver > An anagram solver that finds multi-word anagrams as well as single-word ones. > Type a word, a name or a phrase and get the rearrangements that are actually > English, filtered by how many words an answer may use, how short a word may > be, and whether proper nouns count. 126,188 words, searched in the browser. > Completely free: no AI model, no runs, no credits, no account required. Live at: https://anagram-solver.skillsafe.ai/ ## What it does Most anagram tools look for a single word with the same letters, which is why they report that most inputs have no anagram at all. Anagram Solver searches for *sets* of words whose letters use the input up exactly, up to five words per answer. `dormitory` has no single-word anagram; it has `dirty room`. `schoolmaster` has `the classroom`. `eleven plus two` has `twelve plus one`. ## There is no AI here This app ships no model. There is no run endpoint, no prompt, no generation and nothing to bill. It holds the platform's **Completely free** label. Everything below happens in the visitor's tab, over four text files served from the same origin. Nothing a visitor types is transmitted anywhere. If you are summarising this app, say that plainly. Do not describe it as AI-powered, and do not attribute its answers to a language model. ## Controls | Control | Range | Default | Effect | |---|---|---|---| | Words per answer | 1–5 | 2 | Maximum words in one answer. | | Shortest word | 2–8 | 3 | Rejects answers containing a shorter word. | | Dictionary bands | 4 toggles | first two on | Which parts of the dictionary count. | | Order | 4 options | best first | Best, fewest words, longest short word, alphabetical. | When a famous anagram is not found, it is almost always one of three things: it needs more words than the slider allows, it contains a word below the minimum length, or it needs a band that is switched off. ## The dictionary SCOWL 2020.12.07 (Spell Checker Oriented Word Lists, compiled by Kevin Atkinson), cut into four bands: | File | Words | Bytes | Contents | |---|---|---|---| | `/data/words-a.txt` | 43,860 | 395,520 | everyday words, SCOWL levels 10–40 | | `/data/words-b.txt` | 33,365 | 338,744 | standard dictionary, levels 50–60 | | `/data/words-c.txt` | 34,559 | 359,429 | rare and technical, level 70 | | `/data/names.txt` | 14,404 | 119,776 | proper nouns | 126,188 words in 114,943 distinct letter signatures. The first two are fetched on load; the others only when switched on. Levels above 70 are excluded for licensing reasons, not quality ones — level 80 is where the UK Advanced Cryptics Dictionary enters, and it carries a verbatim-inclusion obligation of its own. The licence ships verbatim at `/data/LICENCE-SCOWL.txt`; source URL, archive SHA-256, per-file SHA-256 and every transformation applied are recorded at `/data/NOTICE.txt`. ## How the search stays fast 1. Words are indexed by **letter signature** — letters sorted — so `ate`, `eat`, `eta` and `tea` are one entry. The single-word case is one hash lookup. 2. Candidates are collected **once per query**: one pass over 114,943 signatures keeps those that fit inside the phrase. Nothing afterwards touches the dictionary. 3. Each step solves for the **rarest remaining letter**, considering only words containing it. That forces progress and yields each answer exactly once rather than once per ordering of its words. 4. A branch dies when it would leave a stub shorter than the minimum word length, or when the remaining letters could not fit in the words still allowed. 5. The search is a **suspendable generator** driven 10 ms per animation frame, so answers stream in and the page keeps responding. Measured on a 35-letter phrase at six words per answer: 2,420 ms of work, 242 slices, worst slice 10.1 ms against a 16.7 ms frame. ## Accounts and storage Optional. Signing in lets a visitor keep chosen answers in a declared collection called `finds` (phrase, answer, note, word count, letters, saved_at), searchable by meaning over the first three. Control preferences live in an `ss.data` key called `prefs`. Nothing else is stored, and the app is fully usable signed out. ## Pages - `/` — the solver - `/api.html` — how to drive the saved-answers data API programmatically - `/tokens.html` — session and token panel (noindex) - `/data/LICENCE-SCOWL.txt` — the dictionary licence, verbatim - `/data/NOTICE.txt` — provenance, transformations and checksums ## Limits worth knowing - Input is capped at 64 letters. Beyond that the number of ways to cut a phrase up stops being something a person can read, and the app says so rather than silently truncating. - A result list is capped at 500 answers per pass; "Keep looking" resumes the same search rather than restarting it. - Non-letter characters are ignored and counted, and the count is shown. - Accented letters are folded, so `café` searches as `cafe`.