Search hundreds of documentation sites from DevDocs and other sources via Alfred.
![Showcase](https://private-user-images.githubusercontent.com/73286100/324251070-5113c565-4f1a-49a8-842c-271255ee08f2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1NTQ5NzEsIm5iZiI6MTcxOTU1NDY3MSwicGF0aCI6Ii83MzI4NjEwMC8zMjQyNTEwNzAtNTExM2M1NjUtNGYxYS00OWE4LTg0MmMtMjcxMjU1ZWUwOGYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI4VDA2MDQzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFiMDllZWM4MTFjNjZmNDFhOTcyYjZkN2MwNzc5MDI3MjI2MjU0OTNlMjA0MzIwMzU0MmRkMjExNmZkODI3ODUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.hL8s4IwIopRl7AYGTDE76CaePq8DCF4lBfM56-cA3Lk)
➡️ Download the latest release.
Enable the devdocs you want to use in the workflow configuration. The
enabled devdocs are searched by using the name as keyword, for example haskell foobar
to search the Haskell DevDocs for "foobar."
A few common languages have short-hands noted in the popup selection, such as
js
for JavaScript. In this case, you use js foobar
to search instead.
- ⏎: Open the documentation site.
- ⌥⏎: Copy the URL of the documentation site to the clipboard.
-
In the workflow configuration, go to the
pinned devdocs versions
section. (Depending on your screen height, you might need to scroll down.) -
The replacements take the form
alfred_keyword:pinned_version
, one version change per line. For example to pin thenode
andpython
versions:node:node~18_lts
py:python~3.11
-
The versions available are listed under the key
slug
in this json file. -
Afterward, reload the caches via the Alfred keyword
:docs-reload
once to ensure the new versions are used.
Search icons for specific documentation sites are provided by adding a file to
the directory ./devdocs/icons/{keyword}.png
. PRs are welcome.
biome
: biome docs & rulesruff
: ruff docs & rulessc
: shellcheck wikipandoc
: pandoc user manualman
: man pages at mankier.comwt
: WezTerm docscani
: caniuse.comjust
: just (task runner) docs
color
: named CSS colorskeycode
: macOS keycodes- ⏎: Copy keycode
- ⌥⏎: Copy AppleScript
appid
: app-id of installed macOS appswin
: window information for the frontmost apphttp
: HTTP status codesas
: AppleScript Dictionaries of installed appssound
: macOS System Sounds- ⏎: Preview (technically: Pre-listen)
- ⌥⏎: Copy sound path
- Get the Uniform Type Identifier (UTI) of a selected file via the Universal Action.
In case of a recent change to a documentation site, you can manually trigger
refreshing the cache via the Alfred keyword :docs-reload
.
- Remote: Twice per month, a GitHub
Action
is run that checks for devdocs updates. If updates are found, the
keyword-slug-map
available on this GitHub remote is updated. The
info.plist
is also updated in case not only a new version, but an entirely new documentation site becomes available. - Local: Every week, the locally available workflow fetches an update from
the
keymap-slug-map
and theinfo.plist
files from the GitHub remote. The update to theinfo.plist
is required, so that newly available documentation sites also show up in the dropdown menus of the workflow configuration. - This means that any devdocs update is available to the user at most after
three weeks. (The local cache can be manually updated via the Alfred keyword
via
:docs-reload
to remove the seven-day delay.) - The purpose of this setup is to fully automate the process of making devdocs updates available to the user without requiring manual action. Furthermore, no separate release of the workflow is required.
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.