Obsidian CLI
Section titled “Obsidian CLI”Q. Does Obsidian now have an API to externally control much of its functionality?
Grok response follows
No official remote/hosted REST API from Obsidian Inc., but yes — there are now strong official and community ways to externally control a large portion of Obsidian’s functionality.
Official options (as of 2026)
Section titled “Official options (as of 2026)”-
Obsidian CLI (launched February 2026 with v1.12)
This is the biggest recent addition. It is Obsidian’s own command-line interface.- Goal: “Anything you can do in Obsidian you can do from the command line.”
- Covers opening/creating/editing notes, daily notes, search, tasks, tags, properties, bookmarks, plugins, workspaces, file operations, developer tools (reload plugins, run JS in the console, screenshots, etc.), and more.
- Requires the desktop app to be running (it talks to it via IPC).
- Enable it in Settings → General → Command line interface, register it so
obsidianis on your PATH, then use commands likeobsidian daily,obsidian search query="...",obsidian daily:append content="...", etc. - Excellent for scripting, automation, and integration with external tools/AI agents.
-
Obsidian URI scheme (long-standing, still fully supported)
Custom protocol (obsidian://action?...) for opening notes, creating notes, and various other actions. Extended heavily by the popular Advanced URI community plugin for much finer control (headings, blocks, commands, workspaces, append/prepend/overwrite, etc.). Works cross-platform, including mobile. -
Plugin API
The long-standing TypeScript/JavaScript API for community plugins (Vault, Workspace, MetadataCache, commands, settings, views, etc.). This is in-process only — not an external/remote API. Type definitions are published on GitHub (obsidianmd/obsidian-api) and documented at docs.obsidian.md. -
Obsidian Headless (open beta)
Standalone client mainly for Sync (and related services) without the full desktop app. Useful for server/CI automation of vaults, but not a general control API for the UI or most app features.
Obsidian still does not ship a hosted SaaS-style public REST API. Access remains local-first.
Strong community options for external/programmatic control
Section titled “Strong community options for external/programmatic control”-
Local REST API with MCP (by coddingtonbear, very popular)
Community plugin that runs a secure, authenticated local HTTPS server (defaulthttps://127.0.0.1:27124) inside Obsidian.
Exposes full CRUD on vault files, active file, search (simple + structured/JsonLogic), tags, commands (list + execute), opening files in the UI, periodic notes, section-level patching, and more.
Also includes a built-in MCP (Model Context Protocol) server so AI agents can talk to it directly. Other plugins can extend the routes.
This is currently the closest thing to a full external control API for “much of its functionality.” -
Other plugins exist that expose REST/MCP endpoints, turn CLI commands into HTTP, or provide specialized APIs (e.g., for Dataview/Tasks rendering).
Summary
Section titled “Summary”| Method | Official? | External control? | Requires app running? | Scope |
|---|---|---|---|---|
| Obsidian CLI | Yes | High (terminal/scripts) | Yes | Very broad |
| URI / Advanced URI | Yes (+plugin) | High (URLs/scripts) | Yes | Broad |
| Local REST API plugin | No | High (HTTP + MCP) | Yes | Very broad (vault + commands + UI) |
| Plugin API | Yes | In-process only | N/A | Full (for plugins) |
| Headless | Yes | Limited (mainly Sync) | No | Sync-focused |
Bottom line: Obsidian does not have an official cloud/remote API, but with the 2026 CLI plus the mature Local REST API community plugin (and URI schemes), external scripts, tools, and AI agents can now control a large share of its functionality locally and securely.