
Like dig, but for the web. Comprehensive website intelligence and metadata extraction for Raycast.
Digger surfaces contextual information about any website without needing to open developer tools. Enter a URL and instantly see metadata, SEO signals, security info, DNS records, and more.
⌘ ,). The first two are on by default:| Option | Digs |
|---|---|
| Use Selected Text | A URL in the text selected in the frontmost app |
| Use Clipboard | A URL on the clipboard |
| Use Current Browser Tab | The active browser tab (macOS; requires the Raycast Browser Extension) |
Both are off by default; enable them in Raycast's Extensions settings. When none of these finds a URL, Digger says what each place held and lets you type one. If a dig fails, the search bar shows the URL that failed: correct it and press ↵ to dig again.
| macOS | Windows | Action |
|---|---|---|
↑ / ↓ | ↑ / ↓ | Navigate between sections |
⌘ R | Ctrl R | Refresh data |
⌘ ⇧ C | Ctrl ⇧ C | Copy URL |
⌘ ⇧ J | Ctrl ⇧ J | Copy as JSON |
⌘ ⇧ M | Ctrl ⇧ M | Copy as Markdown |
⌘ O | Ctrl O | Open in browser |
⌘ ⇧ W | Ctrl ⇧ W | Open in Wayback Machine |
⌘ ⇧ G | Ctrl ⇧ G | View on Google |
In the HTTP Headers list, ⌘ ⇧ C copies a header's value and ⌘ ⌥ C copies its
name. Press ⌘ K on any section to see every action available there.
Digger is useful for:
Digger fetches websites directly from your machine. No data is sent to third-party servers except:
Debug Logging (off by default, in preferences) writes detailed diagnostics to the
Raycast console. Those logs stay on your machine — nothing is uploaded — and credentials
are masked automatically: values under names like token, key, or api_key, and
Bearer tokens, are replaced with *** wherever they appear, including inside logged
objects. Masking is pattern-based, so a sensitive value under an unremarkable parameter
name — ?sid=, ?u=, a document id — can still appear in full.
Strict Redaction (also in preferences, off by default) closes that gap: every URL query
string and fragment is masked to ?*** / #***, including values no pattern can recognize.
It applies to lines written after you enable it — it cannot clean up console output that
already exists — so turn it on first, reproduce the problem, then share the new lines. It is off by default because the query string
is frequently the thing you are trying to diagnose.
Some websites use Cloudflare, Akamai, or similar services that may block or challenge automated requests. Digger will indicate when this happens.
Contributions are welcome! Please:
For bugs or feature requests, open an issue.
Built by Chris Messina and his robot helpers.
Uses:
MIT License — see LICENSE for details.
Get comprehensive website intelligence and metadata
Dig the website in the active browser tab (macOS, needs the browser extension)
Dig the URL on the clipboard
lastmod date such as 2026-08-07 no longer shows as the day before in
time zones west of UTC.<img>, <object>, favicons, and
in-page CSS url(). Copy as SVG, Copy as PNG on macOS, or Export as SVG./.well-known/ from the IANA registry
and reports which ones a site actually publishes, with the contents one keystroke away.
A directory cannot be listed, so each path is asked for individually and judged by its
opening bytes rather than its status code: a single-page app answers 200 to everything.theme-color per media query,
color-scheme, the data-theme family, and the CSS custom properties from its
stylesheets. oklch(), lab(), color(display-p3 …) and var() chains are all
resolved so each one shows a real swatch, viewable as a list or a color grid.Accept-Language, so sites that
negotiate picked for it — one returned Arabic for an English page, and every field read
from that page was the wrong translation.sitemap.xml reported as malformed when the site simply has none. A 200 serving an HTML
error page now reads as absent, and a 406 as unavailable, instead of "could not parse".......ore instead of "…and 9 more", in Resources,
HTTP Headers, Discoverability, and Data Feeds.�
preventing the sitemap view and its export actions from opening.localhost, a private
network address, or a cloud metadata endpoint and have Digger request it. They are also
now read with a hard byte cap rather than buffered in full./.well-known/host-meta) now appears under Data Feeds & API. It was being fetched and cached on every dig but rendered nowhere, so the result was invisible even when it succeeded.PAYMENT-REQUIRED header, PAYMENT-RESPONSE header)⌘ ⇧ M)extractUrl() to handle trailing punctuation (e.g., https://example.com. → https://example.com)example.com are now preferred over embedded URLs in mixed inputnormalizeUrl() now properly lowercases scheme and hostname via URL parsing