https://github.com/chrisgrieser/shimmering-obsidian
Alfred workflow with dozens of features for controlling your Obsidian vault.
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: researchgate.net -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.5%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Alfred workflow with dozens of features for controlling your Obsidian vault.
Basic Info
- Host: GitHub
- Owner: chrisgrieser
- License: mit
- Language: JavaScript
- Default Branch: main
- Homepage: https://alfred.app/workflows/chrisgrieser/shimmering-obsidian/
- Size: 112 MB
Statistics
- Stars: 953
- Watchers: 6
- Forks: 43
- Open Issues: 1
- Releases: 290
Topics
Metadata Files
README.md
Shimmering Obsidian 🎩
Alfred workflow with dozens of features for controlling your Obsidian vault.
⭐ Featured in the Alfred Gallery.

Table of contents
- Installation
- Alfred-based quick switcher
- Note-related features
- Screenshot features
- Utility features
- Plugins, themes, and settings
- Documentation searches
- Cheatsheet
- Credits
- About the developer
Installation
This workflow requires Alfred 5 with Powerpack.
- Install the Obsidian plugins Advanced URI & Metadata Extractor.
- Enable both plugins.
- Download the latest release at
GitHub.
Double-click the
.alfredworkflowfile to install it. - Set your vault path in the workflow configuration.
In the Obsidian plugin settings for the "Metadata Extractor"
- Enable Write JSON files automatically when Obsidian launches.
- Set Configure frequency for writing the three JSON files to how often you
want the Metadata to be updated. A value like 30 minutes is reasonable. Do
not change any of the other settings.
- Restart Obsidian.
Alfred-based quick switcher
The Alfred-based Quick Switcher is basically an enhanced version of Obsidian's Quick Switcher Core Plugin.

