Word Tracer is a word puzzle game with crossword-style boards and a swipeable letter wheel. Trace words from the wheel to reveal the grid, clear each level, and keep an eye out for bonus words. Offline and ad-free.
Play on GitHub: https://plhosk.github.io/wordtracer/
-
Swipe across the wheel (bottom of screen) to build a word from the available tokens, then lift to submit it.
-
Example: to spell the word EAT, start the swipe on EA and lift after reaching T.
-
Words are built from two or more tokens. Each token can only be used once per word.
-
Press the swap button (below the wheel) to swap the order of all tokens with two or more letters.
-
Example: to spell the word HOT, press the swap button once to change the OH token to HO, then swipe from HO to T.
-
On the board (top of screen), hidden words are positioned like a crossword, spelled either downwards or to the right.
-
Find words by guessing and using information from the board such as word lengths and revealed letters.
-
Use the Hint button for a clue to an unsolved word.
-
Solving words will reveal some of the letters of connected words. Solve a partially revealed word by submitting the full word.
-
Guess and submit every word on the board to advance to the next level.
- Switch between different level packs using the Level button in the top right. Earlier packs are easier and later ones are more difficult.
- A few game options can be controlled using the Settings button. For example, turning on the Always show hint option will show a hint at the bottom of the screen at all times, if one is available.
Clone the Git repository to play locally (requires Git and Node.js v22 or newer):
git clone https://github.com/plhosk/wordtracer.git
cd wordtracer
npm install
npm run devThen open the local Vite URL shown in your terminal. Default: http://localhost:5173
- Look up swiped words in the built-in dictionary
- Hint system shows a partial dictionary entry
- Multiple level packs with saved progress
- Light and dark themes
- Web and Android support using Vite and Capacitor
An optional Node server exposes the game through a REST API for tools, agents, and external clients.
npm run server:watchThe API runs on http://localhost:3001 by default. Full endpoint documentation lives in API.md: https://github.com/plhosk/wordtracer/blob/main/API.md
See how many levels your local LLM agent can solve without help! Suggested AI prompt: Read API.md. Solve levels starting with A1 using python httpx requests. The server is at http://localhost:3001. Make one API call at a time using uv run python -c.
Levels are pre-generated through a Python-based build pipeline that assembles lexicons, token combos, candidate boards, scoring, final pack export, and dictionary lookup data. A large set of generated levels are distributed with the game.
npm run levels:buildPipeline notes live in scripts/README.md, and tuning guidance lives in scripts/levels_build_tuning.md.
Useful scripts:
npm run dev # start the Vite web app
npm run check # run TypeScript and ESLint
npm run build # build the web app
npm run build:server # build the Node API server
npm run preview # preview the production web build locally
npm run server # build and start the API server
npm run server:watch # rebuild and restart the API server on changesAndroid helpers:
npm run cap:sync # build web assets and sync them into Capacitor
npm run android:build # build a debug APK
npm run android:build:release:unsigned # reproducible unsigned release APK build (npm ci + cap sync + gradle release)Reproducible Android release runbook: docs/reproducible-builds.md
Project and third-party notices for bundled data sources are documented in THIRD_PARTY_NOTICES.md.
