Download Docket for Mac
Docket is $349, paid once, for macOS 12 or later on Apple Silicon. 22.0 MB. No subscription, no crawl credits, no per-seat pricing — audit as many sites as you like, for as long as you like. There is no account to create and no telemetry. Activating your licence checks the key with our payment provider once, and about once a day after that; nothing about the sites you audit is ever sent anywhere.
v1.3.78 needs a licence key. The price is $349, paid once — the key arrives with your receipt and covers up to three machines. Earlier versions ran without one; since Docket became a licensed product an audit asks for the key, and the app has a field to paste it into.
Download Docket v1.3.78 for Mac
Apple Silicon · macOS 12+ · 22.0 MB · all releases
What it will crawl
No page ceiling. The default is 200 pages to a depth of 5 clicks, and setting the page count to 0 removes the limit entirely.
That is worth stating precisely, because "unlimited" on its own is a promise no program keeps. What still stops a crawl is the 15-minute wall clock, the frontier running dry, and — on a genuinely enormous site — your machine's memory, because every page is held in one list. A crawl that hits the clock stops and tells you it stopped, with everything it found so far, rather than pretending it finished.
If your site is larger than that, say so plainly to yourself and use Screaming Frog — it crawls without a ceiling and that is a real reason to pick it. Docket is built to read a site closely rather than to survey one at that scale. These numbers are generated from the shipped build, not typed here, so they cannot drift from what the app does.
What it costs over three years
$349 once, against a subscription. The arithmetic, from the prices on the comparison pages:
| Tool | Cheapest tier | Three years |
|---|---|---|
| Docket | $349 once | $349 |
| Sitebulb | $180/yr | $540 |
| Screaming Frog | $279/yr | $837 |
| Ahrefs Site Audit | $1,290/yr | $3,870 |
| Semrush Site Audit | $1,668/yr billed monthly | $5,004 billed monthly |
Billed monthly. Semrush Site Audit quotes a monthly price and offers a discount for paying yearly, and the figure above is twelve monthly payments — what you pay without committing to a year. Their annual prices are lower. Where we have read one it is on that tool's comparison page — Semrush publishes $117.33 a month billed annually — and where we have not, we leave it out rather than work it out: a figure derived from an advertised “save up to” is a guess wearing a discount, and a competitor’s price is not ours to estimate.
Checked against the vendor's own pricing page: Ahrefs Site Audit checked 2026-09-09 (source); CrawlRaven checked 2026-09-16 (source); Google Lighthouse checked 2026-08-10 (source); JetOctopus checked 2026-09-16 (source); Otterly.AI checked 2026-08-10 (source); Profound checked 2026-09-16 (source); SE Ranking checked 2026-09-08 (source); SEOptimer checked 2026-09-16 (source); Screaming Frog checked 2026-09-16 (source); Scrutiny checked 2026-08-15 (source); Semrush Site Audit checked 2026-09-09 (source); Sitebulb checked 2026-09-08 (source); Sitechecker checked 2026-09-16 (source); Ubersuggest checked 2026-08-10 (source); crawler.sh checked 2026-09-16 (source). Prices change; check before you buy, and tell us if one here is wrong.
$349 once is one year of the cheapest serious desktop subscription, or fifteen months of Screaming Frog — and nothing after that. From month sixteen Docket is the cheaper tool and stays cheaper every month afterwards. That is the whole pricing argument and it does not need help: the tools above are not overpriced for what they do, they are simply rented rather than owned.
Checking what you downloaded
The Mac app is signed with a Developer ID and notarised by Apple, so macOS verifies it with Apple before it opens and you need do nothing. The Linux tarball has no equivalent — it is a plain archive from a URL — so every release publishes SHA256SUMS covering all of its artifacts:
curl -LO https://github.com/mattkerr09/docket-site/releases/download/v1.3.78/docket-1.3.78-linux-x86_64.tar.gz
curl -LO https://github.com/mattkerr09/docket-site/releases/download/v1.3.78/SHA256SUMS
grep linux SHA256SUMS | shasum -a 256 -c -
Be clear about what that proves and what it does not. It proves the file arrived intact and is the one this release published. It does not prove authorship: the checksums sit on the same release as the tarball, so anyone able to replace one could replace the other. Apple's notarisation of the Mac build is a genuinely stronger guarantee, and pretending the two are equivalent would be exactly the kind of claim this tool exists to catch.
Opening it
Double-click it. Docket is signed with a Developer ID and notarised by Apple, so macOS opens it without a security warning and without any of the right-click or Terminal workarounds that unsigned software needs.
What happens on first launch
Docket opens, starts its local audit engine, and shows a single field. Type a domain, press Run audit, and watch it crawl. There is no onboarding, no project setup and no plan selection, because none of those are necessary for the thing you came to do.
The first launch takes a few seconds longer than later ones. It used to say "while the engine unpacks itself" — that was an explanation nobody had measured, and timing the CLI out of the shipped bundle put its startup at a fifth of a second with no unpacking step to be found. The delay is real and the reason given for it was invented, so the reason is gone.
There is no security prompt to get past: the app is notarised, so macOS verifies it with Apple and opens it.
The command line
The same engine ships as a CLI inside the app bundle. It is the whole product, not a cut-down version, and it has six subcommands.
docket audit — the full audit
docket audit example.com
docket audit example.com -o audit.pdf -n 500
docket audit example.com --render 10 # run each page's JavaScript first
docket audit example.com --offline # no third-party calls at all
docket audit example.com -f json --no-pages | jq '.score.overall'
It exits with status 2 when it finds a critical issue, so it can gate a deployment. Running
it in CI against a staging URL fails the build if someone ships a noindex, which
is a mistake that otherwise gets found weeks later by a traffic graph.
There is a full walkthrough for that on running Docket in a deploy pipeline — where the binary lives inside the bundle, a working GitHub Actions job, how long an audit actually takes, and what a macOS runner costs you per pull request.
--fail-on sets the bar. The default is critical, deliberately:
almost every real site has HIGH findings, and a gate that fails on ordinary work gets wrapped
in || true within a month.
docket audit https://staging.example.com --fail-on critical # default
docket audit https://staging.example.com --fail-on high
docket audit https://staging.example.com --fail-on never # report, never fail
Three exit codes, and they are a contract — a pipeline depends on them not moving:
| Code | Meaning |
|---|---|
0 | The audit ran and found nothing at or above the threshold |
1 | Docket could not run — bad arguments or a crash. A defect in the tool, not in your site |
2 | The audit ran and the result is bad |
A site that does not answer is 2, not 1: Docket ran fine, the site
was not there, and a staging URL that does not respond should stop a deploy. Keeping those
two apart matters more than it sounds — "your site is broken" and "the tool is broken" need
opposite responses from whoever reads the log, and a gate that confuses them stops being
trusted.
That case took a real fix. Auditing a domain that does not resolve used to report three critical issues: that robots.txt blocked Googlebot, that the site was not served over HTTPS, and that no pages could be crawled. Only the last was true — there was no robots.txt and nothing was served, because there was no site. A DNS blip in a pipeline would have failed the build with two invented criticals and sent somebody hunting for a robots.txt problem that never existed. When nothing at all can be read, Docket now reports that and stops.
docket diff — what this deploy broke
docket diff https://example.com https://staging.example.com
docket diff https://example.com https://staging.example.com --fail-on medium
Audits both with identical settings and reports what the second one changed. This is the better deploy gate, and the reason is arithmetic: every real site carries standing findings, so a severity threshold tight enough to catch a regression fails every build, and one loose enough to pass catches nothing. A deploy is only answerable for what it changed.
Regressions are new findings and ones that got worse — a check that was MEDIUM
before and is HIGH now did not appear or disappear, and it is exactly what you want to know.
Improvements never fail a build, however many there are. The default threshold is
high rather than critical, deliberately: a standing HIGH finding is
somebody's backlog, and a HIGH finding that arrived with this deploy is this deploy's fault.
If the two crawls reach very different numbers of pages, Docket refuses to compare them and
exits 1 — not 0. A build that goes green because the comparison was
impossible is worse than one that fails, because the team believes the gate ran.
docket logs — what Googlebot actually fetched
docket logs access.log
docket logs access.log.gz --url https://example.com
docket logs access.log --verify # confirm the bot really was Google
A crawl tells you what a search engine could reach. A server log tells you what it
did reach, how often, and what it wasted requests on. Point Docket at a Common or Combined
format access log and it reports the response codes Google actually received, the paths it
fetched most, and how much of its budget went on redirects and errors. Add
--url and it crawls the site too, then shows the two ways the sets differ: pages
you link to that Google did not fetch in that period, and pages Google fetches that the crawl
never found — orphans, retired URLs still being retried, or sitemap-only pages.
A user-agent is a header anybody can send, and scrapers claim to be
Googlebot constantly. Everything is reported as "claimed" until you pass --verify,
which does the reverse-DNS-then-forward-lookup check
Google
documents. It is off by default because it is a DNS round trip per distinct IP. Lines that
are not in a recognised format are counted and reported rather than skipped, because a parser
that quietly drops a third of a file produces confident numbers about the rest.
Screaming Frog sells a dedicated Log File Analyser as a separate product at $139 per year, free up to 1,000 log events. It is a much deeper tool than this — a real interface, saved projects, and far more than a set difference against one crawl. What Docket gives you is the comparison that answers "is Google spending its time on my important pages", included in the one-time price rather than as a second subscription.
docket attack — where a competitor's authority does not protect them
docket attack yoursite.com theircompetitor.com
docket attack yoursite.com theirs.com --demand "emergency plumber"
Audits both sites, compares their link-graph authority, and returns the openings ranked by
how winnable they are rather than how large they are. An older, better-linked competitor is
unbeatable on the pages it has held for years and beatable on the ones it never wrote — and
that distinction is the only part of a competitive analysis that changes what you do on
Monday. Add --demand and it pulls what people actually search for from Google's
public autocomplete, then reports which of those questions neither site answers.
docket backlinks — authority without a subscription
docket backlinks yoursite.com competitor.com
docket backlinks yoursite.com --referring
Domain authority from Common Crawl's public hyperlink graph, which covers 117,963,409
domains. --referring streams the 9.8 GB graph to list the domains linking in;
it takes minutes and writes nothing to disk.
docket checks and docket serve
checks prints every check the engine runs with its lane and severity.
serve runs the local API the desktop app talks to, on 127.0.0.1, which is also
how you would drive Docket from your own scripts.
Requirements and limits
- macOS 12 or later, Apple Silicon for the desktop app. There is no Intel or Windows build.
- Linux x86_64 for the command line.
Download the 17.0 MB tarball — needs
glibc 2.30 or newer — check yours with
ldd --version. That floor is measured from the shipped binary rather than assumed from the machine that built it: the launcher itself only needs 2.14, and the bundled Python runtime is what raises it to 2.30. It is the same engine and the same checks, verified running in a clean container. Two things it is not: there is no Linux desktop app, only the CLI, and--renderdoes not work there — the renderer is a WebKit helper that exists only on macOS, so on Linux Docket reports that rendering was requested and did not happen rather than quietly skipping it. - An internet connection to the site you are auditing. Nothing else.
- Crawls are bounded by page count, depth, wall-clock time and response size. The defaults are deliberately polite; you can raise them.
What happens to your data
The crawl and every check run on your machine, and Docket identifies itself honestly in its user-agent rather than impersonating Googlebot — a spoofed user-agent gets a different, sometimes cloaked response, which would make every finding a lie.
Five optional checks do reach out, and it is worth being exact rather than reassuring:
Docket asks your own server what it tells AI crawlers, refreshes its crawler knowledge file
from this site, checks whether the email addresses you publish can actually receive mail, and
fetches Core Web Vitals from Google PageSpeed Insights. --offline, or the offline
tick in the desktop app, turns all five off and the audit still completes — the report then
says which checks did not run rather than quietly scoring them.
Docket also asks docketseo.app once at launch whether a newer version exists, and tells you
if there is one. It sends nothing but the request itself, it never installs anything without
you saying yes, and Check for Updates… in the Docket menu does the same thing on
demand. Said here because a product that sells not phoning home should list the one call it
makes on its own.
What never happens: no telemetry, no account, no analytics on you, and nothing about your site is sent anywhere for us to see. This page made a stronger, absolute claim until 2026-08-10; it was not true while those four checks were on by default, and it has been corrected rather than quietly dropped.
Audit history is stored in ~/.docket/ as plain JSON. Delete the folder and it
is gone.