Inventory of the 29 core plugins (22 done, 2 partial, 5 missing), 80 community plugins with a verdict each, a ranked roadmap with 8 ready briefs, the Bases spec (D1-D13) and 20 tasks, ASCII wireframes of the Bases screens (PaperCraft was not running). crates/bases is registered at layer L2. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
5.0 KiB
Inventory: Obsidian core plugins vs NotesCraft (2026-10-21)
Sources: docs/CODE-MAP.md, crate rustdoc, ROADMAP.md, the engine command ids (CommandSpec::new),
views/, panels/, views/settings_view/categories.rs (core_plugins() shows only Calendar, Templates,
Diagrams, Whiteboard as toggleable cards; the rest are always-on features). DONE = usable end to end;
PARTIAL = part exists; MISSING = nothing.
| # | Obsidian core plugin | Status | Where in NotesCraft / gap |
|---|---|---|---|
| 1 | Audio recorder | MISSING | SPEC 6.1 defers it. Playback exists (views/media_view); no capture (needs a mic crate: owner approval). |
| 2 | Backlinks | DONE | crates/backlinks, panels/right/backlinks_panel.rs, links.backlinks, unlinked mentions |
| 3 | Bases | MISSING | Deferred in SPEC 6.1. query embeds (obsidian-basics 19) and the Properties view are the nearest. See bases/spec.md |
| 4 | Bookmarks | DONE | bookmarks.add/list/remove, panels/bookmarks_view.rs, vault/bookmarks.rs |
| 5 | Canvas | DONE | crates/canvas, views/canvas_view, slash.canvas |
| 6 | Command palette | DONE | widgets/palette.rs; everything is an engine command (SPEC 10) |
| 7 | Daily notes | DONE | vault/daily.rs, crates/templates (daily_note_path), calendar crate, sidebar mini calendar |
| 8 | File recovery | DONE | engine/vault/snapshots, history.list/read, views/versions_view, git history |
| 9 | Format converter | MISSING | No importer (Roam/Notion/Evernote/Bear/HTML). Roadmap R7 |
| 10 | Graph view | DONE | crates/graph, views/graph_view (forces, colour groups, timelapse, 6.5k notes) |
| 11 | Note composer | DONE | note.extract, note.merge, toolbar button, Explorer "Merge into..." |
| 12 | Outgoing links | DONE | links.outgoing, links.unresolved |
| 13 | Outline | DONE | panels/right/outline.rs (count, filter, folding, active heading) |
| 14 | Page preview | DONE | link hover card (driven_features.rs), heading/block links |
| 15 | Properties view | PARTIAL | Per-note editor views/properties_view + note.property_* done. No vault-wide "All properties" pane (keys, types, counts, rename everywhere): base.properties of the Bases spec provides the data |
| 16 | Publish | DONE (own) | publish.* + apps/notescraft-sync-server/src/publish (our server, not Obsidian Publish) |
| 17 | Quick switcher | DONE | palette, headings and blocks |
| 18 | Random note | DONE | note.random |
| 19 | Search | DONE | crates/index/search (BM25, operators, /regex/), search_panel, vault-wide replace |
| 20 | Slash commands | DONE | slash.*, builtin/slash_commands.rs, slash menu with preview |
| 21 | Slides | MISSING | SPEC 6.1. Roadmap R9 |
| 22 | Sync | DONE (own) | crates/sync, engine/sync, apps/notescraft-sync-server (not Obsidian Sync) |
| 23 | Tags view | DONE | panels/tags_panel.rs, tags.list. No rename/merge (see Tag Wrangler) |
| 24 | Templates | DONE | crates/templates, template.list, slash.template, {{title}}/{{date:FMT}}/{{time}} |
| 25 | Unique note creator | DONE | obsidian-basics (note.create with timestamp name) |
| 26 | Web viewer | MISSING | No webview by design (AGENTS.md: no Tauri/Electron/webview). A "reader mode" fetch-and-convert is the only honest variant (Web Clipper deferred) |
| 27 | Word count | DONE | shell/statusbar.rs (words, characters, approximate tokens); selection counts partial |
| 28 | Workspaces | DONE | workspace.save/load/list/delete, engine/vault/workspaces |
| 29 | Footnotes view | PARTIAL | Footnote rendering/refs done (note_view/blocks/footnotes.rs); no sidebar pane listing a note's footnotes |
Counts: 29 plugins. DONE 22 (two of them own-server equivalents), PARTIAL 2, MISSING 5 (Audio recorder, Bases, Format converter, Slides, Web viewer).
Also built beyond the Obsidian core list: Calendar (events, recurrence, ICS/Google), Diagrams
(Mermaid subset), Whiteboard (Excalidraw-compatible .draw/.excalidraw), Vault knowledge (RAG), in-app AI
assistant + MCP, Lint + batch formatter, Git (git.*: commit/log/diff/stage, no remotes), Live
co-editing, Comments/suggestions/mentions/activity, Vim mode, Pop-out windows, Split view.
What plugins can do today (crates/plugins, SPEC 7)
Wasm (wasmi) modules in <vault>/.notescraft/plugins/<id>/ with manifest.json (commands, permissions
vault.read, vault.write, editor). Host calls: log vault_read vault_write vault_list search links backlinks active_note insert_text notice now. Limits: fuel, memory cap, deadline, result size, rate; 3
failures auto-disable. No UI contribution (no panel, view, widget, settings), no network, no clock but
now, no selection/cursor API, no event hooks. Consequences for this roadmap:
- Only command-style plugins fit today (run on demand, read notes, write notes or insert text).
- Anything with a view (Kanban, Map, Heatmap, Charts, Mind map) is an in-tree feature, optionally behind a core-plugin card, until a UI-contribution ABI exists (roadmap P-ABI).
- No first-party wasm plugin ships yet; the first one (roadmap item 6) doubles as the SDK proof.