May I ask whether Obsidian development supports standalone desktop applications calling Obsidian’s API?
Currently, when developing plugins for Obsidian, I’ve found that many third-party libraries cannot be used properly (for example, styles become messed up). Therefore, I’d like to develop the features in a separate desktop application, while still being able to extract and save data from/to Obsidian.
In this case, is it possible to use Obsidian’s API within an independent desktop application developed separately?
I havent tried this, but yes, this should be possible using the following functionality of Obsidian
What I can think of is, you will need to create a simple connector plugin. Which will act like a bridge between your external desktop application and Obsidian interface.
Here is what you can do :
Create a simple plugin.
In this plugin register your custom protocol. For example obsidian://your-plugin-name?api=saveNote?data=<your-data>. I am using it like this.
Now, for each of the api, in the above example saveNote, you will need to create a function and the function will make use of Obsidian APIs to do all the operation you want to do, in this example saving the note with the passed data.
I am not sure, if the other way communication, that is from Obsidian to your application is any way possible directly. But one solution will be to use localHost ports, where your external application itself will act like a server and whenever any changes happens inside Obsidian your connector plugin will detect them and post them to your external application port.