Skip to content

OpenAPI Specification (OAS) tools for validating, parsing, fixing, converting, diffing, joining, and building specs; as well as generating client/servers/types from specs.

License

Notifications You must be signed in to change notification settings

erraggy/oastools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

368 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oastools - for validating, parsing, fixing, converting, diffing, joining, and building specs

A complete, self-contained OpenAPI toolkit for Go with minimal dependencies.

CI: Go CI: golangci-lint Go Report Card codecov Go Reference License: MIT Try it Online

Parse, validate, fix, convert, diff, join, generate, and build OpenAPI specs (2.0–3.2) — all in one tool.

What It Does

Spec Lifecycleparser · validator · fixer · converter
Multi-Spec Opsjoiner · differ · overlay
Code & Querygenerator · builder · walker
Runtimehttpvalidator · oaserrors

12 packages covering the full OpenAPI lifecycle. See full details →

Highlights

  • 📦 Minimal Dependencies — Only go.yaml.in/yaml, golang.org/x/tools, golang.org/x/text, and the MCP Go SDK at runtime
  • Battle-Tested — 8,000+ tests against 10 production APIs (Stripe, GitHub, Discord, MS Graph 34MB)
  • Performance — Pre-parsed workflows 11–150x faster; 340+ benchmarks
  • 📋 OAS 2.0–3.2 — Full JSON Schema Draft 2020-12 for OAS 3.1+; automatic format detection and preservation
  • 🤖 AI-Ready — Built-in MCP server exposes all capabilities to LLM agents
  • 🌐 Try Onlineoastools.robnrob.com — no install required

Quick Start

CLI

oastools validate openapi.yaml                          # Validate a spec
oastools convert -t 3.0.3 swagger.yaml -o openapi.yaml  # Convert versions
oastools diff --breaking v1.yaml v2.yaml                 # Detect breaking changes
oastools fix api.yaml -o fixed.yaml                      # Auto-fix errors
oastools join -o merged.yaml base.yaml ext.yaml          # Merge specs
oastools generate --client --server -o ./gen -p api openapi.yaml  # Generate Go code

Library

// Parse, validate, and fix — consistent functional options API
result, _ := parser.ParseWithOptions(parser.WithFilePath("api.yaml"))
vResult, _ := validator.ValidateWithOptions(validator.WithParsed(*result))
fResult, _ := fixer.FixWithOptions(fixer.WithParsed(*result))

Full library guide →

Installation

CLI

brew install erraggy/oastools/oastools                   # Homebrew (macOS/Linux)
go install github.com/erraggy/oastools/cmd/oastools@latest  # Go install

Pre-built binaries for macOS, Linux, and Windows on the Releases page.

Library

go get github.com/erraggy/oastools@latest

Requires Go 1.24+.

Documentation

📚 Documentation Site — Guides, examples, and package deep dives

📖 CLI Reference — All commands, flags, and output formats

🤖 MCP Server — LLM agent integration via Model Context Protocol

📦 API Reference — Go package documentation with runnable examples

Contributing

Fork, branch, make check, conventional commits. See WORKFLOW.md for the full process.

License

MIT

All code generated by Claude Code using claude-4-5-sonnet/opus with minor edits and full control by @erraggy

About

OpenAPI Specification (OAS) tools for validating, parsing, fixing, converting, diffing, joining, and building specs; as well as generating client/servers/types from specs.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages