Mahope tools: EUComply Clean Copy DeskUptime Transmute BugBottle All tools

Three checks you can run right now, without installing anything

Every tool on this page runs in your browser against our own server. No account, no key, no install, and nothing about the URLs you paste is stored. Each one answers a question about one moment — which is exactly what a check is, and exactly what it is not.

None of these watch anything over time. That is the CLI's watch mode and the desktop app, and the desktop app is part of DeskUptime Pro.

Buy DeskUptime Pro — 19 USD once, 3 machines

The three tools

One site, right now

Paste one URL. We fetch it from our server — not your browser, so we see the site the way the rest of the world does — and answer with the status it replied, how many redirects it took, the live TLS certificate with the days left on it, and which of the eight security headers came back.

About a second. Nothing is stored.

Up to 10 URLs at once

Paste up to ten URLs, one per line, and get HTTP status, response time, redirect count and SSL expiry for every one of them in a single pass. Built for the moment after a deploy, when you want to know whether five client sites are still answering — not one at a time.

npx github:mahope/deskuptime check \
  https://a.example https://b.example

Security headers, graded

Paste one URL and get an A–F grade plus every security header that came back or did not: Content-Security-Policy, HSTS, clickjacking protection, referrer policy and the rest, each with the header value to paste into your server config.

The same eight headers the single-site check reports, read one at a time instead of ten.

Free and Pro, side by side

Free and DeskUptime Pro, side by side
PlanFreeDeskUptime Pro
What you get
  • One-off checks — status, redirects, the live certificate and the eight security headers
  • SSL and content checks — SSL expiry on every check, content hashing in watch mode
  • Up to 10 URLs in one pass — status, response time, redirects and SSL expiry
  • A–F grade on the security headers, with every header value to paste in
  • JSON output from every check, plus a GitHub Action that puts a status table in the job summary
  • Desktop app that runs in the background, with notifications and webhook alerts
  • Unlimited sites, polling as often as every 30 seconds
  • A client-ready report in Markdown and JSON you can send to a client
Price$0no licence key needed$19 once

One licence covers 3 machines.

Alerts are desktop notifications and webhooks — no SMS, email or phone

The three checks on this page are free and always will be. What costs money is watching a site over time, which is the closed-source desktop app.

What none of these three can do

They answer one question at one moment. They cannot tell you whether a site was down twenty minutes ago and is fine now, whether it will be down tomorrow, or whether the content changed since you last looked — because there is no previous run to compare against. A check that cannot remember is not monitoring.

Watching is the other half of DeskUptime. The free CLI's watch mode re-checks on an interval, hashes the response body and tells you when it changes; it covers up to three sites without a key. The desktop app does the same in the background and adds unlimited sites, polling as often as every 30 seconds, notifications, webhook alerts and a client-ready report you can hand a client — and it is the one part that is paid, because it is closed source. See free and Pro side by side.

Running the same checks without a browser

All three answers are the same answers the CLI gives, so anything you paste into a form here you can also run from a terminal, on a schedule, or in CI — where the exit code fails the build instead of waiting for someone to read a page.

brew tap mahope/tap && brew install deskuptime   # macOS / Linux
npx github:mahope/deskuptime check https://your-site.com   # no install, needs Node 18+

deskuptime check https://your-site.com --json   # machine-readable
deskuptime watch https://your-site.com --interval 300   # keep checking

MIT-licensed source, exit code 2 when a site is down, and a GitHub Action that puts a status table in the job summary. The install page has the details.