USB-C hides a dozen standards. The fix is to show you none of them.
Cable Check is a three-tap decision tree for a drawer of unlabeled USB-C cables. It never names a spec. It just tells you the mark to look for near the plug.
Pull two black USB-C cables out of a drawer. They have the same plug, the same jacket, the
same length. One will charge a laptop at 100W and drive a 4K monitor. The other trickle-charges
a phone and nothing else. Nothing on the outside tells you which is which, unless you know to
squint at 4pt type near the connector for a lightning bolt, a tiny 5A, or the letters SS10.
That's the whole problem with USB-C: one connector, a dozen incompatible standards riding behind it. USB 2.0, 3.2 Gen 1 and 2, USB4, Thunderbolt 3/4/5, DisplayPort Alt Mode, and power tiers from 15W all the way to 240W. Every guide I could find responds to this by handing you the entire spec table and letting you find your row. That's correct information in the least useful possible shape. Nobody standing at a drawer of cables wants to read a table. They want an answer.
Cable Check is that answer, and its whole value is in what it refuses to show you.
Prune the tree, don't print it
The app asks three questions and throws away every branch that doesn't apply to your situation, then prints the one sentence that's left.
- What are you plugging in? Phone, laptop, monitor, or a drive. This barely affects the logic; it exists to frame the next question in words you already use.
- What do you need right now? Fast charging, driving a display, fast file transfer, or just basic charging is fine. This picks the generic verdict.
- What, if anything, is printed on the cable? A marking, an icon, nothing you can see, or not sure.
Step three is the one that earns its place. On its own, step two produces a generic answer:
"look for a lightning bolt or 5A near the plug." Useful, but it still leaves you comparing
markings by hand. Feed in what you can actually see on the cable in your hand and the generic
answer collapses into a specific one: "you already have that cable, you're set," or "this one
isn't it, here's the mark to go find instead." The output is never a spec name. It describes a
physical thing you can look at: a lightning bolt, 5A, DP, SS10. You never have to learn
what "USB-PD 3.1 EPR" means, because the app never says it.
When you don't know, it assumes the worst
Every question has a "not sure" or "can't tell" escape hatch, and picking it always steers toward the more conservative verdict. Ask about a 240W charger and answer "not sure" on the marking, and Cable Check won't gamble on a guess that could cook something; it tells you to grab or buy a labeled cable. Guessing wrong here has a real cost, so the tree is built to be timid exactly where the stakes are high.
Under the hood there's no database and no search box, just a fixed tree of a handful of questions and a small set of terminal verdicts. That's a deliberate limit, not a shortcut: the whole point is speed and certainty over completeness. It's vanilla JavaScript, no framework and no backend, so once the page loads it works offline, and checking a second cable is one tap with no reload. The logic that maps a path to a verdict lives in its own module with a test for every question path that produces a distinct answer, which is the one part where being wrong would actually matter.
Try it
Open Cable Check, grab the nearest mystery cable, and answer three questions: what you're plugging in, what you need, and what you can see printed near the plug. Ten seconds later you'll know whether the cable in your hand is the right one, or exactly which symbol to hunt for on the next one. Then tap restart and check the next cable in the tangle.
This post is part of the build log: every app my automated factory ships gets written up here, honestly. Browse everything at apps.charliekrug.com. Comments are open below.
Loading comments…