Skip to content

Implemented Capabilities (Obsidian Extension Mapping) ​

For developers: how Harness Like (the host plugin) maps Obsidian's extension points, and which built-in tools each agent mode can call.

Host plugin → Obsidian extension mapping ​

Obsidian extension pointHarness Like mapping
Commands (app.commands)Host commands: Open Harness Like Panel / Open Plugin Manager / Reload authorized plugins; sub-plugin commands auto-grouped as Harness Like: command (sub-plugin-id)
Views (viewRegistry)Host panels: Chat, Plugin Manager; sub-plugin ItemView panels
Settings tabs (addSettingTab)Tabbed settings: Models / Agents / Approval / Sessions / Data / Interface / Logs / Plugin Grants
Ribbon iconsHost bot icon (opens Chat); sub-plugins can register their own
Status barSub-plugins can add status bar items
obsidian:// protocol handlersSingle entry obsidian://harness-like?plugin=<id>&cmd=<name> routed to sub-plugin handlers (ctx.protocol.register)
Custom code blocksNotes write ```hl <sub-plugin-id or plugin alias>[:<type>] [params...] , routed to the sub-plugin renderer (ctx.blocks.register); the hl namespace is owned by the host (registered once at startup, cannot be taken by other plugins)
Editor bridgectx.editor (selection / insert / replace)
Filesystemctx.vault (read/write/folders/events `vault/create
Workspacectx.workspace (active file, file-open event)
Notificationsctx.notice
BrowseropenTarget (open external links/paths)

Built-in tools × agent modes ​

ToolChat (read-only)Edit (read/write notes)Create (full)
read_note✅✅✅
list_notes✅✅✅
search_notes✅✅✅
write_note—✅✅
insert_to_editor—✅✅
open_in_browser—✅✅
plugin_guide——✅
create_plugin——✅
write_plugin_file——✅
check_plugin (verify plugin code: syntax / forbidden APIs)——✅
plugin_status——✅
reload_plugin——✅
open_view——✅
run_command—✅¹✅¹

¹ run_command(shell 命令执行)需先在设置 → 审批 中开启「允许执行命令」,且每次调用弹审批确认;默认工作目录 = vault 根,指定任意目录需另开「完全放行」。

Custom agents override these via capability whitelists (checked tools).

What sub-plugins can register ​

Tools (ctx.toolsCompat.register), commands (+ ctx.commands.execute(id) to run any registered command, incl. Obsidian core plugin commands), ItemView panels (ctx.views), ribbon icons, status bar items, settings tabs (ctx.settingsTab.register), deep links (ctx.protocol.register), custom code blocks (ctx.blocks.register) — signatures in the Services Reference. Full walkthrough: Your First Plugin.