No description
Find a file
Bryan Maniotakis ce6ab40708
Merge pull request #11 from bryanmanio/feat/mass-import
Add mass-import command
2026-05-11 02:18:52 -06:00
src Handle 429 rate limits from the Dictionary API 2026-05-11 02:12:20 -06:00
.gitignore Prepare for Obsidian community plugin submission 2026-05-09 20:34:42 -06:00
esbuild.config.mjs Prepare for Obsidian community plugin submission 2026-05-09 20:34:42 -06:00
LICENSE Add MIT license 2026-05-09 21:14:49 -06:00
main.js Handle 429 rate limits from the Dictionary API 2026-05-11 02:12:20 -06:00
manifest.json Bump version to 1.0.0 2026-05-09 21:06:02 -06:00
package-lock.json Prepare for Obsidian community plugin submission 2026-05-09 20:34:42 -06:00
package.json Bump version to 1.0.0 2026-05-09 21:06:02 -06:00
README.md Prepare for Obsidian community plugin submission 2026-05-09 20:34:42 -06:00
tsconfig.json Prepare for Obsidian community plugin submission 2026-05-09 20:34:42 -06:00
versions.json Bump version to 1.0.0 2026-05-09 21:06:02 -06:00

Lexophile

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 lexicon from 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.sqlite and 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

  1. Download main.js, manifest.json, and versions.json from the latest release.
  2. Create the folder <vault>/.obsidian/plugins/lexophile/.
  3. Copy the three files into that folder.
  4. 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+PLexophile: Add word to lexicon → type or paste a word, hit Enter. The source for these is manual.

From your Kobo eReader

  1. Settings → Lexophile → enable Kobo import, set your books folder.
  2. Plug in your Kobo via USB.
  3. Cmd+PLexophile: Import words from Kobo.
  4. The default path (/Volumes/KOBOeReader/.kobo/KoboReader.sqlite on macOS) is pre-filled. Click Read words.
  5. 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.
  6. 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?

License

MIT © Bryan Maniotakis