Lightweight, free and OpenAPI-driven request collection generator. Keep your API collections always in sync with your openapi.json, without limits or paid tiers.
  • TypeScript 97.2%
  • JavaScript 0.9%
  • CSS 0.8%
  • HTML 0.6%
  • Dockerfile 0.5%
Find a file
Manuel Samuel Alfaro Sierra 55816a577d [FEAT] upgraded package version
2026-05-03 13:03:24 +02:00
public [FEAT] First commit 2026-05-02 15:59:02 +02:00
src [FEAT] Fixed CORS error that it was displaed when api server was down 2026-05-03 13:01:37 +02:00
.dockerignore [FEAT] Added container docker 2026-05-02 16:09:44 +02:00
.gitignore [FEAT] First commit 2026-05-02 15:59:02 +02:00
components.json [FEAT] First commit 2026-05-02 15:59:02 +02:00
DOCKER.md [FEAT] Splited up the docker deploy guide from readme 2026-05-03 01:20:37 +02:00
Dockerfile [FEAT] Added container docker 2026-05-02 16:09:44 +02:00
eslint.config.js [FEAT] First commit 2026-05-02 15:59:02 +02:00
index.html [FEAT] updated favicon 2026-05-03 01:15:14 +02:00
LICENSE [FEAT] Change licence to AGPL 2026-05-03 10:40:29 +02:00
nginx.conf [FEAT] Added container docker 2026-05-02 16:09:44 +02:00
package.json [FEAT] upgraded package version 2026-05-03 13:03:24 +02:00
pnpm-lock.yaml [FEAT] First commit 2026-05-02 15:59:02 +02:00
README.md [FEAT] Change licence to AGPL 2026-05-03 10:40:29 +02:00
tsconfig.app.json [FEAT] First commit 2026-05-02 15:59:02 +02:00
tsconfig.json [FEAT] First commit 2026-05-02 15:59:02 +02:00
tsconfig.node.json [FEAT] First commit 2026-05-02 15:59:02 +02:00
vite.config.ts [FEAT] First commit 2026-05-02 15:59:02 +02:00

OpenAPI REST Client

OpenApiReqCli panel

Lightweight, free and OpenAPI-driven request collection generator. Keep your API collections always in sync with your openapi.json, without limits or paid tiers.

Motivation

When working on backend projects with multiple services and containers, it is common to have a dedicated service to expose API documentation through OpenAPI / Swagger.

However, interacting with those APIs during development usually depends on external tools such as Postman or Insomnia, which often introduce friction:

  • Manual collection maintenance.
  • Sync issues with evolving APIs.
  • Paywalls or usage limits.
  • Vendor lock-in.

This project was born from a simple need: having a fully free, self-contained and automated way to generate and maintain API request collections directly from OpenAPI definitions.

What This Project Is

OpenApiReqCli is a lightweight tool designed to live alongside your backend services.

Think of it as another container in your stack:

  • You have your API.
  • You have your OpenAPI documentation.
  • And now you have an always up-to-date request collection.

How It Works

The core idea is simple:

  • The source of truth is your openapi.json.
  • The app parses it.
  • It generates a request collection with a Postman-like workflow.
  • It keeps the collection in sync whenever the OpenAPI spec changes.

No manual edits. No drift.

Screenshots

OpenApiReqCli application capture 1

OpenApiReqCli application capture 2

Intended Usage

This tool is meant to be integrated per project, not globally.

Typical setup:

  • Backend service(s).
  • OpenAPI documentation service.
  • OpenApiReqCli container/service.

This ensures each project owns:

  • Its API contract (openapi.json).
  • Its request collection, generated from it.

Why This Exists

Most existing tools in this space:

  • Are SaaS-based.
  • Require accounts.
  • Limit updates or requests.
  • Lock useful features behind paywalls.

This project aims to be:

  • Free, actually free.
  • Self-hosted.
  • OpenAPI-first.
  • Zero vendor dependency.

Philosophy

  • Your API contract is your single source of truth.
  • Your tooling should adapt to it, not the other way around.
  • You should not have to pay to keep your own API collections updated.

License

This project is copyleft software licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). See LICENSE.

Installation

pnpm install

Development

pnpm dev

Open the URL printed by Vite, usually http://localhost:5173.

Docker

See Docker Image Guide for build, versioning, publishing, running, and update instructions.

Import Or Update openapi.json

  1. Click Import / Update OpenAPI.
  2. Select a valid OpenAPI .json file.
  3. The app validates the document with @apidevtools/swagger-parser.
  4. Endpoints appear in the right panel grouped by tags or by the first path segment.

Each endpoint uses a stable id in the METHOD path format, for example GET /health or POST /auth/login.

OpenAPI + Local Overrides Model

The OpenAPI collection is the source of truth. When importing again:

  • Existing endpoints update their definition from OpenAPI.
  • New endpoints are added.
  • Endpoints that no longer exist are kept and marked as removed.
  • User edits are preserved as local overrides by endpointId.

The app persists with localforage:

  • Basic spec metadata.
  • Generated endpoints.
  • Endpoint overrides.
  • Open tabs.
  • Active endpoint.
  • baseUrl, global auth, and local variables.

Included MVP

  • Params, headers, body, auth, and script editors.
  • Default JSON body generated from requestBody.schema when possible.
  • Multipart form/file request support when OpenAPI defines multipart/form-data or binary fields.
  • Native fetch request execution.
  • Response status, duration, headers, body, and image preview for image/* responses.
  • Local persistence of user edits.
  • Browser-only CORS/network error hints.

Pre-request and post-request script editors persist their content. Post-request scripts can store local variables with the simple store API.