Vimanam
Vimanam is an OpenAPI/Swagger JSON to Markdown documentation generator.
Vimanam stands for Aeroplane in Malayalam. Like an aeroplane, it can fly high and give you a 20,000 feet view of the APIs. It can fly low and give you a detailed view of the APIs. You can also run it along the ground to look deep into the API fields and descriptions.
It supports both OpenAPI 2.0 (Swagger) and OpenAPI 3.0 specifications.
Besides producing documentation for humans, Vimanam is built for feeding API specs to LLMs: a multi-megabyte enterprise spec doesn't fit in a context window, but a filtered, summary-level Markdown rendering of it does. See Preparing API context for LLMs.
Features
- Convert OpenAPI JSON files to Markdown documentation
- Supports both OpenAPI 2.0 (Swagger) and OpenAPI 3.0 specifications
- Group endpoints by service or HTTP method, or list them flat
- Filter by service, path, or method
- Multiple detail levels (summary, basic, standard, full)
- Reference resolution to follow JSON references (
$ref) in specifications - Server URL information extraction and documentation
- Authentication and security schemes documentation
- Proper content type detection for responses
- Sorting options for endpoints (alphabetical, path length)
- Clean anchor generation for better navigation
- Deterministic, byte-identical output across runs — friendly to diffs, caching, and LLM prompt caching
Prerequisites
Installation
# Clone repository
# Run directly without building (development)
# Build
# Run the built binary
# Or install system-wide
Usage
# Basic usage
# Group by HTTP method
# Generate summary only
# Filter by specific services
# Filter by HTTP method
# Show only paths containing a pattern
# Generate full details
# Include server and authentication information
Options
Usage: vimanam [OPTIONS] <FILE>
Arguments:
<FILE> Path to the OpenAPI JSON file
Options:
-o, --output <FILE> Output file path
--method Group endpoints by HTTP method instead of by service
--group-by <service|method> Grouping method for endpoints
--flat Generate a flat list without hierarchical structure
--service-filter <SERVICE[,...]> Include only specific services (comma-separated)
--path-filter <PATTERN> Filter endpoints by path pattern
--method-filter <METHOD[,...]> Filter by HTTP methods (comma-separated)
--exclude-deprecated Hide deprecated endpoints
--required-only Only show required parameters
--detail <summary|basic|standard|full> Control amount of information [default: summary]
--include-schemas Include request/response schemas
--include-examples Include request/response examples
--include-auth Show authentication requirements and server URLs
--no-toc Skip table of contents
--sort <alpha|path-length|none> Sorting method [default: alpha]
-h, --help Print help
Preparing API context for LLMs
Large API specs are a poor fit for LLM context windows: a 3 MB swagger file is hundreds of thousands of tokens of JSON, most of it boilerplate. Vimanam's detail levels and filters act as a token-budget dial, letting you hand an LLM (or a coding agent) exactly the slice of the API it needs, as compact Markdown.
# 20,000-ft view: every service and operation name, usually <1% the size of the spec.
# Good as always-loaded context so the model knows what the API can do.
# Zoom into one service when the task touches it — parameters and responses
# included, everything else excluded
# Slice by path or method instead
A workflow that works well with coding agents: generate the --detail summary map once and reference it from the project's agent instructions (e.g. CLAUDE.md); have the agent regenerate a --service-filter ... --detail standard slice on demand when a task involves specific endpoints.
Output is deterministic — the same spec and flags produce byte-identical Markdown — so generated context files diff cleanly in git and don't needlessly invalidate LLM prompt caches.
Supported OpenAPI Versions
Vimanam supports:
- OpenAPI 2.0 (Swagger) documents using the
swaggerfield - OpenAPI 3.0+ documents using the
openapifield
Output Examples
The generated documentation includes:
Server and Authentication Information
* *
* *
Endpoint Documentation
**Operation:** POST /users
**Description:** Create a new user account
**Operation ID:** `createUser`
License
Apache License 2.0