AIditor

by Mario Miletta
5
4
3
2
1
Score: 50/100

Description

The AIditor plugin attaches margin annotations to individual blocks without rewriting their prose. Block references anchor comments inside notes, while annotation data stays in a central JSON file in the vault. Comments survive edits, sync and reopening. Resolving an annotation archives it rather than deleting it and resolved comments can be reopened. If an anchor disappears, the annotation becomes orphaned and retains a text quote for rebinding to a new selection. A sidebar panel filters the current note's active, resolved and orphaned annotations. Gutter markers and the hover control work only in Live Preview, not Reading view. A public method lets other plugins create annotations, but no AI workflow is included. The plugin makes no network requests and requires no account or API key.

Reviews

No reviews yet.

Stats

0
stars
332
downloads
0
forks
7
days
8
days
8
days
7
total PRs
0
open PRs
0
closed PRs
7
merged PRs
0
total issues
0
open issues
0
closed issues
64
commits

Latest Version

8 days ago

Changelog

What's Changed

Full Changelog: https://github.com/mariomile/obsidian-aiditor/compare/0.1.5...0.1.6

README file from

Github

AIditor

Obsidian plugin. Durable-but-resolvable margin annotations, anchored to blocks — a gloss is literally a marginal note.

Attach a comment to a specific block in a note without mutating the block's prose. The annotation lives with the note durably (survives edits, sync, reopen), can be resolved (archived, not deleted), and can be reopened. Built for self-review of drafts before publishing, and durable marginalia you reread months later.

Not in scope for MVP: multi-user, threading/replies, AI-generated annotations (only the extension point, see below), a global cross-vault annotation browser, export.

Part of the marioverse Obsidian plugin suite.

Privacy: despite the name, AIditor makes no network requests, calls no AI service, and needs no account or API key. Everything stays in your vault (see Storage).

Anchoring model

Each annotated block gets an Obsidian block reference, ^ai-<6-char-id>, inserted on a standalone line immediately after the block — never inline (inline ^id breaks hr/table rendering). That block-id is the durable anchor: it lives inside the note file itself, so it survives edits and syncs across devices with zero external state.

As cheap insurance, AIditor also stores a text-quote fallback (quote + up to 32 chars of prefix/suffix context, W3C-annotation style). If the ^ai-id line is ever deleted, the annotation becomes orphaned instead of lost — the stored quote lets you re-anchor it to fresh text.

AIditor never touches frontmatter and never uses Obsidian's YAML-rewriting helper (processFrontMatter) — that helper is known to mangle wikilinks in properties, so the block-id marker only ever lands as a plain line in the note body.

Storage

All annotations live in a single central sidecar file:

_system/annotations/store.json

Rationale: this keeps note frontmatter/body clean (only the tiny ^ai-id marker lands in the note itself), it's Obsidian-Sync-friendly, and it avoids per-note-rename fragility — annotations are keyed by their own id + block-id, so a note is still re-locatable by searching for its block-id vault-wide even if notePath goes stale. Single-user, so last-write-wins is an acceptable model; writes are debounced and read-modify-write the whole file.

Lifecycle

Every annotation has a status:

Status Meaning
active Shown as a gutter marker in Live Preview + in the panel's Active filter.
resolved Hidden from the gutter; visible under the panel's Resolved filter; reopenable.
orphaned Its anchor block/^ai-id no longer exists in the note; hidden from the gutter; shown under the panel's Orphaned filter with the stored quote so it can be re-anchored (select new text, rebind) or deleted.

Resolving archives — it does not delete. Deletion is only ever explicit, triggered by the Delete action in the popover. Nothing is ever deleted automatically.

Reading view: Live-Preview-only in the MVP

AIditor's gutter markers and the "+" hover affordance work in Live Preview only. src/reading.ts registers a MarkdownPostProcessor for Reading view, but it is an intentional no-op stub for this release — it does not render markers on rendered Reading-view elements.

This is a documented, scoped decision, not a silent gap: reliably matching Obsidian's rendered DOM elements back to block-id'd blocks (across paragraphs, lists, callouts, tables) is fiddly enough that it's better shipped as a deliberate fast-follow than rushed into MVP. See the TODO block at the top of src/reading.ts for the concrete plan when it's picked up.

AI extension point

AIditor exposes a public method directly on the plugin instance, mirroring the cross-plugin pattern used by Exo's askExo:

app.plugins.plugins.aiditor.addAnnotation({
  notePath: "Active/Projects/foo.md",
  quote: "the exact text to annotate",
  body: "the annotation text",
});
// → Promise<string>  (the new annotation's id)

It locates the quote in the note, stamps a ^ai-id if the block doesn't already have one, and creates an active annotation. This is a stub extension point only — AIditor ships no AI flow, prompt UI, or Exo coupling itself. A future integration (e.g. Exo) can call this to leave AI-authored annotations without any changes to AIditor.

Development

Package manager: pnpm.

pnpm install       # install dependencies
pnpm dev           # esbuild watch mode
pnpm build         # tsc --noEmit (typecheck) + esbuild production bundle
pnpm test          # node --test over src/**/*.test.ts (pure-core unit tests)

pnpm build deploys the built main.js, manifest.json, and styles.css into the target vault's plugin folder (configured via .obsidian-plugin-dir, or the OBSIDIAN_PLUGIN_DIR env var). Building does not enable the plugin — after a build, open Obsidian → Settings → Community plugins and enable AIditor manually.

Commands

  • AIditor: Annotate selection — ships with no default hotkey, so it never collides with your existing bindings. Bind one yourself in Settings → Hotkeys → search "AIditor".
  • AIditor: Open annotations panel — opens the right-sidebar panel showing Active / Resolved / Orphaned annotations for the currently active note.

Try it

See it running in the Obsidianverse sample vault, a small, fictional vault with the whole plugin suite pre-configured.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Extract PDF Annotations
5 years ago by Franz Achermann
This is a plugin for https://obsidian.md. It extracts Annotations from PDF Files.
Timestamp Notes
4 years ago by Julian Grunauer
This plugin allows side-by-side notetaking with videos. Annotate your notes with timestamps to directly control the video and remember where each note comes from.
Simple Note Review
4 years ago by dartungar
Simple, customizable plugin for easy note review, resurfacing & repetition in Obsidian.md.
Raindrop Highlights
4 years ago by kaiiiz
An Obsidian.md plugin that syncs highlights from Raindrop.
Repeat
4 years ago by Andre Perunicic
Review notes using periodic or spaced repetition.
Reading comments
4 years ago by BumbrT
Reading comments, for consuming books or large articles in markdown with https://obsidian.md/.
ibook
4 years ago by bingryan
export mac ibook annotations/hightlights to obsidian vault
Slide Note
3 years ago by Jinyan Xu
Interlinear Glossing
3 years ago by Mijyuoon
An Obsidian plugin for interlinear glosses used in linguistics texts.
Better Comment Toggle
3 years ago by Gino Valente
Rendered Block Link Suggestions
3 years ago by Ryota Ushio
Upgrade Obsidian's built-in link suggestions with block markdown rendering.
Enhanced Annotations
3 years ago by ycnmhd
BookFusion
3 years ago by BookFusion
BookFusion Obsidian Plugin
Note Definitions
2 years ago by Dominic Let
Obsidian plugin for seamless viewing of personal definitions
The Queue
2 years ago by Kolja Sam Pluemer
An Obsidian.md plugin randomly exposing you to your cards. Supports habits, to-dos, spaced repetition flashcards, iterative reading and more.
Plugins Annotations
2 years ago by Andrea Alberti
Obsidian plugin that allows adding personal comments to each installed plugin.
Blockreffer
2 years ago by tyler.earth
An Obsidian plugin to search and embed blocks with ^block-references (aka ^block-ids)
Note Reviewer
2 years ago by Travis Linkey
An obsidian plugin to help review notes that have been taken
PDF Highlights
6 years ago by Alexis Rondeau
Extract highlights, underlines and annotations from your PDFs into Obsidian
Recall
5 years ago by Martin Jirlow
A spaced repetition system for Obsidian!
Annotator
5 years ago by Elias Sundqvist
A plugin for reading and annotating PDFs and EPUBs in obsidian.
Markmind
5 years ago by Mark
A mind map, outline for obsidian,It support mobile and desktop
Spaced everything
2 years ago by Zach Mueller
Obsidian plugin to apply spaced repetition to incrementally develop your notes.
Link Maintainer
2 years ago by wenlzhang
An Obsidian plugin that helps you maintain note links when splitting or reorganizing notes.
ShaahMaat-md
2 years ago by Mihail Kovachev
Readeck Importer
2 years ago by Makebit
Import bookmarks from Readeck to Obsidian
Feedly Annotations Sync
2 years ago by Nick Felker
Download my Feedly annotations
PDF Writer
2 years ago by Jobelin Kom
Obsidian plugin To write and fill a PDF
Media Slider
2 years ago by Aditya Amatya
An obsidian plugin that helps to make slider for images, audios, videos, pdfs, markdown, etc in obsidian notes.
Annotate Audio
2 years ago by VidE
HiNote
2 years ago by Kai
Add comments to highlighted notes, use AI for thinking, and flashcards for memory.
Cubox
2 years ago by delphi-2015
Cubox Official Obsidian Plugin
Comments
a year ago by Jasper Surmont
Sidebar Highlights
a year ago by trevware
Custom Comments
a year ago by Jack Chronicle
Adds a method to create custom methods to enclose comments
SideNote
a year ago by mofukuru
Obsidian plugin: Add comment on the part of sentence and refer in comment view.
Math+
5 months ago by ocapraro
This is an Obsidian plugin for taking math notes using Excalidraw.
PDF++
5 months ago by ryotaushio
PDF++: the most Obsidian-native PDF annotation & viewing tool ever. Comes with optional Vim keybindings.
PDF++ Exporter
3 months ago by jldiaz
Image Converter
3 months ago by xryul
⚡️ Convert, compress, resize, annotate, markup, draw, crop, rotate, flip, align images directly in Obsidian. Drag-resize, rename with variables, batch process. WEBP, JPG, PNG, HEIC, TIF.
HandLayers
2 months ago by [email protected]
Simple Editorial
2 months ago by Beppe
A minimal editorial markup plugin for writers using Obsidian.
FleurEPUB
2 months ago by JC5
Qiaomu Reader
2 months ago by 向阳乔木
已上架 Obsidian 社区插件市场:搜索 Qiaomu Reader 安装。Read EPUB, PDF and MOBI, highlight passages, keep linked notes and ask optional AI.
Third Mind Reader
a month ago by Rohan Bell
An opinionated EPUB & PDF reader for Obsidian. Read, annotate, and chat with your books. Every highlight stays in your vault as plain markdown, linked back to where it came from. Desktop and mobile, AI optional.
Pick Me
a month ago by seanishoo
Annotate and ask questions about what you select — in notes and in PDFs — without leaving the page. Annotations live in their own Markdown files; the original document is never modified.
yh-InkLight
a month ago by angelwdx
Storyteller Comic Drafter
14 days ago by Jimiel Balitayo
Just made your stories and everything in your Obsidian vault and thought, "Huh. Now I gotta go to word or scrivener to make the script." Well, say no more gng. Storyteller makes it so that your vault and your comic stuffs are in the same app!