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 sense with its part of speech and register, the collocations and prepositions the word takes, what it is confused with, its origin, and examples with their translations; an idiom or a phrase is explained whole, never taken apart
- a card built for review, not a word→translation pair — recognition and recall, unrelated senses kept apart, a gapped example so the reverse card asks a real question, and the pronunciation inside the 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 the expressions worth learning offered as cards of their own
- 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.2.0
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.2.0.tar.gz | 1.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| echo_words-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.8 MB
Release files / echo_words-1.2.0.tar.gz
| Download URL | echo_words-1.2.0.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
935eceedbff0d5f0280f440545a88c8ccbd6ae9b9f2e652f4d0dc6b480353d5d
|
|
BLAKE2b-256 checksum How to use checksums |
00fedd0a633f717f9de66041ffdda293ea8491b7e4f8fefe95cbd62a6c1ae3e3
|
| 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.2.0-py3-none-any.whl
| Download URL | echo_words-1.2.0-py3-none-any.whl |
|---|---|
| Size | 50.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8ebf0b3e4c51f222f59d2817f35a94b5094529e3a39636159896e420475031b6
|
|
BLAKE2b-256 checksum How to use checksums |
b90e80caec900dd2e8ef9a71df441ca087b09d1b705543839df9d91006f7a1d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|