Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

TranslateNote

Maggiora DuccioMaggiora Duccio71 downloads

Translate a selection or a whole note with any OpenAI-compatible LLM. The translation opens in a side panel for review, so the note only changes when you insert it. YAML front-matter is left intact.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates1

An Obsidian plugin that translates a selection or a whole note with any OpenAI-compatible LLM, and shows the result in a side panel so you can read it against the original before it touches your note.

Desktop only — isDesktopOnly: true. Mobile has not been tested.


Why

You clip an English article or a YouTube transcript into Obsidian and want to read it in your own language, without leaving the editor.

Most translation plugins overwrite your note with the result. That leaves you with no way to check the translation against the source, and nothing to go back to if it is wrong. TranslateNote sends the translation to a side panel instead: you read it next to the original, edit it if you want, and the note changes only when you press Insert.


Features

  • Review before accepting — the translation opens in a side panel with Insert and Discard. Your note is not modified until you insert.
  • Editable result — fix a word or a whole paragraph in the panel before inserting it.
  • Translate a selection or the whole note — for a full note, the YAML front-matter is left out of the translation and preserved on insert.
  • Any target language — a free-text field, not a fixed list. Type Italian, Japanese, Brazilian Portuguese; the model does the rest.
  • Editable system prompt — control tone and terminology, with a {{targetLanguage}} placeholder and a one-click restore.
  • 8 provider presets, plus custom — every preset points at a globally reachable endpoint.
  • Quick provider switch — one command flips the active provider without opening settings.
  • Safe insert — if the note changed while you were reviewing, the insert is refused rather than overwriting your edits.
  • Long-note guard — notes over 20,000 characters ask for confirmation before the request goes out.

Install

The plugin is not yet listed in the Obsidian Community Plugin directory. To install it manually:

  1. Download main.js, manifest.json and styles.css from the latest release.
  2. Create the folder <your-vault>/.obsidian/plugins/translate-note/.
  3. Copy the three files into it.
  4. Reload Obsidian, open Settings → Community plugins, find TranslateNote and enable it.

Configuration

  1. Open Settings → TranslateNote.
  2. Under API providers, press + and pick a preset.
  3. Open the provider that was added and fill in its API key. The Base URL and Model name come pre-filled; change the model if you want a different one.
  4. With more than one provider configured, open the one you want and press Set as active — or use the Switch API provider command.

Under Translation you set the target language (any language name) and, if you want, edit the system prompt.

Where to get an API key

Provider Sign up Pre-filled model
DeepSeek platform.deepseek.com deepseek-chat
OpenAI platform.openai.com gpt-5.4-mini
Gemini aistudio.google.com gemini-3.5-flash-lite
Kimi (Moonshot) platform.moonshot.ai kimi-k2.6
Qwen Alibaba Cloud Model Studio qwen-turbo
Z.AI (GLM) z.ai glm-4.7-flash
OpenRouter openrouter.ai (set manually)
Custom any OpenAI-compatible endpoint (set manually)

Model names move fast. If a pre-filled model has been retired, the plugin tells you so — change the Model name field to a current one from your provider's model list.


Usage

Commands (Cmd/Ctrl + P)

Command What it does
Translate selection Translates the selected text into the panel
Translate full note (preserve front-matter) Translates the note body into the panel
Switch API provider Picks the active provider from a list

All three are also in the editor's right-click menu, and can be bound to hotkeys under Settings → Hotkeys.

The review panel

The translation appears in the right sidebar. From there:

  • Insert writes it back into the note — over the selected range for a selection, over the body for a full note, leaving the front-matter alone.
  • Discard throws it away. The note was never touched.
  • The text is a normal editable field, so you can correct the translation before inserting it.

The system prompt

This is what the model is told by default:

You are a professional translation engine. Translate the following content into {{targetLanguage}}.

Rules:
- Preserve the paragraph structure and Markdown formatting of the source
- The first time a proper noun or technical term appears, keep it in the source language and put the translation in parentheses right after it
- Do not add explanations, summaries or comments; output the translation only
- Preserve the tone and register of the source
- Leave numbers, URLs and code snippets untouched

{{targetLanguage}} is replaced by the Target language setting. Edit the prompt to suit your material — a glossary line, a register instruction, a rule about how to handle quotations — and use Restore default prompt to go back.


FAQ

Does it modify my note while translating? No. The translation goes to the panel. The note changes only when you press Insert.

What if I edit the note while a translation is open in the panel? The insert is refused, with a notice explaining why. Copy the text out of the panel, or run the translation again.

Is the front-matter translated? No. For a full note, only the body after the closing --- is sent to the model, and the front-matter is preserved on insert.

Which languages can I translate into? Any language the model supports. Target language is a free-text field, so it works in every direction — set it to English to go the other way.

Where are my API keys stored? Unencrypted, in data.json inside the plugin folder of your vault. This is how Obsidian plugins store settings. Keep it in mind if your vault is synced or shared.

Can I use a local model? Yes. Pick Custom and point the base URL at your endpoint — for example http://localhost:11434/v1 for Ollama.

What happens with very long notes? Over 20,000 characters you get a confirmation first. The request is sent in one go, so a long note means a large single request: worth knowing if your plan has tight limits.

Does it work on mobile? Untested. The manifest says isDesktopOnly: true.


Requirements

  • Obsidian ≥ 1.13.0
  • Desktop (macOS / Windows / Linux)
  • An API key from at least one provider

License

MIT

  • Original work © 2026 xiaochen (陈与小金)
  • Fork and subsequent modifications © 2026 D.maggiora

Acknowledgements

TranslateNote is a fork of LLM Translate by 陈与小金, which is itself derived from obsidian-llm-shortcut by chernodub — the OpenAI-compatible request adapter and the loading indicator come from that lineage.

This fork exists because the original is a Chinese-only plugin: its interface, its error messages and its default prompt were all in Chinese, which put a good translator out of reach for anyone who does not read it. What changed here: the whole plugin is in English, the provider presets point at globally reachable endpoints, and translations go through a review panel instead of overwriting the note.

HealthGood
ReviewSatisfactory
About
Translate a selection or an entire note with any OpenAI-compatible LLM and display the result in a side panel for side-by-side review. Edit the translation in the panel, preserve YAML front matter for full-note inserts, and insert only when ready — insertion is blocked if the note changed. Choose any free-text target language and switch providers quickly; run on desktop only.
AILanguagesSidebar
Details
Current version
0.2.0
Last updated
Last month
Created
Last month
Updates
1 release
Downloads
71
Compatible with
Obsidian 1.13.0+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
Maggiora DuccioMaggiora Ducciodmagg
GitHubdmagg
  1. Community
  2. Plugins
  3. AI
  4. TranslateNote

Related plugins

Claude Sidebar

Run Claude Code in your sidebar.

HiNote

Add comments to highlighted notes, use AI for thinking, and flashcards for memory.

OpenClaw

Chat with your OpenClaw AI agent in a sidebar. Your vault is the agent's workspace.

Dictionary

A multilingual dictionary that shows word definitions in the sidebar and popover synonyms.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

Smart Connections

Find related notes and excerpts while writing. Your AI link building copilot displays relevant content in graph + list view. A local embedding model powers semantic search. Zero setup. No API key.

Tag Wrangler

Rename, merge, toggle, and search tags from the tag pane.

Fast Note Sync

Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base.

ChatGPT MD

A seamless integration of ChatGPT, OpenRouter.ai and local LLMs via Ollama into your notes.