echo-words
A private vocabulary tutor for every word you meet. Send a word, a phrase or a whole sentence, and echo-words explains what a dictionary will not: every sense with its register, how the word is really used, where it comes from, examples worth copying. Then it writes the flashcard for you — in both directions, with a real voice reading the word aloud — into the Anki deck you already review. It 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 a translation — every target-language-distinct sense with its register, the collocations and prepositions the word takes, what it is confused with, its origin, and examples with their translations; an idiom or phrase is explained as a whole and also offers its component words as chips
- one selected sense, reviewed four ways — the unit and its translations are asked in both directions, then its example is asked once highlighted and once gapped; every sense remains available as a chip for a separate note
- a real voice, not a robot — natural-sounding audio, in the app and on the card
- a whole sentence gets a lesson instead — translated, with what is hard in it explained, and every word plus the expressions worth learning offered as chips; tapping one creates its own four-card note
- a deeper entry when you want one — one tap re-asks the strongest model for a lexicographer's article: every sense including the rare ones, etymology in depth, near-synonyms, the mistakes learners make
- nothing to pay — a pool of free LLM providers answers; a paid model is optional and 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.7.3
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.7.3.tar.gz | 1.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| echo_words-1.7.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.0 MB
Release files / echo_words-1.7.3.tar.gz
| Download URL | echo_words-1.7.3.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4469f58ea56fc05c8b1e2cbff8b48172d447406eb85c3ba3d2a6fd4e7cda4ac
|
|
BLAKE2b-256 checksum How to use checksums |
662404f0950a3810580f0816e580e9f75f279ce40e49c440d80fc66b5e9d41ac
|
| 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.7.3-py3-none-any.whl
| Download URL | echo_words-1.7.3-py3-none-any.whl |
|---|---|
| Size | 82.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d7ad19aea74469b19e36946d7cd22ac31978e632453d5e67d61720f559070312
|
|
BLAKE2b-256 checksum How to use checksums |
de59b975352fcef4aad12d68a93b961d079950953c7f63ea3f668931358220ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|