A rhyme finder for songwriters — live at songrhymes.com.
Type a word or phrase and get back rhymes the way a songwriter thinks about them: perfect rhymes first, then the whole family of near rhymes, all the way down to multi-word "mosaic" matches like "forgotten one" / "a lot of sun". It's tuned for sung American English, and it handles made-up words, slang, and names just fine.
The scoring is done entirely by a small neural net. It was taught by a rule engine that encodes Pat Pattison's rhyme taxonomy — the rules grade millions of training examples, and the net learns from those grades. No rhyme was ever hand-labeled, and no rules run when you search.
The 1,000 most common supported English words also have pre-rendered pages at
URLs such as https://songrhymes.com/rhymes-with/love; arbitrary words and
phrases continue to use the live search.
- Web: songrhymes.com — search, vote on results, or play pickem (votes help improve the model)
- CLI:
python3 scripts/rhyme.py lonely, or score a pair withpython3 scripts/rhyme.py "forgotten one" "a lot of sun" - Claude:
claude mcp add --transport http rhymes https://songrhymes.com/mcp
uv sync --all-extras # install everything (or: pip install -e ".[train]")
make help # see the common tasks- docs/usage.md — CLI, MCP, web app, evals
- docs/impl.md — how it works
- docs/tech.md — major technologies + versions
- docs/training.md — retraining and fine-tuning
- docs/deploy.md — deploying and the improvement loop
- docs/changelog.md — release history
- docs/prompt.md — the original project brief
Code layout: sr/ is the library (all the real functionality, plus the
web API and tests), scripts/ holds runnable entry points, web/ is the
React client, and everything data-ish lives in local/data/ (private,
never committed).