is github down (again) (maybe). booga check, you no doomscroll.
GitHub no work? maybe you. maybe GitHub. booga look two places same time:
- www.githubstatus.com - what GitHub admit to.
- Downdetector - what everyone else screaming about, usually first.
no install, no terminal. page poll itself, you stare:
or pop it from the cli:
github-up web
# or
github-up siterun direct, no install:
bunx github-up status
# or
npx -y github-up statusor keep forever:
bun install -g github-up
# or
npm install -g github-upfresh builds (every commit)
every push + PR get published to pkg.pr.new. bot drop the url in the PR. run any sha:
bunx https://pkg.pr.new/kjanat/github-up@<sha> status # or npx / pnpxstatus give indicator, lil description, details from both place.
github-up statusjson for scripts and little monitoring guys.
github-up status --jsonexit code always tell truth (see the numbers), output or not.
slap -q/--quiet in CI when you only care about number.
github-up status -qdefault check uses GitHub Status and Downdetector. use subcommand or --source;
--source eat commas and repeats. Downdetector may report unavailable if
Cloudflare challenge automated checks.
# subcommand
github-up github
github-up downdetector
# flag
github-up status --source github
github-up status -s downdetector
# many
github-up status --source github,downdetector
github-up status -s github -s downdetectoronly care about one thing? every GitHub component got shorthand flag.
--component eat commas and repeats too, same as --source.
# is Actions cooked?
github-up status --actions
# many worry
github-up status --pr --pages
github-up github --component git,apifull set: --actions, --api, --codespaces, --copilot, --git,
--issue/--issues, --packages, --pages, --pr/--prs, --webhooks.
filter look at incident + component names, and severity come from what
actually matched: degraded = exit 1, real outage = exit 2, nothing
mention your thing = exit 0. broad incident like "multiple GitHub services"
count for whatever you asked. downdetector no know components; its row pass
through whole.
browser-safe door, GitHub Status only (downdetector need real chromium, no work in browser).
import { checkGitHub } from "github-up/browser";
const result = await checkGitHub();
if (result.kind === "ok") {
console.log(result.summary.status.description);
console.log(result.summary.status.indicator);
console.log(result.summary.incidents);
console.log(result.summary.components);
} else {
console.error(result.reason);
}exit code = how bad. set every run (not just --quiet), worst source win.
| Code | Vibe | what happen |
|---|---|---|
| 0 | all good | everything work. go back to your life. |
| 1 | meh | minor thing, or GitHub got live incident. |
| 2 | cooked | major/critical outage, or downdetector say GitHub down. |
| 21 | who knows | every source booga try was unreachable. |
source booga no reach = unknown, NOT down. 21 only when EVERY source dead, so
one flaky downdetector scrape no ruin your day.
booga no write flag parser. booga no write --help, tab-complete, json mode,
exit codes. all that dreamcli. booga just point at GitHub and shitpost.
you want make own CLI look this clean? -> dreamcli
bun install # setup
bun run build # build
bun test # testMIT © 2026 Kaj Kowalski