Obsidian
Free tierThe free and flexible private note-taking app that sharpens your thinking
Key strengths
Developer & Technical Documentation
Plugin Development
Obsidian exposes a public TypeScript/JavaScript API for building plugins. Scaffold a new plugin using the official template:
git clone https://github.com/obsidianmd/obsidian-sample-plugin
cd obsidian-sample-plugin
npm install && npm run dev
Copy the built plugin folder into <vault>/.obsidian/plugins/ and enable it in Settings → Community plugins.
Key API Concepts
Pluginclass — entry point; register commands, views, and event listeners viathis.addCommand(),this.registerView(), etc.VaultAPI — read/write/delete Markdown files and attachments programmatically.MetadataCache— access parsed frontmatter, tags, and backlinks across the entire vault without re-reading files.EditorAPI — interact with the active CodeMirror 6 editor instance.
CLI & Automation
Obsidian URIs (obsidian://open?vault=MyVault&file=Note) allow external apps and scripts to open specific notes. The official CLI (obsidian-cli) can trigger vault actions from the terminal.
Obsidian Publish API
Publish sites are configured via publish.css and publish.js files placed in the vault root, enabling custom theming, JavaScript widgets, and domain mapping through the Obsidian dashboard.
File Format
All notes are plain UTF-8 Markdown files with optional YAML frontmatter:
---
tags: [evergreen, philosophy]
created: 2024-01-15
---
# My Note
This ensures compatibility with any text editor or version-control system (e.g., Git).
