Andrew Brož139 downloadsSuggest edits, add comments, and annotate your notes using CriticMarkup syntax.
Inkling is a CriticMarkup editor for Obsidian. It is designed both for collaborative editing (with tools like Relay) and for reviewing your notes, providing a suggestion mode for tracking changes, comments anchored to text selections, and a comment-only mode for reviewers.
This is a fork of Commentator. Commentator was built by @Fevol upon the excellent work and advice of @kometenstaub (original plugin and parser). All credit for the plugin's foundation belongs to them.
AndrewBroz/obsidian-inklinginkling)From 0.12.0 the plugin id is inkling-markup. The old id inkling now belongs to an unrelated
plugin in the community store, so Obsidian offers that plugin's releases as an "update" to old installs.
Do not click Update on an Inkling 0.11.x install (or "Update all"): it replaces Inkling with a
different plugin.
AndrewBroz/obsidian-inkling); this installs inkling-markup
alongside the old copy[!WARNING] This fork is in beta. It carries an extensive automated regression suite (1,100+ tests, including round-trip safety tests for accept/reject), but has not yet finished manual validation in live vaults. Use it in a test vault or a synced/backed-up vault first.
Data-safety fixes:
Collaboration features:
{==highlight==}{>>comment<<} thread.suggest/comment/off for everyone except listed authors (see Frontmatter)Maintenance: Modernized toolchain (ESLint 10 with Svelte linting, dprint, vendored dependencies), repaired release CI, and a large regression-test suite.
The editor toggle (status bar / note header) cycles through three modes:
| Mode | Behaviour |
|---|---|
| Editing | Ordinary editing, with edits guarded so they cannot corrupt the CriticMarkup syntax (the default) |
| Suggesting | Edits are converted into suggestion ranges instead of changing the text directly |
| Commenting | Document edits are blocked (with feedback); comments and replies still work |
Upstream Commentator also had a "Regular" mode that installed no protection at all, so ordinary typing
could corrupt a note's markup (backspacing {++ into {+, deleting half of a range). It has been
removed. Its one interesting property, seeing the raw brackets and metadata of the range under the cursor, is
now the Reveal CriticMarkup syntax under the cursor setting (Editor settings), which works in every mode.
Enforce an editing mode for a note via frontmatter that overrides the per-editor toggle:
---
inkling: suggest # or: comment, off
inkling-authors: [Alice] # optional: these authors are exempt from enforcement
---
off enforces plain Editing mode (nothing beyond the usual syntax protection): use it to override a
reader's own default of suggesting or commenting.
The legacy commentator: / commentator-authors: keys still work (checked when no inkling key is present),
so existing notes from before the rename don't need to be updated.
[!NOTE] This is not hard technical enforcement. Inkling is only appropriate for high-trust teams.
To set up a development environment:
bun package manager from https://bun.sh/git clone https://github.com/AndrewBroz/obsidian-inkling.git)bun install in the root of the repositorybun run build:dev to build the pluginbun run build:dev:hr (requires the Obsidian CLI)Other commands: bun run test (jest suite), bun run lint (ESLint), bun run format (dprint).
Releases: bun run release-minor (or -patch/-major) bumps versions, commits, and tags; pushing the tag
builds the GitHub release via CI (fallback: gh workflow run releases.yml --ref <tag>).
This project inherited a roadmap from Commentator and introduced its own priorities. No timeline is given. Items may be dropped for any reason.
Insertion/Deletion/...Accept/Reject commands in editorComment markup to support comment threadsHighlight markupOther plugins can turn CriticMarkup into the note's original text: suggestions shown as rejected, comments removed, highlights unwrapped.
const api = app.plugins.getPlugin("inkling-markup")?.api;
if (api && api.version >= 1) {
const original = api.toOriginalText(markdown);
}
version changes only on a breaking change. Transclusions of notes containing CriticMarkup are displayed using this original text.