What's new in v6

Inkdrop v6 is the biggest release since the app was born.
Nearly every layer has been rebuilt — the editor, the Markdown renderer, the theming system, the storage engine, the plugin toolchain, and the build pipeline — while keeping the app small, fast, and focused on writing.
It also completes the roadmap vol.6 in full.

Here’s everything that’s new.

New Editor

The whole editor has been rebuilt on CodeMirror 6. That single change unlocked most of the features below — and it finally retires the Atom-era foundation Inkdrop had been carrying since v1.

Floating toolbar

In v5 the toolbar was pinned above the editor, taking up space even when you weren’t using it. Now it floats in only when you select text.

Slash commands

On an empty line, press / to insert blockquotes, headings, alerts, and more without touching the mouse.

Autocompletion everywhere

Type ``` and the editor suggests a language for your code block:

Inside a code block, autocompletion switches to the language you picked:

And typing : plus two characters brings up GitHub-style emoji candidates:

GitHub Alerts syntax

Alerts are highlighted with the proper colors and left border — nested alerts and quotes included — with autocompletion for the alert type.

Note links with [[

Press [[ to search your notes and insert an internal link. The candidate list previews the note beside it, with full syntax highlighting.

The note you want doesn’t exist yet? Start typing a title, choose Create new note, and it’s created, linked, and opened in one step.

Reading highlights

Select text and hit the highlight button to wrap it in a <mark> tag — perfect for emphasizing what resonates in your reading notes. It pairs nicely with the Web Clipper’s Kindle highlight import.

The smoothest link pasting

Pasting a URL used to pop a dialog that stole focus from the editor. Now the link formats appear inline in the autocompletion menu, and the page title is fetched in the background — so you never wait, and you never leave the editor.

Auto link title demo

Resize images right in the editor

Inkdrop now understands Marp-style image size specifiers:

![width:200px](image.png)
![w:320 h:240](image.png)
![width:50%](image.png)

You don’t have to memorize the syntax — put your cursor on an image and a resize toolbar pops up with Auto / Small / Half / Full presets.

Docs: Resize images

A refurbished editor header

Navigation back/forward, view mode buttons, and a distraction-free toggle are now right in the header, so new users can find the basics without reading the manual.

Navigation buttons

The old right-side drawer has been replaced by a native action menu that drops down from the more button — or press Cmd/Ctrl+J — with proper keyboard navigation and type-ahead.

Copy button for code blocks

The button appears when your cursor enters a code block.

Native spellcheck

The editor now uses the OS-native spellchecker. Toggle it via Preferences → Editing → Markdown → Spellcheck.

Link tooltips

When the cursor lands on a URL, a tooltip offers to open it in your browser — internal note links included.

Little things that add up

  • ToDo items get a strikethrough when checked
  • editor:move-line-up / editor:move-line-down (Alt+↑ / Alt+↓)
  • View menu toggles for line numbers, line wrapping, and readable line length
  • Multiple cursors and rectangular selection

New Markdown Renderer

The Markdown preview got just as much attention as the editor.

Find in preview

A long-awaited one. It highlights matches across DOM elements, so complex queries like e if a and ct(ar work — which is what makes finding text inside code blocks actually possible.

Advanced code blocks

Code blocks now render with language icons, line numbers, and meta info — plus a copy button on hover.

Fenced blocks tagged markdown are highlighted with the full GitHub Flavored Markdown grammar — headings, emphasis, links, task lists, nested fenced code blocks, and YAML frontmatter inside them. Writing plugin READMEs and tutorials inside Inkdrop finally feels right.

Embed GitHub code snippets by pasting a link

Select a line range on GitHub, copy the URL, paste it into your note — Inkdrop fetches the code and inserts it as a syntax-highlighted snippet with line numbers and a link back to the source.

The meta syntax is inspired by MDX and is fully backward-compatible — other Markdown engines just see a plain code block.

Connect your GitHub account via OAuth in Preferences → Integrations and it works with private repos too, including rich link titles for repos, issues, PRs, and commits.

Mermaid, seriously upgraded

Hover a diagram and a toolbar appears: zoom in / reset / zoom out. Drag to pan, Ctrl/Cmd + wheel to zoom, and expand into a full-screen viewer (Esc to close). None of it shows up in print or PDF exports.

Diagrams are also themed entirely through CSS variables now, so they match your active theme in both light and dark mode — no more diagrams that look out of place.

Docs: Diagram colors (theme development guide)

Image viewer

Double-click an image to open it in a viewer and look at it up close.

Built-in AI features

AI in Inkdrop is opt-in and bring-your-own-API-key. Nothing leaves your machine unless you configure a provider yourself, and your keys are stored in your system credential storage.

Watch the AI integrations video

Inline AI assistant

Select a passage, open the inline prompt, and the result is applied in place. Built-in presets get you started:

  • Proofread your writing
  • Summarize a passage
  • Create a Mermaid diagram from a description
  • Convert to a Markdown table
  • …plus your own custom prompts

Docs: Set up AI integrations · Docs: Inline AI assistant

Next Edit Suggestions

Like GitHub Copilot, but for your notes — it predicts your next edit, which is genuinely useful when writing repetitive or structured content. It also feeds your linked notes and backlinks into the prompt as read-only context, so suggestions draw on terminology from related notes.

Three modes are available. It’s set to Manual by default — for a note-taking app, automatic suggestions felt distracting.

  • Automatic — suggests as you type
  • Manual — trigger with Alt+\ (default)
  • Disabled

Press Tab to accept, Esc to dismiss.

Docs: Next Edit Suggestions

Connect your notes to AI agents in a few clicks

Inkdrop’s MCP server lets agents like Claude Code and Codex read and write your notes. Setting it up used to mean enabling the local HTTP server, inventing credentials, and hand-writing a JSON config. Preferences → Integrations → MCP Server now does all of that for you.

Flip the switch, expand Set Up Your AI Agent, and copy the ready-to-paste setup — a one-liner for Claude Code, one for Codex, and a JSON snippet for everything else, with your port and credentials already filled in:

claude mcp add inkdrop --scope user \
  --env INKDROP_LOCAL_SERVER_URL=http://localhost:19840 \
  --env INKDROP_LOCAL_USERNAME=inkdrop \
  --env INKDROP_LOCAL_PASSWORD=**** \
  -- npx -y @inkdropapp/mcp-server

Docs: Integrate AI agents with the MCP Server

Copy a note, notebook, or tag ID

Pointing an agent at the right note is much easier when you can just hand it an ID. Copy Note ID, Copy Notebook ID, and Copy Tag ID now live in the context menus — on note list items and the editor’s action menu, and on the sidebar’s notebook and tag items. Select several notes and it copies every ID, one per line.

These used to require the Dev Tools plugin; they’re part of the core app now, so the IDs an MCP tool call expects are always a right-click away:

Summarize note:aBcD1234 and save the result to book:xYz98765 with tag:qWeR5555.

Templates your coding agent can fill out

Note templates (see below) can carry instructions and examples aimed at an AI agent — a blockquote whose heading starts with !, like > # !Instructions. Agents read them; they’re stripped automatically from the notes you create.

Two open-source companions make this click:

  • Inkdrop MCP server — the hands. Reading a note created from a template pulls in that template’s instructions in the same call.
  • Inkdrop Skills — the know-how. Its /fill-out-template skill fills in the scaffold, then stops for your review before writing any code.
npx skills@latest add inkdropapp/skills

New Theming System

Theming in v5 was painful: a theme had to ship a complete set of Semantic UI component styles, and it came in three separate packages — UI, syntax, and preview — a design inherited from Atom.

v6 replaces all of that.

Themes are now a thin layer of CSS variables

The app defines semantic CSS variables; a theme overrides the ones it cares about. No more reimplementing base styles just to change a color.

Docs: Creating a theme

One theme package instead of three

A single package now styles the whole app — UI, editor, and Markdown preview — and the Themes pane shows one picker instead of three. Your existing setting is migrated automatically.

[!WARNING]
Old-style theme packages ("theme": "ui" | "syntax" | "preview") are no longer recognized. A unified theme declares "theme": true and ships ui.css / syntax.css / preview.css, each wrapped in its own @layer. See the theme development guide and update @inkdropapp/ipm-cli and @inkdropapp/theme-dev-helpers.

Live theme previews

The Themes preferences show preview cards for every theme. These aren’t images — they’re live-rendered from each theme’s color palette. A theme’s palette.json is uploaded to the plugin registry when you publish, so previews work before you install.

New official themes

Kanagawa — inspired by Katsushika Hokusai’s paintings, based on rebelot/kanagawa.nvim. Three variants: Wave (heart-warming), Dragon (for late-night sessions), and Lotus (for when you’re out in the open).

SolarizedLight / Dark

NordDark / Light

Default syntax theme overhaul

The default syntax theme now uses Tailwind’s color scheme, and the light and dark variants have been merged into one package built on the modern light-dark() CSS function.

UI & UX

Telescope — a Spotlight for your notes

The long-awaited command palette became something more versatile: a search bar that queries multiple sources at once. Press Cmd/Ctrl+K to open it. It’s fuzzy-matching, so spelling isn’t critical.

Each source has a scope prefix — press it followed by Space to narrow down, Esc to clear.

Commands (>) — nearly every operation in Inkdrop is a command, with its shortcut shown on the right.

Notebooks (b) — open, open as Workspace, or move the current note there, with a modifier key.

Tags (t)

Table of contents (#) — jump between sections of the note you’re writing. It lists task items too. This source lives outside the core app as the telescope-toc plugin.

Telescope is extensible by design — plugins can add their own sources.

Docs: List of commands

Outline view

Click the # button in the editor header (or run core:telescope-toc) to jump between sections. It highlights the current section from your cursor position in the editor, or your scroll position in the preview.

It ships as a separate plugin, telescope-toc, which is installed automatically. Being a plugin, it also doubles as a reference implementation for custom Telescope sources — the source is on GitHub, written in TypeScript against @inkdropapp/types.

Start from a template :memo:

Cmd/Ctrl+N creates a plain blank note. When you want a starting point, the editor placeholder offers a Choose a template button (Cmd/Ctrl+T):

Search templates by name and preview one on the right before you commit:

Inkdrop ships with curated official templates grouped by category — Debugging, Planning, Brainstorming, Learning, Productivity — and your most-used ones float to the top under Recently used.

Custom templates live in a dedicated Templates section in the sidebar and support a small, safe templating syntax (powered by LiquidJS — no arbitrary code ever runs, even from a synced or shared template):

---
_template:
  title: "{{ 'now' | date: '%Y-%m-%d' }} - Daily Report"
  description: What I did today, what I plan to do tomorrow, and any blockers.
  tags:
    - Journal
  notebook: "Daily notes"
  status: active
---

## What I worked on
...

A template can preset the new note’s title, description, tags, destination notebook, and status. Start editing an official template and Inkdrop forks it into your own editable copy, leaving the original untouched.

Docs: Note templates

Notebook icons

Right-click a notebook → Change Notebook Icon… to pick from 1,500+ icons from the Lucide set, with category tabs and search. Icons show up everywhere — the sidebar, Telescope, and notebook selectors.

Manual notebook ordering

Drag and drop notebooks in the sidebar into whatever order makes sense to you. It syncs across your devices.

Manual notebook ordering

Quicker navigation

Filter buttons in the Notebooks and Tags sections of the sidebar launch Telescope scoped to that source:

The sort-order button moved beneath the search bar and shows the current order as a label — no more clicking just to find out. Its old spot now holds a sidebar toggle (Cmd/Ctrl+\).

The notebook picker gained a search bar:

And context menus landed on the workspace header and the note list header:

Fuzzy matching everywhere

Telescope, the notebook and tag list menus, and the tag input all share the same fuzzy-matching algorithm — so you find things fast without spelling them right.

Activity stats

See how many notes you created and tasks you worked on over the past 52 weeks, plus your current and longest streaks. Note-taking is a contribution to your work, after all.

No more [conflicted] notes :handshake:

If a note changed on another device while you were editing it, saving used to spin off a [conflicted] backup for you to reconcile by hand. Now Inkdrop merges the two versions — a 3-way merge for the body, and title, notebook, status, and tags merge without losing either side. The backup only appears for genuinely overlapping edits to the same lines, and the same smarter merge runs during sync.

Keep running in the system tray (Windows & Linux)

Handy if you use the local HTTP API, and it makes reopening the app instant. Turn it on via Preferences → General → App Behavior. Off by default; on macOS nothing changes, since the app already stays in the Dock.

A Dark Mode-aware app icon on macOS

The macOS icon ships as an Icon Composer asset instead of a flat image, so the Dock, Finder, and Launchpad render its Dark Mode, tinted, and clear variants instead of the same light artwork everywhere.

A smoother Markdown import

Import from Markdown is now a single wizard: pick your files first, then Scan → Stats → choose a notebook → Import. Embedded base64 images (data: URIs) are extracted and saved as real attachments instead of being dropped.

Polish throughout

  • A custom tooltip UI — the system tooltip was unstable, so it was rebuilt from scratch.
  • “Look Up Selection” context menu on macOS.
  • Friendlier blank slates — empty notebooks, tags, and status filters explain what belongs there.
  • The Pinned section retired — pinned notes simply sort to the top of All Notes. One less mode to think about.
  • An account usage stats tab in Preferences.
  • Diff view for revision history on desktop, matching the mobile app.

Performance improvements

13x faster database access

Inkdrop relied on Electron’s remote module to reach the main process — a known-harmful approach that’s both slow and a security risk. It’s been replaced with type-safe IPC bridges in a massive architectural overhaul.

// v5: @electron/remote     → 18,761 ms
// v6: type-safe IPC bridge →  1,326 ms

The bridges also let Inkdrop control exactly which methods are exposed to plugins, so the app is more secure as well.

23x faster code block rendering

Notes with very long code blocks used to stutter or lock up while being syntax-highlighted. The most visible case was the [[ note-link autocomplete, which could freeze the app for 10–20 seconds when a huge note landed in the candidate list. Highlighting is now ~23x faster (29.0s → 1.3s on a 531KB sample), and the preview beside the candidates shows a snippet rather than the entire note.

Faster image sync

Attachments used to upload one by one. They’re now uploaded in parallel via signed URLs, so syncing image-heavy notes is significantly faster.

SQLite as the backing store — and ARM64 support

PouchDB’s LevelDB backing store had been deprecated for years, and it was the thing blocking new platforms. A new SQLite storage adapter replaced it (passing PouchDB’s integration tests), which unblocked:

  • ARM64 builds for Windows and Linux
  • Flatpak and AppImage packages for modern Linux distros

Plugin ecosystem & developer experience

A brand-new ipm CLI

The old ipm was a fork of Atom’s apm that bundled all of Node.js and npm, and required you to commit compiled files to GitHub to publish. It’s been rebuilt as a lightweight standalone CLI: @inkdropapp/ipm-cli.

npm install -g @inkdropapp/ipm-cli
ipm configure
ipm publish

It publishes tarballs directly like npm — no more committing build output.

ipm init scaffolds a plugin in seconds

ipm init my-plugin        # a TypeScript plugin
ipm init my-theme --type theme

Run it with no arguments for an interactive wizard. Plugins come ready to build with TypeScript, tsdown, and @inkdropapp/types all wired up — npm install && npm run build, then ipm link to try it out.

Guide: Plugin — Word count · Guide: Creating a theme

Official TypeScript definitions

@inkdropapp/types gives plugin authors full type safety without exposing the app’s internals.

Auto-installed essential plugins

mermaid, math, and markdown-emoji are installed and kept up to date automatically — shipping them as plugins means faster updates. Disable them anytime in Preferences.

Vim plugin improvements

  • Relative line numbers — easier to use motions like 5j or 12k
  • Keep Vim registers separate from the system clipboard
  • Keymaps for selecting autocompletion candidates

Shared file-name sanitization

NoteExportHelper.sanitizeFileName is now the single implementation used by the app and both exporter plugins, exposed to third-party plugins through @inkdropapp/types. It handles illegal characters and the filesystem’s 255-byte limit including the extension. If your plugin writes files derived from note titles, use it instead of rolling your own.

Updated docs

Appendix

Guides

Components

Core Modules

[!TIP]
Every docs page has a Copy as Markdown button. Hand it to your AI agent and have it migrate your plugin or theme for you.

Built by the community

The new APIs have already produced some amazing plugins:

Existing plugins are getting v6 support too — hitahint, thumbnail-list, and editor-utils.

Thank you so much for building with Inkdrop :star_struck:


Coming from v5?

Docs: Migrate from v5 to v6

v6 carries a lot of breaking changes under the hood, so it works hard to keep your old customizations from tripping things up on first launch:

  • An incompatible init.js is detected and safely disabled (renamed to init.js.bak) before it can run, with a notification linking to the migration guide.
  • styles.less is no longer loaded (v6 uses plain-CSS user stylesheets); Preferences → Themes points you to migrate it.
  • Old-style theme packages fall back to the default theme — ask their authors to republish as unified themes.
  • Alert tips in the sidebar surface any stale files, so nothing breaks silently.

Download

4 Likes