Skip to content

Search, download and explore the growing library of Obsidian plugins!

Notifications You must be signed in to change notification settings

luckman212/obsidian-plugin-downloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

icon

Obsidian Plugin Downloader

Demo Video

demo.mp4

What?

This is a script to search, download and maintain a local repository of Obsidian plugins, which can be used as a reference for your own research and development.

Why?

As an absolute beginner to TypeScript, and a lover of Obsidian I often want to take a look at how someone has achieved a certain feature, called on an API, etc. A quick way to do that is by searching through the existing codebase of the ever growing library of plugins out there.

Setup

  1. First, set up your environment to have jq, fzf, and gh. On macOS the simplest way to do that is with Homebrew: brew install jq fzf gh.
  2. Copy the obsidian-plugin-downloader.sh script to a directory in your $PATH
  3. Make sure it's executable (chmod +x obsidian-plugin-downloader.sh)
  4. You can adjust the $OUTDIR variable to set the destination directory of your choice (default: ~/Downloads/obsidian-plugins)

Run

  1. Open a Terminal window (bash, zsh, etc)
  2. Type obsidian-plugin-downloader.sh
  3. The list of plugins should be displayed. You can type in the search field at the top to filter the list—both the names and descriptions of the plugins are searchable.
  4. Choose one or more to download. You can move with the arrow keys, use <TAB> to select/deselect, or press ⌃A / ⌃S to select/deselect all.
  5. Make your selections and press <ENTER>
  6. Plugins should be downloaded!

The script will automatically check to see if you have the latest version of the plugin, and will download newer versions as needed.

Next...

It's nice to have a tool like ripgrep to search through the code if you are looking for API references etc. For example:

rg 'this.app.workspace.onLayoutReady' --glob '*.ts'