Obsidian plugin & theme development reference. Read only the specific reference files you need for the current task.
Offline reference for building Obsidian plugins (TypeScript) and themes (CSS). Each file below is a self-contained page from docs.obsidian.md.
Usage: Read only the file(s) relevant to the current task. Do not load everything at once.
Read these when scaffolding a new plugin or onboarding to plugin development.
| When you need to... | Read |
|---|---|
| Create a new plugin from scratch | references/plugins/getting-started/build-a-plugin.md |
| Understand manifest.json, main.ts structure | references/plugins/getting-started/anatomy-of-a-plugin.md |
| Set up hot-reload / dev workflow |
references/plugins/getting-started/development-workflow.md |
| Test on mobile | references/plugins/getting-started/mobile-development.md |
| Use React components in a plugin | references/plugins/getting-started/use-react.md |
| Use Svelte components in a plugin | references/plugins/getting-started/use-svelte.md |
Read these for specific advanced patterns.
| When you need to... | Read |
|---|---|
| Create a Bases database view | references/plugins/guides/bases-view.md |
| Defer view loading for performance | references/plugins/guides/defer-views.md |
| Optimize plugin startup / load time | references/plugins/guides/load-time.md |
| Store API keys or secrets securely | references/plugins/guides/secret-storage.md |
| Handle pop-out / multi-window | references/plugins/guides/pop-out-windows.md |
Read these when building UI components.
| When you need to... | Read |
|---|---|
| Overview of Obsidian UI concepts | references/plugins/user-interface/about.md |
| Register commands (Command Palette) | references/plugins/user-interface/commands.md |
| Add right-click context menu items | references/plugins/user-interface/context-menus.md |
| Create/manipulate HTML elements | references/plugins/user-interface/html-elements.md |
| Use built-in icons (Lucide) | references/plugins/user-interface/icons.md |
| Show modal dialogs | references/plugins/user-interface/modals.md |
| Add ribbon (left sidebar) buttons | references/plugins/user-interface/ribbon-actions.md |
| Support RTL languages | references/plugins/user-interface/right-to-left.md |
| Build a settings tab | references/plugins/user-interface/settings.md |
| Add status bar items | references/plugins/user-interface/status-bar.md |
| Create custom views (leaf/pane) | references/plugins/user-interface/views.md |
| Manage workspace layout and leaves | references/plugins/user-interface/workspace.md |
Read these when modifying the editor or extending CodeMirror.
| When you need to... | Read |
|---|---|
| Editor API overview (get/set text, cursor) | references/plugins/editor/editor.md |
| Post-process rendered markdown | references/plugins/editor/markdown-post-processing.md |
| Understand CM6 extension architecture | references/plugins/editor/editor-extensions.md |
| Add inline/line decorations | references/plugins/editor/decorations.md |
| Create CM6 state fields | references/plugins/editor/state-fields.md |
| Manage editor state + transactions | references/plugins/editor/state-management.md |
| Build CM6 view plugins | references/plugins/editor/view-plugins.md |
| Work with the visible viewport | references/plugins/editor/viewport.md |
| Communicate between extensions + plugin | references/plugins/editor/communicating-with-extensions.md |
| When you need to... | Read |
|---|---|
| Listen to vault/workspace/plugin events | references/plugins/events.md |
| Read/write/rename/delete files in vault | references/plugins/vault.md |
| When you need to... | Read |
|---|---|
| Create a new theme from scratch | references/themes/app-themes/build-a-theme.md |
| Embed custom fonts or images | references/themes/app-themes/embed-fonts-images.md |
| Automate theme releases via CI | references/themes/app-themes/release-github-actions.md |
| Submit theme to community directory | references/themes/app-themes/submit-your-theme.md |
| Review theme guidelines / requirements | references/themes/app-themes/theme-guidelines.md |
| When you need to... | Read |
|---|---|
| Understand Publish theme scope | references/themes/publish-themes/about.md |
| Build a Publish-specific theme | references/themes/publish-themes/build-a-publish-theme.md |
| Follow Publish theme best practices | references/themes/publish-themes/best-practices.md |