Is the site up, is the certificate still valid, did the page change?
DeskUptime answers those three questions from your own computer. A free command-line tool for one-off checks and CI, and a small desktop app that keeps checking in the background. No hosted dashboard, no monthly fee. Your URL list and check results stay on your machine; the Pro licence activation checks in over HTTPS when you enter the key.
The check needs nothing installed. To keep watching a site, that is the CLI and the desktop app. The CLI is free and MIT-licensed; the desktop app is part of Pro: 19 USD one-time, 3 machines. See what Pro adds, side by side.How it works
One command, no install, no account:
$ npx github:mahope/deskuptime check https://example.com https://cloudflare.com Checking 2 URL(s)... ok https://example.com Status: 200 OK Response: 85 ms SSL: expires in 63 days Content: 559 bytes, sha256 unchanged ok https://cloudflare.com Status: 200 OK Response: 312 ms SSL: expires in 42 days Content: 1,316,377 bytes
Add watch to keep checking on an interval, and it prints a line each time something changes:
deskuptime watch https://example.com --interval 300
- Uptime and response time
- HTTP status, redirect chain and how long the response took. A non-2xx status or a timeout is reported as down.
- SSL certificate
- Days until expiry, issuer, protocol version. The default warning threshold is 14 days.
- Content changes
- A SHA-256 hash of the response body is compared with the previous run. Useful for spotting a broken deploy, an injected script or a defaced page.
- Exit codes and JSON for CI
- Exit 0 when everything passes, 2 when a site is down.
--jsongives machine-readable output,watch --onceruns a single pass for cron. Use it as a post-deploy smoke test or on a schedule in GitHub Actions.
Who it is for
Freelancers and small agencies who look after a handful of client sites and do not want another subscription for it. Developers who want a smoke test after every deploy. Anyone who has found out from a customer that a certificate expired.
It is not a replacement for a distributed monitoring service with a status page and on-call rotation. Checks run from the machine you run them on; if that machine is asleep, nothing is checked. That is the trade-off for keeping it local and free of running costs.
Install the CLI
brew tap mahope/tap && brew install deskuptime # macOS / Linux
npx github:mahope/deskuptime check https://your-site.com # no install, needs Node 18+
Tagged tarballs are on GitHub Releases. In GitHub Actions, use the mahope/deskuptime action with a list of URLs; the job fails when a site is down and a status table lands in the job summary. There is a walkthrough for the CI setup.
Desktop app
A small Tauri app for macOS and Windows that lives in the system tray and runs the same checks on a schedule. Notifications when a site goes down, a certificate approaches expiry or the content hash changes. Current version 0.2.7.
The app is closed-source and part of DeskUptime Pro. You can download the installer here, and it asks for the licence key from your Stripe receipt the first time you start it. Pro is 19 USD once.
- macOS, Apple Siliconzip, aarch64
- macOS, Intelzip, x86_64
- Windows 10 and laterNSIS installer
If macOS or Windows warns about an unidentified developer on first launch, that is because the build is not code-signed through their paid programmes. Right-click and choose Open on macOS; choose "More info" then "Run anyway" on Windows.
Free web tools
Two checkers you can use without installing anything. They run on this site, in your browser, and you get the result on the spot.
- Bulk URL checker — paste up to 10 URLs and see uptime, SSL and response time for all of them in one pass.
- Security headers checker — grade any site's HTTP security headers and see what to fix.
The check at the top of this page answers the same two questions for a single URL. More in all tools.
Free and Pro
| Plan | Free | DeskUptime Pro |
|---|---|---|
| What you get |
|
|
| Price | $0no licence key needed | $19 once |
One licence covers 3 machines.
Alerts are desktop notifications and webhooks — no SMS, email or phone
CLI
Free
MIT-licensed. One-off checks have no limits; continuous watch mode covers up to three sites.
Free without a licence key: one-off checks, SSL and content checks, and JSON output for scripts and CI.
Desktop Pro
19 USD one-time, 3 machines, all 1.x updates
Gives you the desktop app for macOS and Windows, removes the three-site limit, lets the CLI poll every 30 seconds instead of every 60, adds webhook alerts and a client-ready report in Markdown and JSON. You get a licence key and pay only once. The desktop app asks for the key the first time you start it. In version 0.2.7 that check still goes to the app's previous licence provider, so the Pro features inside the app do not unlock yet.
Buy DeskUptime Pro — 19 USD once
Secure checkout via Stripe. Your licence key arrives by email and on the thank-you page. The free version stays complete and MIT-licensed, and nothing in it expires.
Questions
Can I check a site without installing anything?
Yes — the check at the top of this page fetches the URL from our server and shows the status, the redirect count, the live certificate and the security headers. That is one check at one moment. It cannot tell you whether the site was down earlier, or will be later, and it cannot compare the page against the previous run, so it is not a monitoring service. Watching is what the CLI and the desktop app do.
What happens when my computer is off or asleep?
Nothing is checked until it wakes up. DeskUptime runs where you run it. If you need checks that continue while your laptop is closed, run the CLI on a server or in a scheduled GitHub Actions workflow — both are free.
Does it send my URLs anywhere?
Your URL list and check results stay on your machine and are not uploaded to a central monitoring service. The Pro desktop app sends the licence key, a stable device ID and the product identifier deskuptime-pro to the app's previous licence provider over HTTPS when you enter the key, and receives the licence status. This site runs a separate anonymous page-view counter.
How is this different from UptimeRobot or Pingdom?
Those check from many locations around the clock and charge monthly for it. DeskUptime checks from one place — yours — and costs nothing to run. For a personal site or a few client sites that is usually enough. For a service with an SLA, it is not.
Can I check many sites at once?
Yes. Pass any number of URLs to check. Watch mode is limited to three sites without a Pro key. The free web checkers do a bulk URL check and a security-headers check without installing anything.
Is there a Linux desktop build?
Not yet. The CLI runs on Linux; the desktop app is currently built for macOS and Windows only. It is a Tauri app, so a Linux build is possible if there is demand — open an issue on GitHub.
Who makes this
DeskUptime is built by Mads Holst Jensen, an independent developer in Odense, Denmark, working as mahoje.dk. It came out of looking after client WordPress sites and wanting a check that did not need another account. The engine and the CLI are on GitHub as MIT-licensed source. The desktop app is closed-source and ships with Pro.
Related reading: checking SSL certificate expiry, website monitoring from the terminal, post-deploy smoke tests for static sites.