PowerShell-Support for integration with automation tooling

After starting organizing my information with Obsidian, I started scripting some tasks I have on a regular basis. Unfortunately, until now, I see only one interface of Obsidian where I can “attach” custom logic: plug-ins.

Plug-ins are great, but don’t help me when I need a list of all documents with a certain tag generated on a daily basis.

Proposed solution

My automation tool of choice is PowerShell, because it is cross-platform (works on mac, linux, windows) and it integrates well with other tooling that I use. So, I would highly appreciate a way to interact with a vault through PowerShell. Placing a note inside the Vault is easy - I simply write a new md-file and that’s it. But what about querying for a specific tag? Getting the back-links of a note, getting a “standard”-md-represenation (that includes applied, links resolved to relative paths, etc. to push parts of the vault into a different system that supports markdown) or finding all headlined of level 2 inside a note?

Current workaround

I am currently using regex in ProwerShell to get information from my vault, but that is a very fragile process: when I am searching for all documents with a certain tag “#mytag”, I currently also get the documents that include the character sequence “#mytag” inside a code block or as part of a URL of a link. Being able to use the same parser that Obsidian does would make things a lot easier and would open a whole new world of use cases for Obsidian.

2 Likes

Being a PowerShell enthusiast myself I have been utilizing PowerShell for various Obsidian related tasks and automations/analysis, etc.

I was thinking of building out a new module (probably without any C# or classes at first, although I see the real power coming from a classlib driven module here).

I’ve only made a minimal start:

But let me know if you have suggestions/would like to collaborate and build out a feature list.