jacobinwwey8k downloadsIntegrates with various LLMs to process notes, generate wiki-links, and create concept notes
Notemd transforms notes into linked Markdown, concept notes, research summaries, translations and diagrams. Choose the model, inspect the output and keep the results in your Obsidian vault.
English | 简体中文 | Español | Français | Deutsch | Italiano | Português | 繁體中文 | 日本語 | 한국어 | Русский | العربية | हिन्दी | বাংলা | Nederlands | Svenska | Suomi | Dansk | Norsk | Polski | Türkçe | עברית | ไทย | Ελληνικά | Čeština | Magyar | Română | Українська | Tiếng Việt | Bahasa Indonesia | Bahasa Melayu
Each diagram preview has independent zoom, pan, fit and actual-size controls. Ctrl/Command + wheel zooms; ordinary wheel scrolls. Large PNG exports retain the selected 72–600 PPI (default 300). SVG is vector-based; PPI applies only to raster exports.
Generate images compatible with Obsidian — Enabled by default. Check PNG decoding in Obsidian; if it fails, keep the requested original and add a lower-PPI copy. Both filenames show their PPI. Off exports only the requested PNG. (note_drawnix_300ppi.png, note_drawnix_obsidian_87ppi.png).
Successful export logs start collapsed. Lock each preview beside the minus button, or hold Alt temporarily, to select available SVG/HTML/PDF text without moving or zooming it. Release Alt to restore the previous lock state. PNG/PDF open inside the diagram preview window; PNG has no selectable text layer. Presentation export supports multiple formats and requires the Jacobinwwey Slidev fork; official fallback is disabled.
Each PDF page has a separate preview panel with its own zoom, fit and lock controls. Scroll between the page panels; adjusting one page leaves the others unchanged.
Preview Export opens a single format-and-folder chooser: check SVG, PNG and/or PDF, then confirm once. The main action exports all preview panels; each panel's action exports that panel only. Presentation formats use visible checkboxes, so ordinary clicks retain multiple choices without Ctrl/Shift. At least one format is required. During export, controls show the active format and progress; the final summary preserves any failures.
See the preview and export reliability record for verification status and the required fork provenance.
Diagram compatibility work included in 1.9.15 (implementation evidence dated 2026-10-18): selected-type SVG previews now scale collision clearances with the diagram instead of rejecting valid thumbnails. See the compatibility verification and Archify comparison for evidence, limitations and future diagram-layout recommendations.
1.9.15 preview/export repair: prepared Slidev workspaces explicitly import the native Mermaid component and acceptance checks detect missing diagrams. Saved Drawnix mind maps retain their primary preview alongside attachments; canonical SVG panels open fitted, and preview receipts support drag selection. See the root causes and verification.
Source-backed recovery keeps tree cycles/forests and missing lane steps exportable with visible caveats, not diagnostic-only panels or invented business content. Run npm run diagram:acceptance to generate seven offline before/after PNG/SVG pairs and a bilingual HTML review page. See the acceptance and deployment plan.
Reading-first follow-up: keep the reviewed sequence presentation unchanged; cyclic peers use direct reciprocal relations; missing lane endpoints use one neutral localized label and content-sized rows. Source facts remain intact. See the case 4/6/7 review and evidence; exportability alone is not a readability claim.
1.9.15 diagram quality work: ER generation now preserves typed fields, SQL types/comments, PK/FK/UK roles, references and independent endpoint cardinalities. HTML/SVG, Draw.io and Mermaid share a measured table preview; unknown semantics are not guessed. Class/sequence identity collisions, disconnected tree cycles, broad-tree overlap and empty-cell lane handoffs are repaired. See the implementation, evidence and all-33-type comparison, including remaining native-editor and layout limitations.
| Reader | Entry point | Outcome |
|---|---|---|
| Newcomer | Quick start | Configure a provider and verify one note |
| User | Workflows | Control folders, outputs and recovery |
| Developer | Developer guide | Build, test and extend existing contracts |
| Agent | Agent guide | Discover four supported export commands |
Notemd is an MIT-licensed Obsidian plugin for file-based knowledge work. It supports cloud providers, gateways and local model servers. Stored outputs stay in the vault; cloud tasks send content to the selected endpoint, and web research uses the network.
Version: 1.9.15
ER diagrams preserve field types, PK/FK/UK keys, comments and relationship cardinalities. Shared table measurements improve HTML/SVG and Draw.io exports; Mermaid keeps distinct class and participant identities.
Opening a saved .drawnix restores the main board before Mermaid attachments. Mermaid previews start fitted to the whole diagram. Export receipts support text selection and copying. Windows Slidev checks native Mermaid components and detects missing rendered diagrams.
Recoverable tree and lane references retain visual output with diagnostics. Short routes and compact layouts prioritize reading; the reviewed sequence example stays unchanged, including bottom actors. Invalid or unsafe content can still need repair.
Install matching main.js, manifest.json and styles.css from 1.9.15, then reload. Existing notes and settings remain. Drawnix cross-branch arrows are static after external rearrangement.
PNG/PDF open inside diagram previews. Each PDF page has independent controls. Zoom redraws visible PDF content at screen pixel density with bounded memory; embedded bitmap resolution remains limited by its source.
Hold Alt to freeze navigation while selecting available SVG/HTML/PDF text. Releasing Alt restores the previous lock state. PNG has no selectable text layer.
Choose SVG, PNG and/or PDF plus a destination folder, then confirm once. The main Export action includes all panels; a panel action includes only that panel. Presentation formats use checkboxes and require at least one selection. Progress and partial failures remain visible.
Install matching main.js, manifest.json and styles.css from 1.9.14, then reload. Existing notes and settings are preserved.
Successful export logs start collapsed. Lock each preview to select SVG/HTML text without moving or zooming. PNG/PDF previews and multi-format presentation exports are repaired. Windows browser installation verifies launch and allows time for cold starts. Slidev uses the repaired Jacobinwwey fork.
Install matching main.js, manifest.json and styles.css from 1.9.13, then reload. Existing notes and settings are preserved. Replace the older Slidev fork package through the export environment installer.
When there are no errors, the entire diagnostic panel is collapsed by default, leaving only its title and severity counts visible. Errors open the panel automatically. Expand the panel and its tag groups to read every message and suggestion. No diagnostic records are removed. Only error groups open automatically; warning and information groups stay collapsed, even when they share a tag.
Drawnix places closely related branches nearer and reduces connector overlap and crossings, preserving every node and explicit relationship. Cross-branch arrows remain static after rearrangement.
PDF export handles complex SVG selectors and inherited styles after sanitization. Missing viewBoxes are restored; oversized pages are scaled proportionally while retaining vectors.
Diagnostics are grouped by tag and collapsed by default. Expand a group to read every message and suggestion; severity counts remain visible.
Logs accumulate across task stages and preview reopening during the plugin session. Use Clear log to reset them; reloading the plugin does not preserve the transcript.
Install matching main.js, manifest.json and styles.css from 1.9.11, then reload. Settings and existing files are preserved.
1.9.11 · 1.9.11 — Clearer diagrams and reliable PDF export
Imported SVG previews remove active content and external resources while preserving Chinese labels and panel styles. Device-only providers are now isolated by Vault; use the explicit legacy import action in settings, which preserves the old list and existing configurations. Presentation previews use a loopback server with shared-consumer lifecycle control. Failed favorites saves and clipboard writes report errors; deletion follows Vault preferences. PNG compatibility stays enabled by default, preserving the requested original and adding a verified lower-PPI copy only when needed. Drawnix has no fixed relation quota; presentation exports keep separate settings. Install matching release files, reload, and test one note before batching.
topic_drawnix.pdf and topic_flowchart.svg; collisions add -2, -3 and so on without overwriting existing files.The 36 provider presets and 33 executable diagram entries already existed in 1.9.7. Read the upgrade guide and check the public Release for availability.
Drawnix cross-branch arrows remain static after rearrangement. Mermaid/SVG in PPTX may use image fallback. Cancellation is not undo and does not guarantee remote generation or billing stops. Physical mobile devices and Obsidian 0.15.0 remain unverified.
Documentation hub · Language Hub · Diagram Gallery · FAQ
If you love using Notemd, please consider ⭐ Give a Star on GitHub or ☕️ Buy Me a Coffee.
trial-concepts folder and select it as Concept note folder; the initial setting is empty. Prepare a disposable Notemd trial.md containing a short paragraph you can send to the provider.Notemd trial_processed.md beside the preserved source. Review links and any concept notes instead of assuming the model output is correct.One-Click Extract::process-current-add-links>batch-generate-from-titles>batch-mermaid-fix
Research and diagram generation are separate actions. After cancellation, wait for the task to settle and inspect completed/recovery outputs before repeating.
| Concern | Scope | Default | Notes |
|---|---|---|---|
UI Locale |
Plugin UI text only (settings, sidebar, notices, dialogs) | auto |
Follows Obsidian locale; current UI catalogs are en, ar, de, es, fa, fr, id, it, ja, ko, nl, pl, pt, pt-BR, ru, th, tr, uk, vi, zh-CN, zh-TW. |
Task Output Language |
LLM-generated task output (links, summaries, generation, extraction, translation target) | en |
Can be global or per-task when Use different languages for tasks is enabled. |
Disable auto translation |
Non-Translate tasks keep source-language context | false |
Explicit Translate tasks still enforce the configured target language. |
| Locale fallback | Missing UI key resolution | locale -> en |
Implementation safety net; supported visible surfaces are regression-tested and should not silently fall back during normal use. |
en, ar, de, es, fa, fr, id, it, ja, ko, nl, pl, pt, pt-BR, ru, th, tr, uk, vi, zh-CN, zh-TW.requestUrl with transient network errors such as ERR_CONNECTION_CLOSED, Notemd now retries the same attempt through environment-specific fallback transport before entering the configured retry loop: desktop builds use Node http/https, while non-desktop environments use browser fetch. This reduces false failures on slow gateways and reverse proxies.requestUrl fallback (which can still upgrade to streamed parsing when needed). This reduces false negatives where providers complete buffered responses but streaming pipes are unstable.http/https and non-desktop fetch, and the remaining direct OpenAI-style provider entrypoints reuse that same shared fallback path.Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Huawei Cloud MaaS, Baidu Qianfan, and SiliconFlow in addition to the existing global and local providers.Relax input file restrictions toggle can expand selected source-preserving tasks beyond flat .md / .txt input. When enabled, Translate current file, Batch translate folder, Extract concepts (current/folder), Summarise as Mermaid diagram, Generate diagram, and Check duplicates in current file can also read broader text-like files and PDF text extracted through Obsidian's PDF runtime. Source-mutating, Markdown-structure-dependent, and verbatim-comparison workflows remain intentionally restricted.One-Click Extract and Batch generate from titles) use stronger text contrast for better readability across themes.One-Click Extract workflow is included out of the box.relativePath vs basename targets, and explicit subfolder-scope control.[[wiki-links]] to core concepts within your processed notes based on LLM output._processed.md when processing files for links.Generate from title, Batch generate from titles, Research & Summarize, and Generate diagram can optionally retrieve context from a local knowledge base built from configured vault-relative file/folder paths, with optional task-specific overrides and no cloud retrieval service or external daemon.Chunk word count setting before sending them to the LLM. The translated chunks are then seamlessly combined back into a single document.[foldername]_complete folder; a custom name can be configured. An occupied destination prevents the move, not the preceding generation. Generated and moved counts are reported separately.Experimental Diagram Pipeline:
metadata.notemd.omittedRelations.html-diagram) contains a zoomable SVG preview. Structured summary HTML (html-summary, formerly generic “HTML”) contains the specification's text, structure and evidence; it is not a second graphic format. “Editable HTML/SVG” remains an internal renderer name, not a promise of an in-browser diagram editor. Export the native source for native editing.<note>_<type> filenames, such as topic_drawnix.pdf and topic_flowchart.svg, with numeric suffixes on collision. Native sources use their own extension; structured summaries use .summary.html. Cache UUIDs are independent of delivery names; v1/v2 recovery records remain readable. Diagram intermediate files folder sets a shared Vault-relative location for .run.notemd-diagram.json recovery records, cached renders, staging files and .assets/ dependencies; leave it blank to use notemd_assert/ beside each source note. Changing this setting affects new batches only. Recovery records and attachments remain needed for retry and source visuals; they are not automatically purged. Save-artifact commands export immediately; preview commands use Export selected formats. Each type’s output formats share one generated specification. Partial failure or cancellation preserves successful files; preview/history and maintainer diagram.export.retry resume without another LLM request, including older subdirectory batches. Successful files are hash-checked and user edits are not overwritten. If no requested output is usable, the run attempts its effective renderer's default source and still reports unavailable requests.ref/diagram-design is development-only and its original screenshots are never bundled or shown.mindmap, flowchart, sequenceDiagram, classDiagram, erDiagram, and stateDiagram-v2.bar, line, area, and point charts, plus controlled scatter, pie, and table layout hints that map onto safe built-in Vega-Lite templates.dataChart plans, the planner now seeds preferred Vega-Lite chart templates (line, pie, scatter, table, or fallback bar) so omitted layoutHints.chartType values do not silently collapse to the wrong chart shape.mermaid.parse before the renderer returns them, so malformed diagrams fail early instead of quietly leaking into preview/export steps..canvas and .json artifacts are saved through the same output-path policy as Mermaid summaries, and preview surfaces now cover Mermaid, JSON Canvas, and Vega-Lite results..html summaries when a richer renderer is not available, and the preview modal can open them through the iframe fallback path instead of only showing escaped source text..svg, .png, and .pdf files beside the source note or beside the generated artifact. Raster export accepts any integer from 72 to 600 DPI (300 by default; 100/300/600 are common presets) and writes PNG density metadata.Architecture_preview_mermaid-2.svg) in source order and continue after an individual panel failure; each panel header also exposes SVG/PNG/PDF export for one diagram or image at a time..drawnix metadata by default, so generation does not create a separate .assets tree. The Also export complete Mermaid visuals setting opts in to Mermaid source, SVG, and manifest companions under .assets for handoff or external editing. Existing artifacts with .assets remain readable; if a legacy Mermaid companion is missing but its source text remains in metadata, preview rebuilds the visual. Resolved binary source visuals are embedded as data-backed SVG when possible, so the default path remains self-contained. Drawnix relation labels use node-aware orthogonal routing, measured wrapping, and a final label layer so long explanations are not hidden by node rectangles; native arrow text and SVG previews share the same wrapped lines. The title/summary header is a protected route region and is rendered last with an opaque guard band, so perimeter dashed routes cannot obscure it._summ.md, _diagram.canvas, _diagram.json, _diagram.drawio, _diagram.drawnix, _diagram.tex), so validation and handoff do not require rerunning the LLM step.intent: "circuit" plus circuitikz render target. They require a validated CircuitSpec, write deterministic .tex, and attach an SVG preview companion for Obsidian viewing and SVG/PNG/PDF export; the companion is not a LaTeX/TikZJax compile result.uiLocale: auto follows Obsidian), and preview/export theme defaults to the active Obsidian light/dark theme so Mermaid, JSON Canvas, Vega-Lite, and HTML fallback previews do not stay locked to the wrong palette after a theme switch.The following renderer table describes legacy single-artifact filenames and individual preview exports. Multi-format batches use the sibling-file naming above.
| Target | Generated artifact | Inline preview | Export SVG | Export PNG | Export PDF | Save raw source | Notes |
|---|---|---|---|---|---|---|---|
| Mermaid | _summ.md |
Yes | Yes | Yes | Yes | Yes | Mermaid auto-fix remains available for Mermaid-only flows. |
| JSON Canvas | _diagram.canvas |
Yes | Yes | Yes | Yes | Yes | Preview/export uses a theme-aware Canvas palette. |
| Vega-Lite | _diagram.json |
Yes | Yes | Yes | Yes | Yes | Preview/export uses a theme-aware Vega-Lite config patch. |
| Editable HTML/SVG | _diagram.html |
Yes | Yes | Yes | Yes | Yes | SVG is generated from the semantic figure model. |
| Draw.io | _diagram.drawio + companion SVG/MD |
SVG companion | Yes | Yes | Yes | Yes | No diagrams.net runtime is bundled. |
| Drawnix | _diagram.drawnix with inline Mermaid/source visuals by default; optional .assets companions when complete Mermaid export is enabled |
SVG companion | Yes | Yes | Yes | Yes | Self-contained previews, legacy .assets compatibility, node-aware labelled arrows, obstacle-aware cross-root routing, and no Drawnix or Plait runtime bundled. |
| Circuitikz | _diagram.tex + companion SVG/MD |
SVG companion | Yes | Yes | Yes | Yes | Requires intent: "circuit" and validated CircuitSpec; no runtime LaTeX compile. |
| HTML | _diagram.html |
Yes (iframe fallback) | No | No | No | Yes | Current pipeline does not promise raster/vector export for generic HTML fallback artifacts yet. |
Simple Formula Format Correction:
$ to standard double $$ blocks.Check for Duplicates in Current File: This command helps identify potential duplicate terms within the active file.
Duplicate Detection: Basic check for duplicate words within the currently processed file's content (results logged to console).
Check and Remove Duplicate Concept Notes: Identifies potential duplicate notes within the configured Concept Note Folder based on exact name matches, plurals, normalization, and single-word containment compared to notes outside the folder. The scope of the comparison (which notes outside the concept folder are checked) can be configured to the entire vault, specific included folders, or all folders excluding specific ones. Presents a detailed list with reasons and conflicting files, then prompts for confirmation before deleting identified duplicates according to the Vault’s deletion preference. Shows progress during deletion.
Batch Mermaid Fix: Applies Mermaid and LaTeX syntax corrections to all Markdown files within a user-selected folder.
mermaid_error_{foldername}.md report listing files that still contain potential Mermaid errors after processing.mermaid.parse before attempting fixes, saving processing time and avoiding unnecessary edits.| :--- |) from aggressive debug fixes.%) into the edge label (e.g., A -- Label --> B; % Comment becomes A -- "Label(Comment)" --> B;).A -- "Label -->" B becomes A -- "Label" --> B).X <-- Y arrows to Y --> X.direction keyword is lowercase inside subgraphs (e.g., Direction TB -> direction TB).// comments into edge labels (e.g., A --> B; // Comment -> A -- "Comment" --> B;).Node["Label"]["Label"] -> Node["Label"]).--|> to the standard -->./) and better support for custom note syntax (note for ...), ensuring artifacts like trailing brackets are cleanly removed.Node[Label [Text]] -> Node["Label [Text]"]), ensuring compatibility with complex diagrams like Stellar Evolution paths. Also corrects malformed edge labels (e.g., --["Label["--> to -- "Label" -->). Additionally converts inline comments (Consensus --> Adaptive; # Some advanced consensus to Consensus -- "Some advanced consensus" --> Adaptive) and fixes incomplete quotes at line ends (;" at the end replaced with "]).
- Note Conversion: Automatically converts note right/left of and standalone note : comments into standard Mermaid node definitions and connections (e.g., note right of A: text becomes NoteA["Note: text"] linked to A), preventing syntax errors and improving layout. Now supports both arrow links (-->) and solid links (---).
- Extended Note Support: Automatically converts note for Node "Content" and note of Node "Content" into standard linked note nodes (e.g. NoteNode[" Content"] linked to Node), ensuring compatibility with user-extended syntax.
- Enhanced Note Correction: Automatically renames notes with sequential numbering (e.g., Note1, Note2) to prevent aliasing issues when multiple notes are present. - Parallelogram/Shape Fix: Corrects malformed node shapes like [/["Label["/] to standard ["Label"], ensuring compatibility with generated content.
- Standardize Pipe Labels: Automatically fixes and standardizes edge labels containing pipes, ensuring they are properly quoted (e.g., -->|Text| becomes -->|"Text"| and -->|Math|^2| becomes -->|"Math|^2"|).>|"Label"| A --> B becomes A -->|"Label"| B).
- Merge Double Labels: Detects and merges complex double labels on a single edge (e.g., A -- Label1 -- Label2 --> B or A -- Label1 -- Label2 --- B) into a single, clean label with line breaks (A -- "Label1<br>Label2" --> B).
- Unquoted Label Fix: Automatically quotes node labels that contain potentially problematic characters (e.g., quotes, equals signs, math operators) but are missing outer quotes (e.g., Plot[Plot "A"] becomes Plot["Plot "A""]), preventing render errors.
- Intermediate Node Fix: Splits edges that contain an intermediate node definition into two separate edges (e.g., A -- B[...] --> C becomes A --> B[...] and B[...] --> C), ensuring valid Mermaid syntax.
- Concatenated Label Fix: Robustly fixes node definitions where the ID is concatenated with the label (e.g., SubdivideSubdivide... becomes Subdivide["Subdivide..."]), even when preceded by pipe labels or when the duplication isn't exact, by validating against known node IDs.
- Extract Specific Original Text: - Define a list of questions in settings.
- Extracts verbatim text segments from the active note that answer these questions.
- Merged Query Mode: Option to process all questions in a single API call for efficiency.
- Translation: Option to include translations of the extracted text in the output.
- Custom Output: Configurable save path and filename suffix for the extracted text file.- LLM Connection Test: Verify API settings for the active provider.README.md for packaged reference, but manual installation only requires main.js, styles.css, and manifest.json.<YourVault>/.obsidian/plugins/.notemd.main.js, styles.css, and manifest.json into the notemd folder.Notemd has a broad settings surface because providers, note workflows, diagrams, batch processing, slides, and developer diagnostics have different controls. The settings page now provides field-aware search, large category navigation, a collapsible discovery toolbar, and per-setting favorites. Click ★ Favorites to open a dedicated, navigable favorite-settings list; each entry can jump to its setting or be removed directly. Favorites are stored for the current Vault and remain available after restarting Obsidian.
Important newer settings include:
tectonic or pdflatex installation, or installs a pinned managed Tectonic runtime after explicit confirmation. SVG, PNG, and preview PDF export continue to work without LaTeX.Completed diagram previews are indexed at Vault scope and ordered by completion time, newest first. The preview keeps the diagram canvas primary: one Export menu provides SVG, PNG, and PDF, while History opens the searchable index in a right drawer without closing the preview. The same history view is available from the command palette (Notemd: Open diagram history) and sidebar even when no note is active. Search by title, note, diagram type, source format, or export format and browse results in pages of 20. History stores lightweight metadata and artifact paths rather than duplicating SVG, PNG, PDF, or source contents. Removing a history entry does not delete its generated files.
Notemd does not embed a complete TeX distribution in the plugin bundle. On desktop, open CircuitikZ native compile environment from diagram settings or the command palette to reuse a system tectonic/pdflatex compiler, choose a custom executable, or explicitly install/repair the pinned managed Tectonic runtime. The environment panel shows readiness, download progress, install path, bounded logs, and removal controls. Mobile and users who skip installation keep dependency-free preview plus SVG, PNG, and preview PDF export.
Before a title-generation batch starts, Notemd validates the selected folder once:
Access plugin settings via: Settings → Community Plugins → Notemd (Click the gear icon).
New API, OVMS, and the generic OpenAI Compatible preset when your endpoint accepts anonymous or placeholder access.gpt-4o, claude-3-5-sonnet-20240620, google/gemini-flash-1.5, grok-4, moonshotai/kimi-k2-instruct-0905, accounts/fireworks/models/kimi-k2p5, anthropic/claude-3-7-sonnet-latest). Ensure the model is available at your endpoint/provider.2024-02-15-preview).Temperature, Top-p, reasoning hints, DeepSeek thinking mode, and the provider-specific output-token override now live behind Show advanced settings. If a provider already has saved advanced overrides, this section auto-expands so existing behavior stays visible instead of being silently hidden./models presets across DeepSeek/OpenAI/Mistral, China-focused hosted endpoints such as Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Baidu Qianfan, and SiliconFlow, fast hosted inference presets such as Groq, Fireworks, Nebius, Cerebras, and Hugging Face, gateways such as OpenRouter, Requesty, LiteLLM, AIHubMix, GitHub Models, PPIO, and New API, local LMStudio servers, OVMS, and Together's dedicated /models response shape. It also covers Anthropic GET /models, xAI's dedicated /v1/language-models registry with bounded fallback to /v1/models, Huawei Cloud MaaS's dedicated v2/models registry endpoint, GitHub Models' bounded hosted catalog/models + /v1/models merge, PPIO's bounded chat + embedding + reranker registry merge, OVMS's preferred local /v3/models endpoint with bounded fallback to legacy /v1/config, a bounded Vercel AI Gateway merge of the official /v1/models catalog plus v3/ai/config, Ollama tags, and Google Gemini model listing. OpenRouter now uses a bounded merge of its chat and embedding catalogs instead of relying on a single endpoint, while Anthropic and Google discovery now also follow bounded multi-page registry traversal when the provider returns paginated model catalogs. The broader OpenAI-compatible discovery path now follows the same bounded traversal principle when registries expose next_url, links.next, nextPageToken, next_cursor, or similar continuation signals, so larger gateway catalogs do not silently truncate to the first page and later-page failures do not discard already-fetched valid rows. For providers that expose broader registries, the fetched list is intentionally filtered toward generation-ready models so embedding, reranker, speech, and classifier entries do not clutter the model picker, and the shared parser now also tolerates wider proxy-style payloads such as list/items, rows/records, value/values, object-shaped catalogs, nested data/result collections, hosted types classifiers, publisherModels-style registries, wrapped data.provider_models / result.data.publisherModels style containers, wrapped registry / registries / services catalogs, LiteLLM-style litellm_params + model_info metadata, endpoint-type metadata, transient display labels, max-output-token hints, richer capability/modality/status signals, richer identifier fields such as uid, identifier, modelId, and provider_model_id, and resource-style names such as models/<id> or publishers/<owner>/models/<id> that are normalized back to usable model IDs. Azure OpenAI still stays manual-first. The generic OpenAI Compatible entry now auto-upgrades to the matching bounded discovery family for known hosts such as OpenRouter, Requesty, Together, xAI, Huawei Cloud MaaS, Vercel AI Gateway, AIHubMix, GitHub Models, PPIO, local LiteLLM-style proxies, and OVMS-style local /v3 endpoints; otherwise it still falls back to the standard /models flow when your custom endpoint exposes it. Shared OpenAI-compatible URL normalization also now tolerates users pasting endpoint roots all the way down to /responses, /chat/completions, or /models, even when the pasted URL still includes query strings or hash fragments, without breaking fetch-model-list or runtime calls. When that generic preset points at a known official host such as OpenAI, DashScope/Qwen, Xiaomi MiMo, Fireworks, or Hugging Face, model-aware token guidance can also reuse the upstream provider's known output-token caps for bare model IDs instead of requiring provider-prefixed names. The fetched list is transient suggestions only; your saved Model string remains the source of truth.Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow, Groq, Together, Fireworks, LMStudio, and OpenAI Compatible probe chat/completions directly, while providers with a reliable /models endpoint can still use model listing first. If the first probe fails with a transient network disconnect such as ERR_CONNECTION_CLOSED, Notemd automatically falls back to the stable retry sequence instead of failing immediately.notemd-providers.json file within the plugin's configuration directory. This allows for easy backup and sharing.Qwen, Qwen Code, Doubao, Moonshot, Xiaomi MiMo, GLM, Z AI, MiniMax, Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow, xAI, Groq, Together, AIHubMix, GitHub Models, PPIO, New API, OVMS, Fireworks, LiteLLM, Nebius, Cerebras, Hugging Face, Vercel AI Gateway, Requesty, and a generic OpenAI Compatible target for custom proxies.auto mode follows Obsidian's current UI language.fr-CA uses French, es-419 uses Spanish, pt-PT uses Portuguese, zh-Hans uses Simplified Chinese, and zh-Hant-HK uses Traditional Chinese.requestUrl now retry the same attempt through an environment-aware fallback first. Desktop builds use Node http/https; non-desktop environments use browser fetch. Those fallback attempts now use protocol-aware streaming parsing across the built-in LLM paths, covering OpenAI-compatible SSE, Azure OpenAI SSE, Anthropic Messages SSE, Google Gemini SSE, and Ollama NDJSON output, so slow gateways can return body chunks earlier. The remaining direct OpenAI-style provider entrypoints reuse that same shared fallback path.direct streaming -> direct non-stream -> requestUrl (with streamed fallback when needed) before counting as a failed attempt. This prevents overly aggressive failures when only one transport mode is flaky.direct streaming, direct buffered, requestUrl-only) besides runtime modes.Notemd_Provider_Diagnostic_*.txt in vault root.Customize Processed File Save Path:
YourNote_processed.md) are saved in the same folder as the original note.Processed File Folder Path: (Visible only when the above is enabled) Enter a relative path within your vault (e.g., Processed Notes or Output/LLM) where processed files should be saved. Folders will be created if they don't exist. Do not use absolute paths (like C:...) or invalid characters.
Use Custom Output Filename for 'Add Links':
_processed.md suffix (e.g., YourNote_processed.md).Custom Suffix/Replacement String: (Visible only when the above is enabled) Enter the string to use for the output filename.
_linked), it will be appended to the original base name (e.g., YourNote_linked.md). Ensure the suffix doesn't contain invalid filename characters.Remove Code Fences on Add Links:
[[linked concepts]] is disabled.Concepts or Generated/Topics) where new concept notes should be saved. Folders will be created if they don't exist. Must be filled if customization is enabled. Do not use absolute paths or invalid characters.generate xx concepts md file
1. concepts1
2. concepts2
...
n. conceptsn
Logs/Notemd) where the log file should be saved. Must be filled if customization is enabled.Generate.log.ConceptCreation.log). Must be filled if customization is enabled.# Concept)..md and .txt files in a selected folder._Extracted suffix.mermaid_error_{foldername}.md report.contains, regex, or glob.relativePath or basename.Developer mode and then enable Advanced batch file selection to expose those controls. Otherwise batch folder tasks stay on the simpler legacy picker flow for regular users.Generate from title, Batch generate from titles, Research & Summarize, and Generate diagram run without local retrieval context.Generate from title, Batch generate from titles, Research & Summarize, and Generate diagram can each use their own file/folder path list. Leave an override blank to inherit the default path list.Translations) where translated files should be saved. Folders will be created if they don't exist._translated.md suffix (e.g., YourNote_translated.md)._es or _fr).Batch Mermaid Fix manually or add it to a custom workflow.[foldername]_complete folder, or Vault_complete for the vault root. An occupied destination blocks the move while the generated content remains saved.Generated Content, _complete). Invalid characters are not allowed. Defaults to _complete if left empty. This folder is created relative to the original folder's parent directory.One-Click Extract chains Process File (Add Links), Batch Generate from Titles, and Batch Mermaid Fix.This feature allows you to override the default instructions (prompts) sent to the LLM for specific tasks, giving you fine-grained control over the output.
Enable Custom Prompts for Specific Tasks:
Use Custom Prompt for [Task Name]: (Visible only when the above is enabled)
Custom Prompt Text Area: (Visible only when a task's custom prompt is enabled)
{TITLE}: The title of the current note.{RESEARCH_CONTEXT_SECTION}: The content gathered from web research.{USER_PROMPT}: The content of the note being processed./ as the separator (e.g., Reference Material/Papers or Daily Notes). These folders cannot be the same as or inside the Concept Note Folder.Tavily (requires API key, recommended) and DuckDuckGo (experimental, often blocked by the search engine for automated requests). Used for "Research & Summarize Topic" and optionally for "Generate from Title".basic (default) or advanced. Note: advanced provides better results but costs 2 API credits per search instead of 1.Process File (Add Links) -> Batch Generate from Titles -> Batch Mermaid Fix.This is the core functionality focused on identifying concepts and adding [[wiki-links]].
Important: This source-mutating workflow intentionally stays limited to .md or .txt files. Even if Relax input file restrictions is enabled in Developer settings, PDF and other expanded formats are still blocked here to keep add-links and source-diff semantics stable. If you need PDF input, convert it to Markdown first with a tool such as Mineru.
.md or .txt file.Ctrl+P or Cmd+P):Notemd: Process Current File.Notemd: Process Folder, then select the folder. Files are processed in the background without being opened in the editor.\boxed{ and trailing } lines if found in the final processed content before saving.Summarise as Mermaid diagram:
Notemd: Summarise as Mermaid diagram (via command palette or sidebar button).Translate Note/Selection:
Notemd: Translate Note/Selection (via command palette or sidebar button).Batch Translate:
Notemd: Batch Translate Folder from the command palette and select a folder, or right-click a folder in the file explorer and choose "Batch translate this folder".Notemd: Research and Summarize Topic (via command palette or sidebar button).Generate Content from Title:
Notemd: Generate Content from Title (via command palette or sidebar button).Batch Generate Content from Titles:
Notemd: Batch Generate Content from Titles (via command palette or sidebar button)..md file in the folder (excluding _processed.md files and files in the designated "complete" folder), generating content based on the note's title and replacing existing content. Files are processed in the background without being opened in the editor.[foldername]_complete folder, or Vault_complete for the vault root.Check and Remove Duplicate Concept Notes:
Notemd: Check and Remove Duplicate Concept Notes (via command palette or sidebar button).Extract Concepts (Pure Mode):
Notemd: Extract concepts (create concept notes only) from the command palette or click the "Extract concepts (current file)" button in the sidebar.Notemd: Batch extract concepts from folder from the command palette or click the "Extract concepts (folder)" button in the sidebar, then select a folder to process all its notes.Create Wiki-Link & Generate Note from Selection:
Notemd: Create Wiki-Link & Generate Note from Selection (it is recommended to assign a hotkey to this, like Cmd+Shift+W).[[wiki-link]].Extract Concepts and Generate Titles:
Notemd: Extract Concepts and Generate Titles from the command palette (it is recommended to assign a hotkey to this).Extract Specific Original Text:
Batch Mermaid Fix:
mermaid_error_{foldername}.md file.| Provider | Type | API Key Required | Notes |
|---|---|---|---|
| DeepSeek | Cloud | Yes | Native DeepSeek endpoint with reasoning-model handling |
| Qwen | Cloud | Yes | DashScope compatible-mode preset for Qwen / QwQ models |
| Qwen Code | Cloud | Yes | DashScope coding-focused preset for Qwen coder models |
| Doubao | Cloud | Yes | Volcengine Ark preset; usually set the model field to your endpoint ID |
| Moonshot | Cloud | Yes | Official Kimi / Moonshot endpoint |
| Xiaomi MiMo | Cloud | Yes | Xiaomi MiMo OpenAI-compatible endpoint for chat, coding, and multimodal models |
| GLM | Cloud | Yes | Official Zhipu BigModel OpenAI-compatible endpoint |
| Z AI | Cloud | Yes | International GLM/Zhipu OpenAI-compatible endpoint; complements GLM |
| MiniMax | Cloud | Yes | Official MiniMax chat-completions endpoint |
| Huawei Cloud MaaS | Cloud | Yes | Huawei ModelArts MaaS OpenAI-compatible endpoint for hosted models |
| Baidu Qianfan | Cloud | Yes | Official Qianfan OpenAI-compatible endpoint for ERNIE models |
| SiliconFlow | Cloud | Yes | Official SiliconFlow OpenAI-compatible endpoint for hosted OSS models |
| OpenAI | Cloud | Yes | Supports GPT and o-series models |
| Anthropic | Cloud | Yes | Supports Claude models |
| Cloud | Yes | Supports Gemini models | |
| Mistral | Cloud | Yes | Supports Mistral and Codestral families |
| Azure OpenAI | Cloud | Yes | Requires Endpoint, API Key, deployment name, and API Version |
| OpenRouter | Gateway | Yes | Access many providers through OpenRouter model IDs |
| xAI | Cloud | Yes | Native Grok endpoint |
| Groq | Cloud | Yes | Fast OpenAI-compatible inference for hosted OSS models |
| Together | Cloud | Yes | OpenAI-compatible endpoint for hosted OSS models |
| AIHubMix | Gateway | Yes | Hosted multi-provider gateway preset with dedicated registry lookup |
| GitHub Models | Gateway | Yes | Hosted catalog-backed gateway preset |
| PPIO | Gateway | Yes | Multi-provider gateway with bounded chat/embedding/reranker discovery |
| OVMS | Local | Optional | OpenVINO Model Server preset with bounded local model discovery |
| Fireworks | Cloud | Yes | OpenAI-compatible inference endpoint |
| LiteLLM | Gateway | Optional | Self-hosted OpenAI-compatible proxy preset; default local endpoint is http://localhost:4000/v1 |
| New API | Gateway | Optional | Self-hosted OpenAI-compatible gateway preset |
| Nebius | Cloud | Yes | Nebius AI Studio OpenAI-compatible endpoint |
| Cerebras | Cloud | Yes | Cerebras Cloud OpenAI-compatible endpoint for fast hosted inference |
| Hugging Face | Gateway | Yes | Hugging Face hosted inference router preset |
| Vercel AI Gateway | Gateway | Yes | Vercel multi-provider gateway preset with dedicated model discovery |
| Requesty | Gateway | Yes | Multi-provider router behind one API key |
| OpenAI Compatible | Gateway | Optional | Generic preset for LiteLLM, vLLM, Perplexity, Vercel AI Gateway, etc. |
| LMStudio | Local | Optional (EMPTY) |
Runs models locally via LM Studio server |
| Ollama | Local | No | Runs models locally via Ollama server |
Note: For local providers (LMStudio, Ollama), ensure the respective server application is running and accessible at the configured Base URL.
Note: For OpenRouter and Requesty, use the provider-prefixed/full model identifier shown by the gateway (for example google/gemini-flash-1.5 or anthropic/claude-3-7-sonnet-latest).
Note: Doubao usually expects an Ark endpoint/deployment ID in the model field rather than a raw model family name. The settings screen now warns when the placeholder value is still present and blocks connection tests until you replace it with a real endpoint ID.
Note: Z AI targets the international api.z.ai line, while GLM keeps the mainland China BigModel endpoint. Choose the preset that matches your account region.
Note: China-focused presets use chat-first connection checks so the test validates the actual configured model/deployment, not only API-key reachability.
Note: Vercel AI Gateway now uses a bounded dual-source discovery path that merges the official /v1/models catalog with v3/ai/config, instead of pretending it is just another generic OpenAI-compatible /models endpoint.
Note: Azure OpenAI still stays manual-first because deployment-mode endpoints need deployment names rather than a generic model list. OpenRouter now uses a bounded merge of its chat and embedding catalogs, Hugging Face now shares the bounded OpenAI-compatible /models discovery path, LiteLLM uses a bounded /models + /model/info merge, Huawei Cloud MaaS uses its dedicated v2/models registry endpoint, AIHubMix uses its hosted /api/v1/models registry, GitHub Models uses a bounded catalog/models + /v1/models merge, PPIO uses a bounded chat + embedding + reranker registry merge, OVMS prefers the current local /v3/models surface and only falls back to legacy /v1/config when needed, New API reuses the shared bounded OpenAI-compatible /models flow, and the generic OpenAI Compatible preset now auto-resolves known hosts such as OpenRouter / Requesty / Together / Huawei Cloud MaaS / Vercel AI Gateway / AIHubMix / GitHub Models / PPIO / local LiteLLM-style proxies / OVMS-style local /v3 endpoints into the matching bounded discovery family before falling back to a plain /models request. The same shared normalization also tolerates users pasting /responses, /chat/completions, or /models endpoint forms directly. Known-host inference can still reuse official provider token-cap metadata for bare model IDs on trusted hosts such as OpenAI, DashScope/Qwen, Xiaomi MiMo, Fireworks, and Hugging Face.
Note: OpenAI Compatible is intended for custom gateways and proxies. Set the Base URL, API key policy, and model ID according to your provider's documentation.
Notemd runs locally inside Obsidian, but some features send outbound requests.
Notemd_Provider_Diagnostic_*.txt and Notemd_Error_Log_*.txt).data.json. Local-only providers use Obsidian’s local storage for the current Vault; importing the old device-wide list requires an explicit action.manifest.json, main.js, styles.css are in the correct folder (<Vault>/.obsidian/plugins/notemd/) and restart Obsidian. Check the Developer Console (Ctrl+Shift+I or Cmd+Option+I) for errors on startup..md, or .md/.txt). Developer mode with relaxed input formats allows additional text formats and PDF for selected source-preserving tasks, including translation and concept extraction. Add Links remains restricted to .md/.txt.http://localhost:1234/v1 for LMStudio).error_processing_filename.log file in your vault root for detailed error messages for each failed file. The Developer Console or error modal might show a summary or general batch error.Notemd_Error_Log_[Timestamp].txt in your vault's root directory. This file contains the error message, stack trace, and session logs. If you encounter persistent issues, please check this file. Enabling "API Error Debugging Mode" in settings will populate this log with even more detailed API response data.Notemd_Provider_Diagnostic_*.txt in vault root.npm run diagnose:llm -- \
--transport openai-compatible \
--provider-name OpenRouter \
--base-url https://openrouter.ai/api/v1 \
--api-key "$OPENROUTER_API_KEY" \
--model anthropic/claude-3.7-sonnet \
--prompt-file ./tmp/prompt.txt \
--content-file ./tmp/content.txt \
--mode compare \
--timeout-ms 360000 \
--output ./tmp/openrouter-diagnostic.txt
The generated report contains per-attempt timing (First Byte, Duration), sanitized request metadata, response headers, raw/partial body fragments, parsed stream fragments, and transport-layer failure points.
OLLAMA_ORIGINS environment variable. You can do this by running set OLLAMA_ORIGINS=* in your command prompt before starting Ollama. This allows requests from any origin.Processed, Notes/Concepts) and not absolute paths (e.g., C:\Users\..., /Users/...).* " \ / < > : | ? # ^ [ ]. Note that \ is invalid even on Windows for Obsidian paths. Use / as the path separator..svg / .png export. HTML artifacts support iframe fallback preview and raw-source save only.system. If you switch Obsidian theme while the preview modal is already open, close and reopen the modal before exporting so the new theme is baked into the snapshot._preview.svg and _preview.png files are snapshots. Re-export after editing the source artifact or changing theme if the saved preview is stale..md, .canvas, .json, or .html content manually.Notemd is independently maintained. We thank the open-source projects and communities that informed documented design decisions or provide integration foundations. Listing a project recognizes influence or interoperability only; it does not imply endorsement, affiliation, bundled code, or a claim of code reuse.
Contributions are welcome! Please refer to the GitHub repository for guidelines: https://github.com/Jacobinwwey/obsidian-NotEMD
npm run cli:helpnpm run cli:invoke -- --vault docs --operation content.split-note-by-chapters --input-json '{"sourcePath":"index.zh-CN.md","splitHeadingLevel":"h2"}' --prettynpm run verify:vault-bundle -- --vault <vault-path> (fails closed on missing files, hash drift, or manifest version drift)--vault docs, JSON path inputs stay vault-relative: use index.zh-CN.md and maintainer, not docs/index.zh-CN.md or docs/maintainer.MIT License - See LICENSE file for details.
Notemd v1.9.15 - Enhance your Obsidian knowledge graph with AI.
Quarterly chronicle rendered in the original repo-saga visual style. The slicing is now produced directly by repo-saga itself with quarter granularity.
Last refreshed for release tag 1.9.15 on 2026-11-03. Latest commit date: 2026-11-03.