Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
O

openapi-tui

> 编程语言
Open source

Terminal UI to list, browse and run APIs defined with openapi spec.

1.3K stars0 likes0 views
WebsiteGitHub

About

Terminal UI to list, browse and run APIs defined with openapi spec.

openapi-tui

Terminal UI to list, browse and run APIs defined with OpenAPI v3.0 and v3.1 spec.

Usage

bash
❯ openapi-tui --help
This TUI allows you to list and browse APIs described by the openapi specification.

Usage: openapi-tui [OPTIONS] --input 

Options:
  -i, --input           Input file or url, in json or yaml format with openapi specification
  -H, --header   Global header to attach to every request, in `Name: Value` form. May be repeated.
  -h, --help                  Print help
  -V, --version               Print version

Examples

bash
# open local yaml file
❯ openapi-tui -i examples/stripe/spec.yml

# open local json file
❯ openapi-tui -i examples/petstore.json

# open remote file
❯ openapi-tui -i https://raw.githubusercontent.com/github/rest-api-description/main/descriptions-next/api.github.com/api.github.com.yaml

# attach default headers to every request
❯ openapi-tui -i examples/petstore.json -H 'Authorization: Bearer xyz' -H 'X-Env: dev'

Demo

Other Feature Animations

Show more

Nested Components

Fullscreen

Webhooks

Filter

Call Endpoints

Multiple Server Support

Installation

Install from source:

bash
❯ cargo install openapi-tui

Or download pre-built artifact from release page.

Docker

Just run the application with docker.

bash
# open local file
❯ docker run --rm -ti -v$(pwd)/examples:/opt zaghaghi/openapi-tui -i /opt/petstore.json

# open remote file
❯ docker run --rm -it zaghaghi/openapi-tui -i https://raw.githubusercontent.com/github/rest-api-description/main/descriptions-next/api.github.com/api.github.com.yaml

Distro Packages

Packaging status

Arch Linux

You can install using pacman as follows:

bash
❯ pacman -S openapi-tui

NixOS

You can install the openapi-tui package directly with the following command:

bash
nix profile install github:zaghaghi/openapi-tui

You can also install openapi-tui by adding it to your configuration.nix file.

nix
# flake.nix

{
  inputs.openapi-tui.url = "github:zaghaghi/openapi-tui";
  # ...

  outputs = {nixpkgs, ...} @ inputs: {
    nixosConfigurations. = nixpkgs.lib.nixosSystem {
      specialArgs = { inherit inputs; }; # this is the important part
      modules = [
        ./configuration.nix
      ];
    };
  }
}

Then, add openapi-tui to your configuration.nix

nix
# configuration.nix

{inputs, pkgs, ...}: {
  environment.systemPackages = with pkgs; [
    inputs.openapi-tui.packages.${pkgs.system}.openapi-tui
  ];
}

Keybindings

Key Action
→, l Move to next pane
←, h Move to previous pane
↓, j Move down in lists
↑, k Move up in lists
1...9 Move between tabs
] Move to next tab
[ Move to previous tab
f Toggle fullscreen pane
g Go in nested items in lists
q Quit
/ Filter apis
: Run commands
? Show help popup with keys and commands
Backspace, b Get out of nested items in lists

Commands Main Page

Command Description
q Quit
request, r Go to request page
history Request history
auth Open authentication popup to set credentials for components.securitySchemes
help Show help popup with keys and commands

Commands Request Page

Command Description
q Quit
send, s Send request
auth Open authentication popup to set credentials for components.securitySchemes
copy [curl|httpie] Copy the current request to the clipboard. Defaults to curl. e.g. copy curl
help Show help popup with keys and commands
query, q Add or remove query strings. sub-commands are add or rm. e.g. query add page
header, h Add or remove headers. sub-commands are add or rm. e.g. header add x-api-key
request, r Load request payload. e.g. request open /home/hamed/payload.json
response, s Save response payload e.g. response save /home/hamed/result.json
jq Filter JSON response with a jq expression. e.g. jq .items[0]
jq Clear jq filter and return to normal response view
search Search for a term in the response body (case-insensitive). e.g. search error
search Clear search and return to normal response view

Environment Variables

Variable Description
OPENAPI_TUI_DEFAULT_SERVER Add a custom server url to the list of servers

Implemented Features

  • Viewer
  • OpenAPI v3.1
  • Display Webhooks
  • Display Info and Version
  • Filter APIs
  • Remote API specification
  • Merge Parameters Based on in
  • Pane Fullscreen Mode
  • Nested Components
  • Status Line
  • Phone Page
  • Call History
  • Request Plain Editor
  • Header Input (No Validation)
  • Path Input (No Validation)
  • Calling
  • Plain Response Viewer (Status + Headers + Body)
  • History viewer
  • Refactor footer, add flash footer messages
  • Import request body file
  • Save response body and header
  • Command history with ↑/↓
  • Support array query strings
  • Suppert extra headers
  • Support multiple servers
  • Format response body by content-type (JSON pretty-print)
  • Syntax highlighting in response viewer
  • Line numbers in response viewer
  • Scroll response body with j/k
  • JQ filter for JSON responses
  • Text search in response body
  • Request progress bar
  • Display Key Mappings in Popup

Backlog

  • Schema Types (openapi-31)
  • Read Spec from STDIN

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Rustopenapi3openapi31ratatui-rsrust-lang

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言