10 releases
Uses new Rust 2024
| 0.4.14 | Mar 21, 2026 |
|---|---|
| 0.4.13 | Mar 20, 2026 |
| 0.3.0 | Mar 17, 2026 |
| 0.2.2 | Mar 15, 2026 |
#217 in Filesystem
5.5MB
7.5K
SLoC
apin - OpenAPI Navigator CLI
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.
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/Nto cycle matches - Vim-style navigation —
j/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-dirpersists downloaded specs and skips re-downloading; use--force-downloadto override
Dependencies
~26–48MB
~802K SLoC