echo-words
A private AI vocabulary tutor for every word you meet. Send a word, phrase, or whole sentence, and echo-words explains what a dictionary will not: distinct senses and registers, real usage, origins, and examples worth remembering. It also creates the Anki material for you — four cards that test one selected sense in both directions, with natural pronunciation — in the deck you already review. echo-words explains; Anki makes you remember.
| A word, a phrase, a sentence |
Analysis, audio, card in Anki |
A sentence, translated and explained |
What one word gets you:
- an explanation, not just a translation — distinct senses and registers, collocations, prepositions, common confusions, origins, and translated examples; a phrase is taught as a whole while its words remain available as chips
- one selected sense, reviewed four ways — word and context test recognition and production; every other sense stays one tap away from its own note
- a real voice, not a robot — natural-sounding audio in the app and on the cards
- a whole sentence becomes a lesson — echo-words translates it, explains the hard parts, and turns every useful word or expression into a one-tap lesson
- a deeper entry on demand — one tap asks the strongest model for rare senses, deeper etymology, near-synonyms, and the mistakes learners make
- private and free by default — tailnet-only, no application database, and a pool of free LLM providers; the optional paid model is capped
Documentation
Development
uv sync
npm --prefix webapp ci
inv dev # http://127.0.0.1:8080
inv test # Python + frontend suites
inv pre # ruff, ruff-format, pyrefly, file hygiene
inv test silently skips the frontend suite when webapp/node_modules is
missing, so npm ci is part of the setup, not an optional extra. Never call
Ruff directly — inv pre is the only gate that matches CI.
Deployment is invoke over ssh, and the frontend is built on the VM by the
deploy itself:
inv setup-app --with-host-prep # one-time, idempotent
inv deploy --ref=main
inv status
inv logs
See Development and Deploy to Oracle Cloud in the docs.
Reports
Created with cookiecutter using template
Release files for echo-words 1.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| echo_words-1.8.1.tar.gz | 1.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| echo_words-1.8.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.0 MB
Release files / echo_words-1.8.1.tar.gz
| Download URL | echo_words-1.8.1.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fe879719cc834b15527816eb3e593e86ced83e45989c68b19831f6c68d580f69
|
|
BLAKE2b-256 checksum How to use checksums |
77bca884be238b57857a57093c442c7859c5625985ee63ebf180920b839218b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / echo_words-1.8.1-py3-none-any.whl
| Download URL | echo_words-1.8.1-py3-none-any.whl |
|---|---|
| Size | 85.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4ea7ddf212dd1d98f274c157f9aad5e6b027a58469f265b8f193de5aba605a62
|
|
BLAKE2b-256 checksum How to use checksums |
3354527bcd753d8acb6bfdfbc918666530d683d87b52bcb0535aee89b03ff1f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|