Translate selections and whole notes with Google or your own AI model (20+ BYOK providers).
Translate selections and whole notes inside Obsidian with Google or your
own AI model (BYOK, 20+ providers) — powered by @dualtran/core, the engine
extracted from the DualTran browser extension.
node scripts/sync-core.mjs # builds + vendors @dualtran/core (CORE_REPO env to override)
npm install # installs devDeps + the vendored tarball
npm test # unit + integration suites
npm run build # produces main.js (production, minified)
npm run verify # test + build + dist guards (manifest/versions/size/node-refs)
npm run dev builds with inline source maps and watches (main.js).
src/bridge.ts — host-agnostic translation logic (Google batch via
core.translateGoogle, AI via core.streamChat); fully dependency-injected.src/coreAdapter.ts — the only module that imports the vendored core.src/editorOps.ts — pure editor-insertion helpers (Obsidian Editor-shaped).src/settings.ts — settings shape, defaults and sanitization.src/main.ts — plugin wiring: commands, settings tab, requestUrl-based
fetch adapter (no CORS on desktop or mobile).manifest.json + package.json + versions.json (minAppVersion map).npm run verify green.v prefix matching the manifest version exactly,
push the tag, then attach main.js, manifest.json and styles.css (if
any) to the GitHub release.MIT — the bundled @dualtran/core portion is MPL-2.0.