|
|
||
|---|---|---|
| src | ||
| .gitignore | ||
| esbuild.config.mjs | ||
| main.js | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| versions.json | ||
Lexophile — Personal Dictionary
Build your vocabulary one word at a time.
An Obsidian plugin that turns any word you read into a permanent, searchable dictionary note in your vault.
Install · How it works · Privacy · Support
What it does
- Right-click on the web → "Add to Lexophile" → a definition note appears in your Obsidian vault. (Requires the Chrome extension.)
- Inside Obsidian → run
Lexophile: Add word to lexiconfrom the command palette and type or paste the word. - Plug in your Kobo → import every word you saved from "My Words" in one shot, with each word linked back to the book it came from.
Every word becomes a note in your Dictionary/ folder with the part of speech, definition, example sentence, and a clickable source link. A Bases view auto-generates so you can see your whole vocabulary in one table.
Features
- 📖 One-click capture from the web via the companion Chrome extension
- ✍️ Manual entry from inside Obsidian
- 📱 Kobo import — pull "My Words" from
KoboReader.sqliteand link each word back to its book - 🗂️ Auto-generated Bases view of your full lexicon (Word, Word class, Definition, Example, Source, Date added)
- 🔗 Books library integration — Kobo imports become
[[wikilinks]]to book notes - 🔒 Local-only — your words never leave your machine except for the dictionary lookup itself
- 🎨 Customizable note template with frontmatter properties for everything
How it works
The Chrome extension and the plugin authenticate to each other with a shared secret token (auto-generated during onboarding) so random websites can't write to your vault.
┌──────────────┐ definition ┌────────────────┐
│ Chrome │ ←───────────────── │ Free │
│ extension │ │ Dictionary │
└──────┬───────┘ │ API │
│ └────────────────┘
│ POST /word
│ Bearer <token>
▼
┌──────────────────────────────┐
│ Obsidian plugin │
│ (HTTP server on :27124) │
│ │
│ creates note in vault → │ → 📓 Dictionary/serendipity.md
└──────────────────────────────┘
Installation
From the Obsidian community store (coming soon)
Search for Lexophile in Settings → Community plugins → Browse.
Manual install
- Download
main.js,manifest.json, andversions.jsonfrom the latest release. - Create the folder
<vault>/.obsidian/plugins/lexophile/. - Copy the three files into that folder.
- In Obsidian: Settings → Community plugins → toggle Lexophile - Personal Dictionary on.
Chrome extension
Install the companion extension from the lexophile-chrome-extension repo.
Setup
After installing, the Chrome extension opens a welcome tab. It auto-generates an API token; copy it and paste it into Obsidian → Settings → Lexophile → API token, then click the welcome page's Test connection button. Once it goes green, you're done.
Usage
From the web
Highlight a word on any page, right-click, and choose Add "" to Lexophile. A toast confirms it was saved. The page URL is captured as the word's source.
Inside Obsidian
Cmd+P → Lexophile: Add word to lexicon → type or paste a word, hit Enter. The source for these is manual.
From your Kobo eReader
- Settings → Lexophile → enable Kobo import, set your books folder.
- Plug in your Kobo via USB.
Cmd+P→ Lexophile: Import words from Kobo.- The default path (
/Volumes/KOBOeReader/.kobo/KoboReader.sqliteon macOS) is pre-filled. Click Read words. - A preview lists each book with the Kobo title, an editable Title Case name, a word count, and autocomplete against existing book notes in your library.
- Edit any name or pick an existing book, then Import.
Every imported word gets source: "[[Book Name]]" in its frontmatter. If the book note doesn't exist yet, the plugin creates a stub (configurable).
Settings reference
| Setting | Default | Notes |
|---|---|---|
| Dictionary folder | Dictionary |
Auto-created if missing |
| Note naming | As-is | lowercase and Title Case also available |
| Duplicate handling | Skip | Or append, or overwrite |
| Auto-create dictionary base | On | Creates _Dictionary List.base for the table view |
| Local server port | 27124 |
Change if it conflicts with another plugin |
| API token | (auto-generated) | Must match the Chrome extension |
| Enable Kobo import | Off | Reveals the books library settings |
| Books folder | Books |
Where book notes live |
| When a book isn't in your library | Auto-create stub | Or link without creating, or use plain text |
Privacy
Everything runs on your machine. The only network call is to the Free Dictionary API (api.dictionaryapi.dev) to fetch the actual definition for a word. No analytics, no telemetry, no account, no cloud.
Development
npm install
npm run dev # watch mode
npm run build # production bundle
The plugin bundles sql.js (used by the Kobo import) which is why main.js is ~1 MB.
For the Chrome extension, see lexophile-chrome-extension — no build step, just load unpacked.
Support
Need help, hit a bug, or have an idea?
- 🐛 Bug or feature request → open an issue
- ☕ Like it? → Buy me a coffee
License
MIT © Bryan Maniotakis