Skip to main content
Join the thriving Obsidian developer community and get the support you need to build amazing plugins.

Official Resources

Developer Forum

The official place for API discussions, feature requests, and bug reports. Get help from the community and Obsidian team.

Official Documentation

Comprehensive guides, tutorials, and reference documentation for plugin development.

API Repository

TypeScript type definitions and changelog for the Obsidian API. Report issues and track updates.

Sample Plugin

Official plugin template with build configuration, best practices, and example code.

Getting Help

Before asking for help, check the official documentation and search the forum to see if your question has already been answered.

Where to Ask Questions

Forum: Developer & API DiscussionThis is the primary place to:
  • Ask questions about the API
  • Request new API features
  • Report API bugs
  • Discuss plugin development best practices
  • Share your plugins and get feedback
The Obsidian team actively monitors this forum and responds to questions.
GitHub: obsidian-api repositoryUse GitHub issues for:
  • Reporting bugs in type definitions
  • Discussing API implementation details
  • Tracking official API changes
For API feature requests, please use the forum instead of GitHub issues. The forum is the official channel for feature discussions.
GitHub: obsidian-sample-pluginThe sample plugin repository includes:
  • Complete build setup with TypeScript and esbuild
  • Example plugin code demonstrating common patterns
  • Best practices for plugin structure
  • Instructions for releasing your plugin
Fork this repository to start building your own plugin!

Developer Guides

Getting Started

Build your first Obsidian plugin from scratch

Plugin Guidelines

Guidelines for publishing plugins to the community store

Deferred Views

Learn how to handle deferred tabs in Obsidian v1.7.2+

Submit Your Plugin

Steps to submit your plugin to the community store

Contributing

The Obsidian API is continuously evolving based on community feedback. You can contribute by:
  1. Requesting Features: Post detailed feature requests on the developer forum explaining:
    • What you’re trying to accomplish
    • Why the current API doesn’t support your use case
    • Proposed API design (if you have ideas)
  2. Reporting Bugs: When reporting API bugs, include:
    • The Obsidian version you’re using
    • Minimal code to reproduce the issue
    • Expected vs actual behavior
    • Any error messages or logs
  3. Improving Documentation: Help improve the official docs by:
    • Suggesting clarifications or additions
    • Sharing examples and use cases
    • Writing guides based on your experience

Code Quality

  • Use TypeScript for type safety
  • Follow the patterns in the sample plugin
  • Register all events and intervals properly to avoid memory leaks
  • Test your plugin with multiple Obsidian versions

User Experience

  • Provide clear settings with helpful descriptions
  • Follow Obsidian’s UI/UX patterns
  • Handle errors gracefully with user-friendly messages
  • Support keyboard navigation and accessibility

Performance

  • Minimize work in onload() - defer initialization when possible
  • Use onUserEnable() for one-time setup
  • Debounce expensive operations
  • Respect user’s system resources

Backwards Compatibility

  • Check if new API features exist before using them
  • Set appropriate minAppVersion in your manifest
  • Test on older Obsidian versions if you support them
// Example: Check if API exists before using
if (slider.setInstant) {
  slider.setInstant(true);
}

Community Plugins

Explore existing plugins for inspiration! The community has built hundreds of plugins demonstrating various API capabilities.

Finding Plugins

  • In Obsidian: Settings → Community Plugins → Browse
  • GitHub: Search for obsidian-plugin or obsidian-md
  • Forum: Check the plugin releases category

Learning from Others

Many plugin developers open-source their code. This is an excellent way to:
  • See real-world API usage
  • Learn advanced patterns and techniques
  • Understand how to solve common problems
  • Get inspiration for your own plugins
Always respect plugin licenses when learning from others’ code. Most plugins use MIT or similar permissive licenses, but always check first.

Stay Updated

Changelog

Track API changes and breaking changes across versions

API Examples

Code examples and common patterns for plugin development

Forum Announcements

Subscribe to the developer forum for API announcements

GitHub Releases

Watch the API repository for the latest commits

Support the Project

Obsidian offers a unique model where the app is free to use, and the team is funded through optional paid services:
  • Obsidian Sync: Official sync service across devices
  • Obsidian Publish: Publish your notes online
  • Catalyst License: Support development and get early access to insider builds
  • Commercial License: For business use (required if using Obsidian for revenue-generating activities)
By supporting Obsidian, you help ensure continued development of the app and API.

Code of Conduct

The Obsidian community values respect, collaboration, and constructive feedback. Please be kind and helpful when interacting with other developers.

Community Guidelines

  • Be Respectful: Treat all community members with respect and courtesy
  • Be Helpful: Share knowledge and help others when you can
  • Be Constructive: Provide actionable feedback and suggestions
  • Be Patient: Remember that everyone is learning and growing
  • Follow the Rules: Adhere to forum rules and GitHub’s terms of service

Join the Discussion

Ready to connect with other developers? Join the conversation on the official forum!

Build docs developers (and LLMs) love