apin 0.4.1

Terminal UI for navigating OpenAPI specs
apin-0.4.1 is not a library.

apin - OpenAPI Navigator CLI

CI Release

A terminal UI for navigating OpenAPI specs — fast, keyboard-driven, zero configuration.

Browse any number of specs with a Miller-columns path tree, inspect endpoints in a full-screen detail view, and filter with incremental search — all without leaving the terminal.

Supports Swagger 2.0, OpenAPI 3.0, 3.1, and 3.2, YAML or JSON.

apin demo

Installation

Homebrew (macOS and Linux)

brew install ekvii/apin/apin

cargo install

cargo install apin

Binaries (Linux, macOS, Windows)

Latest release binaries are available for Linux, macOS, and Windows. Download the binary for your platform and add it to your PATH.

Build from source

Requires Rust (stable).

cd apin
cargo build --release
./target/release/apin path/to/spec.yaml

Usage

# single spec file
apin openapi.yaml

# entire directory — specs stream into the UI as they load
apin path/to/specs/

# HTTP(S) URL — probes well-known spec paths automatically
apin https://api.example.com

# explicit spec URL
apin https://api.example.com/openapi.yaml

# dir for downloaded specs (re-uses existing files on next run)
apin --download-dir . https://api.example.com

# force re-download even if the file already exists
apin --download-dir . --force-download https://api.example.com

Features

  • Miller-columns tree — navigate URL path segments column by column (h / l)
  • Endpoint detail — method, summary, parameters, request body, response codes
  • Schema trees — collapsible, interactive view of request body and response schemas; press [N] to open the Nth response tree
  • Deprecated markers — deprecated operations and parameters are flagged with [deprecated] throughout
  • Webhooks — 3.1/3.2 webhook entries appear alongside regular paths, labelled [WEBHOOKS]
  • Custom HTTP methods — 3.2 additionalOperations (COPY, MOVE, QUERY, …) are parsed and displayed
  • Incremental search/ to filter in any panel; n / N to cycle matches
  • Vim-style navigationj/k, gg/G, Ctrl-D/Ctrl-U
  • Multi-spec — load a whole directory; switch between specs in a sidebar
  • URL input — pass any HTTP(S) URL; apin probes well-known spec paths automatically
  • Download remote spec files--download-dir persists downloaded specs and skips re-downloading; use --force-download to override