How the search works
All the search features listed here do not directly search your vault, but rather use the metadata created by the Metadata Extractor Plugin on a regular basis. By default, this happens every 30 minutes, meaning recently created notes, recently renamed notes, or recent tag changes are not picked up at once. You can change the metadata refresh rate via the Metadata Extractor Plugin's settings.
Main search
o: Open files in your vault.
This keyword searches all your notes, aliases, folders, and headings combined.
Search for notes
This works similar to Obsidian's built-in Quick Switcher, but can be triggered
without Obsidian running (in which case it opens Obsidian with the selected
note).
- ⏎: Open the selected file in Obsidian.
- ⌘ + ⏎: Open the file in a new tab. (Can be configured in the workflow
settings to open in a new window or split instead.)
- ⌥ + ⏎: Reveal the file in Finder.
- fn + ⏎: Append content to the selected note. (Prompt for text or clipboard content)
- ⌃ + ⏎: Copy the
Obsidian-URI
to the selected file.
- ⇧ + ⏎: Browse a list of all links of the selected note (outgoing links,
backlinks, external links.) See at the section "Browse Links"
below for further information.
- Press ⇧ or ⌘ y to preview the selected note via macOS' Quick Look feature.
Press it again to close the preview. This feature requires QLMarkdown or
Peek to be installed.
- 💡 The o-search respects the Excluded files setting from Obsidian and
ignore files and folders added there. (Regex-filters do not work though.)
[!TIP] There are various settings for appending and opening notes, which can be found in the workflow configuration.
Smart queries
- Add
filenameortitleto your search query, to display only files and no aliases, folders, or headings. For example,o obsidian filenamedisplays only notes that have theobsidianin their filename. - Add
canvasto your search to only display canvases (Obsidian 1.1). - Similarly, you can also filter for starred or recent files by adding
starredorrecentto your query. - You can add
#tagto your search query to search only for files with a specific tag, for example,o foobar #moconly displays notes with the namefoobarthat are also tagged with#moc.
Search for aliases
This command also looks for aliases, when they are defined in the
YAML-Header.
- Add alias to your search query, to only display aliases, for example, o
obsidian alias only displays notes that have the alias obsidian.
Search for folders
When selecting a folder, you can "browse" the selected folder—this means
that you are now searching only for files and folders inside that folder.
- When browsing a folder, you also have the option to create a new note in that
folder. Uses the template note defined in the workflow configuration.
- Furthermore, you can go up and browse the parent folder of the current
folder. Basically, you can fully explore the folder structure of your vault
via Alfred.
- Add folder to your search query, to only display folders, for example, o
foobar folder only displays folders that have foobar in their name.
- When you are browsing inside a folder, use the query .. to go up to the
parent folder or new to create a new
note in that folder, respectively.
Search for headings
Displayed alongside the other search results are all headings in your vault.
Selecting a heading with ⏎ opens the file at the respective heading.
- ⌃ + ⏎: Copies either a Markdown link that uses the Obsidian
URI
or the wikilink to the selected file, depending on the setting. Also work with
headings.
- Add heading to your search query, to only display headings, for example, o
foobar heading only displays headings that include foobar.
- Add h1, h2, … to your search query, to only display headings of a certain
level, for example, o obsidian h2 only displays level 2 headings that
include obsidian.
- You can ignore certain (or all) heading levels with the respective workflow
configuration.
[!TIP] If the search results become too crowded, you can ignore certain heading levels in the workflow configuration.
Browse links of a note
Use ⇧ + ⏎ on any search result of the main o search to browse the links of
that note
- Displays a list of all links of the note: outgoing links, backlinks, and external links. (As of now, unresolved internal links are not displayed though.)
- Selecting an outgoing link or backlink opens the respective note.
- All the modifiers (
⌘/⌃/⌥/fn/⇧ + ⏎) apply the same way as with the mainosearch. - Yes, this means you can repeatedly use
⇧ + ⏎to basically traverse your graph via Alfred. 😎
- All the modifiers (
- for external links:
- Selecting an external link with
⏎opens the link in the default browser. - Press
⌥ + ⏎on an external link to copy the URL to the clipboard instead.
- Selecting an external link with
Search notes by their tags
ot: Search tags and subsequently files with that tag
- Display and search a full list of all tags in your vault.
* Select a tag with ⏎ to display & search all notes with that tag.
* In the following list of your notes, all the modifiers (⌘/⌃/⌥/fn/⇧ + ⏎)
apply the same way as they do with the o search.
* Press ⌘ + ⏎ instead to open Obsidian's search pane and search for the
tag there.
- Use the workflow configuration to set whether nested tags should be merged
with their parent or not.
Search bookmarked files
ob: Search bookmarked Files and Searches
- When you select a starred file, all the modifiers (⌘/⌃/⌥/fn/⇧ + ⏎) apply
the same way as with the main o search.
- If you select a starred search, Obsidian opens the search pane with the
respective query.
- This feature requires the Bookmark core
plugin being enabled.
Search recent files
or: Open recent Files
- All the modifiers (⌘/⌃/⌥/fn/⇧ + ⏎) apply the same way as with the main o
search.
- Only the 10 most recent files are displayed.
Search for attachments
oa: attachments
- Searches only for attachments (non-Markdown files) in your vault. ⏎ opens
the selected files in your default app. (Obsidian itself is not opened.)
- The modifiers ⌘/⌃/⌥ + ⏎ and the previewing (⇧ or ⌘y) work the same way
as with the main o search.
- ⇧ + ⏎, however, works differently: it opens the file in Obsidian, if
Obsidian is able to open
them. (If not,
the file simply is opened in your default app.)
Search all external links in the entire vault
oe: Search all external links in your entire vault
- ⏎: Opens the link in the browser.
- cmd + ⏎: Reveal the link in Obsidian.
- alt + ⏎: Copies the URL to the clipboard.
Extra features
Vault search as Alfred fallback
The main search (o) can also be used as Fallback Search for
Alfred,
basically a search that shows up when any Alfred search has no result.
Previewing notes via QuickLook
To avoid accidentally triggering the Quick Look feature, it is suggested you
turn off activating QuickLook via shift and use ⌘ + Y instead. You can do so
in the Alfred Settings under Features → Previews:
QLmarkdown and
Peek both
enable previewing of Markdown documents. Peek works with a wide range of other
file types than Markdown, but costs around €5. QLMarkdown is free, but only
works for Markdown and requires some minor setup.
Note-related features
Create a new note
on: Create a new note.
<!-- LTeX: enabled=true -->
- File name: Anything you type after the keyword on (for example, on
foobar) becomes the file name of the new note (for example, foobar.md).
(Note that the Filename Heading Sync
Plugin may
interfere with this.)
* When triggered via cmd + ⏎, the new note is created in a new tab.
- Content: You can select a template note to use in the workflow
configuration. Only {{title}} is supported as placeholder and is replaced
with the file name. Be aware that the template might be overridden by Folder
Templates from the Templater
plugin.
- Location: The new note is placed in the folder specified in the workflow
configuration. If the configuration is empty, it is placed in your vault root.
- 💡 There are various settings for creating new notes in the workflow
configuration.
Scratchpad
oo or triggered via hotkey: Append to your Scratchpad Note
Quickly add text to the note set in the workflow configuration. (This command is
basically a quicker version of the fn + ⏎ mode of the Alfred-based Quick
Switcher.)
- When using oo foobar, appends foobar to the note.
- Using just oo, you can also directly open the Scratchpad.
- Triggered via hotkey, appends the current selection.
- When you add #foobar to path of the scratchpad file in the workflow
configuration (for example, Inbox/Scratchpad-Note#Thoughts), the text is
appended to the section with the heading "foobar."
[!TIP] There are various settings for the scratchpad in the workflow configuration. You can, for instance, use Alfred's Dynamic Placeholders to prefix the current date and time, or use a dynamic path to a daily note.
Screenshot features

OCR screenshots
Triggered via Hotkey: Take an OCR Screenshot.
- Similar to the default Mac Hotkey ⌘ ⇧ + 4, you are able to select part
of your screen for a screenshot. However, instead of saving a screenshot, a
new note is created which contains the OCR'ed content of the selection.
- For best results, you should set the languages to be recognized in the
workflow settings, such as eng+deu for English and German. You can find out
the
code for your languages in this
list.
- 💡 There are various settings in the workflow configurations for
OCR-screenshots.
Requirement
For the OCR-Screenshot Feature, you need to install
Tesseract. If you
use Homebrew, you can do so with the following command:
bash
brew install tesseract tesseract-lang
[!TIP] The first time you use the OCR or image screenshot feature, you might need to give Alfred permission to record your screen. You can do so under the macOS system settings.
Image screenshot
Triggered via Hotkey: Take an image screenshot.
- Similar to the default Mac Hotkey ⌘ ⇧ + 4, you are able to select part
of your screen for a screenshot. The image is directly saved in your
vault with the file name Screenshot {date} {time}.png and the image is
embedded (![[image_file_name.png]]) in the note Images.md in your vault
root.
- The images are saved in {vault-path}/screenshots/ by default. You can
use the workflow configuration to specify a folder in your vault where to save
the images instead.
- If the file Images.md already exists in your vault root, any subsequent
screenshots are instead appended to this note. This is intended for taking
screenshots in quick succession, for instance during a live lecture or
presentation.
- 💡 There are various settings in the workflow configurations for screenshots.
Utility features
Workspace switcher
ow: Switch to a different workspace
- Displays a list of your workspaces. Select one to open the workspace.
- You can also manage your Workspaces from here, that is, saving, loading &
deleting a workspace.
- Unsurprisingly, this workflow requires the Workspaces Core
Plugin to be enabled.

Vault switcher
ov: Open Vaults in Obsidian, Finder, or the Terminal
- Select a Vault and press ⏎ to open it in Obsidian.
- ⌃ ⏎ opens the root of the selected vault in your default Terminal. You can
change the default terminal in the Alfred
Settings.
- ⌥ ⏎ opens the root in Finder.
- ⇧ ⏎ Control this vault with Alfred.
[!NOTE] The
Metadata Extractorand theAdvanced URIplugin need to be installed and enabled in every vault you want to control. TheMetadata Extractorneeds to be configured in every vault as well.
Back up your vault
obackup: Create a backup of your vault.
- Your whole vault is compressed into a zip file and then moved to the
location you specified in the workflow configuration.
- This command respects the maximum number of backups you have set (workflow
configuration max_number_of_bkps) to prevent taking up too much disk space.
When the number is reached, every new backup causes the oldest backup to be
deleted.
- The hidden folders .obsidian and .trash are included in the backup, the
.git folder is excluded.
- 💡 Advanced users: you can use the following AppleScript snippet to trigger a
backup. This is useful to create automated backups via
launchd, Cron
jobs, or Keyboard
Maestro.
```applescript tell application id "com.runningwithcrayons.Alfred" run trigger "backup-obsidian" in workflow "de.chris-grieser.shimmering-obsidian" end tell
pass 'no sound' as argument to turn off backup confirmation sound
```
[!WARNING] Please be aware that this is a simplistic backup solution. While I do not have any problems with it, this workflow comes without any warranties, as stated in the license. If you care about safety, please use a professional backup solution.
CSS files
ocss: Access your css files.
- Open a CSS snippet in your default text editor.
Open various folders
o.obsidian: The hidden.obsidianfolder located in your vault root is opened in Finder.o.trash: Open the hidden.trashfolder located in your vault root is opened in Finder. (Note that you have to selectMove to Obsidian trashin the Obsidian settings under theFiles & Linkstab before deleted files can be found here.)oapplicationsupport: Open Obsidian's Application Support folder.oplugins: The plugin folder in.obsidianis opened in Finder.othemes: The theme folder in.obsidianis opened in Finder.
Update plugins & metadata
oupdate: Update plugins and metadata used by this workflow
- Update your community plugins (and beta plugins installed via the BRAT
Plugin).
- Refresh the metadata used for this workflow manually.
Plugins, themes, and settings
Plugins
op: combined Search of community plugins and community themes.
- Press ⏎ to open the plugin's GitHub repository.
* Use ⌘ + ⏎ to open the plugin in Obsidian's Community Plugin Browser
instead.
* Press ⌥ + ⏎ to copy the plugin URI (obsidian://show-plugin?id=…) to
your clipboard.
* ⌘⌥ + ⏎: Copy the plugin link together with a description.
- Only plugins officially included in the community plugins are displayed —
plugins solely available via GitHub or still in review are not shown.
- Add plugin to the search query to only display plugin, for example, use op
focus plugin as search query to only display plugins with the term focus.
- The op search also considers the name of the plugin's author, meaning the
query op JaneDoe returns all plugins (and themes) authored by the user
JaneDoe.
Themes
op: Combined Search of community plugins and community themes.
- Press ⏎ to open the theme's GitHub repository in the browser.
* Use ⌘ + ⏎ to open the theme browser instead. (There are no separate
theme pages in Obsidian Theme Browser that can be opened.)
* Press ⌥ + ⏎ to copy the theme URI (obsidian://show-theme?id=…) to your
clipboard.
* ⌘⌥ + ⏎: Copy the plugin link together with a description.
* Use ⇧ or ⌘ + Y to open a Quick Look Preview of the theme's promo
screenshot. Press ⇧ or ⌘ + Y again to close the preview.
- Only themes officially included in the community themes are displayed — themes
solely available via GitHub or still in review are not shown.
- Add theme to the search query to only display themes, for instance use op
focus theme as search query to only display themes with the term focus.
- The op search also considers the name of the theme's author, meaning the
query op JaneDoe returns all themes (and plugins) authored by the user
JaneDoe.

Settings & local plugins
o,: Search and directly open specific setting tabs.
- The search includes Obsidian main settings, quick access to the plugin and
theme browser, as well as settings for plugins. Press ⏎ to open the
respective setting directly.
- ⌥ + ⏎ opens the local plugin folder in .obsidian/plugins/ in Finder.
- ⇧ + ⏎ enables/disables the plugin.
- ⚙️ For developers:
* ⌘ + ⏎ opens the local plugin folder in your default Terminal.
(You can change the default terminal in the Alfred
Settings.)
* ⌃ + ⏎ copies the plugin's ID. (Hold ⌃ to see the plugin's id.)
* fn + ⏎ runs git pull in the plugin's directory.
[!TIP]
o,refers to the⌘ ,shortcut used to open the settings.
Documentation searches
Official documentation
oh: Search the official Obsidian help
(documentation)
- This command mimics the search behavior on the official documentation site,
meaning that it also searches for headings inside individual documentation
pages.
* Press ⏎ to open in your default browser.
* Use ⌥ + ⏎ to copy the link to your clipboard.
Plugin developer documentation
odd: obsidian developer documentation Search
<!-- LTeX: enabled=true -->
Search the official Obsidian developer docs.
Cheatsheet
o: All notesoe: All external linksot: Tagsob: Bookmarked files/searchesor: Recent filesoa: Attachmentsoo: Append/open to scratchpadon: New noteow: Workspace switcherov: Vault switcheroh: Documentation searchop: Search plugins/themeso,:Search settings and installed pluginsocss: Open CSS snippets
Credits
- Thanks to @kometenstaub for developing the metadata extractor plugin, as this workflow is its main client.
- Also thanks to @Vinzent03 for his invaluable Advanced URI plugin, which enables Alfred to control various aspects of Obsidian.
- Most icons created by Freepik (Flaticon).
About the developer
In my day job, I am a sociologist studying the social mechanisms underlying the digital economy. For my PhD project, I investigate the governance of the app economy and how software ecosystems manage the tension between innovation and compatibility. If you are interested in this subject, feel free to get in touch.
[!IMPORTANT] For questions, bug reports, or feature requests for this workflow, please open a GitHub issue.
Owner
- Name: Chris Grieser
- Login: chrisgrieser
- Kind: user
- Location: Berlin, Germany
- Company: Technical University of Berlin
- Website: https://chris-grieser.de/
- Repositories: 189
- Profile: https://github.com/chrisgrieser
Researcher in sociology & software developer
GitHub Events
Total
- Create event: 13
- Commit comment event: 3
- Release event: 10
- Issues event: 31
- Watch event: 99
- Delete event: 5
- Issue comment event: 54
- Push event: 54
- Pull request event: 10
- Fork event: 3
Last Year
- Create event: 13
- Commit comment event: 3
- Release event: 10
- Issues event: 31
- Watch event: 99
- Delete event: 5
- Issue comment event: 54
- Push event: 54
- Pull request event: 10
- Fork event: 3
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| pseudometa | 7****r | 1,338 |
| 🤖 Automated GitHub Action | c****n@j****b | 6 |
| Teake Nutma | t****a@g****m | 5 |
| dependabot[bot] | 4****] | 2 |
| Henpai Hsu | D****r@g****m | 2 |
| Alexander Mazurov | a****v@g****m | 1 |
| Christian Fratta | c****a@g****m | 1 |
| Christy | 1****y | 1 |
| Johann Richard | 1****d | 1 |
| Martijn de Boer | m****n@m****l | 1 |
| Shinn Lok | s****k@g****m | 1 |
| Vítor Galvão | i****o@v****m | 1 |
| biorz | e****z@g****m | 1 |
| hann-solo | 5****o | 1 |
| kometenstaub | 8****b | 1 |
| kwyuan | j****e@o****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 109
- Total pull requests: 18
- Average time to close issues: 25 days
- Average time to close pull requests: about 3 hours
- Total issue authors: 73
- Total pull request authors: 11
- Average comments per issue: 3.48
- Average comments per pull request: 1.5
- Merged pull requests: 14
- Bot issues: 0
- Bot pull requests: 5
Past Year
- Issues: 19
- Pull requests: 7
- Average time to close issues: about 10 hours
- Average time to close pull requests: about 2 hours
- Issue authors: 16
- Pull request authors: 2
- Average comments per issue: 2.63
- Average comments per pull request: 0.43
- Merged pull requests: 5
- Bot issues: 0
- Bot pull requests: 5
Top Authors
Issue Authors
- posedonius (7)
- wenlzhang (6)
- seishonagon (6)
- chrisgrieser (4)
- nwehrle (4)
- Miaoyifei-mz (3)
- raphaelhuleux (3)
- mjknght (3)
- n3bulous (2)
- solidgonk (2)
- jamie9090 (2)
- MDRUK (2)
- kenanmike (2)
- shunnkou (2)
- derekvan (2)
Pull Request Authors
- dependabot[bot] (6)
- teake (3)
- paschalis-mpeis (2)
- seishonagon (1)
- johannrichard (1)
- Konfido (1)
- shinnlok (1)
- mazurov (1)
- yimingli (1)
- macrospecter (1)
- MartijnDB (1)
- christyray (1)
- hnsol (1)
- EquineOntology (1)
- biorz (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v2 composite
- actions/create-release v1 composite
- actions/upload-release-asset v1 composite
