Arkk11 downloadsHighlight text and edit inline comments with configurable types, stored directly in Markdown for people and agents.
Highlight text, attach multiple comments, and edit them directly in Obsidian. Annotations live in your Markdown files, so people and AI agents can read them without a database or service.
Requires Obsidian 1.8.7+ and Node.js 22+ for building. The plugin is not yet listed in the community plugin directory.
git clone https://github.com/ArkkWang/obsidian-inline-notes.git
cd obsidian-inline-notes
npm ci
npm run check
Create <vault>/.obsidian/plugins/inline-notes/, copy only main.js, manifest.json and styles.css into it, and enable Inline Notes under Community plugins. The build writes only inside this repository; it does not modify a vault or reload Obsidian.
data.json.data.json into the new plugin folder before enabling Inline Notes to retain custom types and author settings.Existing Markdown annotations and their IDs remain readable; no note migration is required. The plugin ID changes from agent-annotations to inline-notes, so command hotkeys must be reassigned. Existing custom labels and comment text are never translated when the UI language changes. Fresh defaults use the language active when the plugin loads; reload the plugin after changing Obsidian's language.
Configure types in Settings → Inline Notes. TAGs must be unique and match ^[A-Z][A-Z0-9_]*$. Changing or deleting a type does not migrate or erase annotations already stored in notes. Unknown TAGs still display with a fallback badge.
{==Text to review==}{>>an-example|you|2026-01-01|VERIFY: Verify only the cost estimate<<}{>>an-second|you|2026-01-01|NOTE: Add the source<<}
Each comment has an ID, author, local creation date, TAG and body. Multiple comments follow the same highlighted text; highlights are not nested. Body braces, ampersands and line breaks are escaped as entities. core.js exports scan(text) for structured parsing. Code examples are excluded by the parser's fenced/inline-code detection.
npm ci
npm test
npm run build
main.js is generated and not committed. Host-provided obsidian and @codemirror/* modules remain external. CI runs tests/builds on Linux and Windows and uploads the three installable files as an artifact.
For translation and contribution notes, see CONTRIBUTING.md.
No open-source license has been selected yet; the package is marked UNLICENSED. Public repository visibility is not a grant of an open-source license.