March 06, 20267 min read
A while back I wrote about Spec Shaver, a CLI I built for getting oversized OpenAPI specs under OpenAI’s Custom GPT limits. It works great when you know exactly what you want, you’re comfortable on the command line, and the spec is sitting on your local disk. But the more I used it, the more I noticed I was reaching for a different shape of tool. Something visual. Something where I could see the whole spec, click around, and curate it like I was editing a list rather than running a reduce command.
So I built one. SpecForge is a web app for importing, curating, and exporting OpenAPI specifications in the browser. It’s the same problem space as Spec Shaver, just with a UI on top.
Three things, in the order you’d actually do them:
$ref dependencies properly resolved so the output is still a valid spec.That last bit is the thing that makes this kind of tool actually useful. Naively deleting endpoints from a spec breaks the schema almost immediately, because most specs lean heavily on $ref to share definitions across operations. SpecForge resolves the references when you export, so you only get the schemas you still need and the file stays valid.
Spec Shaver is great for what it is. If you’re building a Custom GPT and you already know which entities matter, the CLI gets you a reduced spec in about a second. But there’s a category of work where I don’t know up front what I want. I’m exploring. I want to see the full list of operations, see how they’re tagged, see what the schema looks like, and make decisions as I go.
That’s a UI problem, not a CLI problem. You can technically do it with spec-shaver wizard, but a terminal prompt walking you through 150 endpoints one menu at a time is not the right shape. A web page where everything is visible, filterable, and clickable is.
It’s also a nice place to share the work. If a teammate needs the same reduced spec I just built, I can send them a link and they can re-run the same filters in their own browser. No install step, no config file, no “do you have node 18 or later” dance.
I think of SpecForge and Spec Shaver as two sides of the same coin:
I find I’ll often use SpecForge first to figure out which entities and tags actually matter for a given API, then port those choices into a .spec-shaver.json for the projects that need it on every run. The two work better together than either does alone.
SpecForge lives at specforge.griffen.codes. No account, no signup, no upload to a server. Paste a spec, curate it, export it, close the tab.
If you’ve got a use case that doesn’t quite fit, or a spec that breaks something, I’d love to hear about it. This is one of those tools where I built it to scratch my own itch, and I’m sure there are sharp edges I haven’t run into yet. Feedback welcome.
Griffen Fargo
Published
