Live at: kb.tejjo.net · Code: github.com/tejjo-gadiraju/kb-lookup
Every Patch Tuesday goes the same way: a list of KB numbers to check, and a bunch of browser tabs open trying to figure out what each one actually does. One tab for the KB article, another for the Update Catalog, another to check if a CVE is actually being exploited or just theoretical. It adds up to a lot of clicking before you've made a single decision.
So I built a tool that puts all of that in one place.
What it does
- Type in a KB number, get the release notes, what OS it affects, known issues, and whether it needs a restart.
- Paste a whole batch of KB numbers and get a quick view of which ones are high-risk and which just need a normal rollout.
- Paste a CVE number (the kind you get from a vulnerability scan) and find out which KB actually fixes it.
- Browse a whole month at once, sorted by severity, filtered down to just the systems I run.
How it's built
It's a small Python app. Some of the data comes from scraping Microsoft's KB pages, since they don't offer a real API for that. The CVE and severity data comes from a proper structured API Microsoft does publish, which is far more reliable.
It runs in Docker on my own server, behind the same reverse proxy I already use for other things I self-host.
The honest part
I'm a systems engineer, not a developer, and I didn't write this code by hand — I built it with Claude. What I actually did was figure out what problem was worth solving, decide what the tool needed to do, make the calls on tradeoffs, and work through everything involved in getting it actually running on the internet: DNS, Docker networking, certificates, all the stuff that shows up once something has to work for real and not just on a laptop.
That's the part I'd want to talk about more than the code itself — the decisions, not the syntax.
What's next
Thinking about adding a way to trace whether an older patch has since been replaced by something newer, and maybe pulling in exploited-in-the-wild data on top of the severity scores it already shows.