What it does, why it matters, and how it changes the way you work with APIs. Each surface below is live in the demo — nothing here is a mockup of a roadmap.
Any OpenAPI 3.0/3.1/3.2 or Swagger 2.0 document becomes a fully navigable reference. Endpoints group by tag (and x-tagGroups) into a sidebar tree that respects sorting, route-display, protection and deprecation preferences — a large specification becomes an orderly index rather than an overwhelming list.
examples, and body-level combinator rails.#response-200, and a mobile pill + sheet on small screens.
Documentation is passive; the Runner is active. Execute genuine requests from the browser against the servers declared in your specification — the gap between reading an endpoint and calling it disappears. OAS 3.2 QUERY (RFC 10008) is first-class beside GET, POST and additional operations.
style/explode, and documented examples.
One schema surface for request bodies, responses, and the schema modal — generated examples, an always-open meta header, body-level rails, and the property table readers already know. Field-level combinators reach nested properties, not only the body root.
examples on their own tab.const, prefixItems, unevaluatedProperties, if/then/else, type unions, bare $ref combinators, webhooks — plus cycle-safe recursion.
Keep private Markdown notes and todos beside any endpoint — knowledge that belongs to you, not the spec. Fourteen translucent, theme-safe tones keep them readable in every palette.

The OpenDoc UI proxy agent doubles as a request proxy: enable VITE_REQUEST_PROXY in a build and the Runner hands every request to it — executed server-side, answered through a JSON envelope, no CORS limits. config.json or the Settings switch disables it on the front-end while the backend keeps running.
fetch / axios / Angular snippets plus TypeScript models generated from your schemas — secret-redacted and downloadable as a zip.
curl · fetch · axios · types.tsGrounded answers from retrieved, redacted endpoint/schema context with clickable source citations. Swagger/REST skill packs, per-spec saved conversations, and Runner handoff.
direct provider · hardened gatewayOverview, search, schema explorer, settings, about and assistant open as tabs beside endpoints — preview/pin, close, reorder, middle-click, context menu. Like an IDE, because it is one.
tabs · split view · deep linksA full settings tab with deep links for General, Appearance, Navigation, Code viewer and AI — including an in-page theme gallery and schema/example representation scopes.
#/…/settingsFirst-class HTTP QUERY (RFC 10008): discovered like other methods, documented with request bodies, and runnable in the browser without weakening GET/HEAD body warnings.
RFC 10008 · body + safe methodNested oneOf, anyOf, allOf and not menus in the code viewer and schema table — exclusive pick, multi-select merge, composition focus with dimming, inspection-only negation.
oneOf · anyOf · allOf · notWhen a generator emits flow-style oneOf/anyOf/allOf without sequence brackets, OpenDoc quietly rewrites the text on load so the document can still open.
load-time · non-destructiveCtrl/⌘ + K searches paths, summaries, tags and schema definitions — path text is always indexed — with method/tag/security filters synced with the sidebar.
17 hand-picked palettes with per-spec memory and light / dark / system modes. Notes, badges and code views stay legible in every one — pick them from Settings.
Move endpoints into a muted folder without touching the OpenAPI source — unhide individually or restore all from navigation settings.
An honest, per-endpoint matrix of what the browser can and cannot do for a given API — CORS constraints, credentialed requests and cookie behavior, stated before you waste a minute.
Remote specs cache in IndexedDB and revalidate with If-None-Match / If-Modified-Since. One button drops the cache and re-fetches — or re-reads your local file from disk.
Every file you open and every remote URL you load lands in a persistent, browser-local history — reopen yesterday's spec in one click, no re-upload.