A Vim-style TUI (Terminal User Interface) tool
for exploring Swagger/OpenAPI documents and testing APIs in the terminal
- πΉ Vim-style keyboard navigation - Familiar keybindings like h, j, k, l with NORMAL, INSERT, and COMMAND modes
- βοΈ Vim integration for JSON editing - Seamlessly connect to Vim for advanced JSON editing
- π Swagger 2.0 & OpenAPI 3.x support - Supports both JSON/YAML formats
- π tRPC support - Coming soon
- π¨ Terminal-friendly UI - Beautiful TUI with neon green theme
- β‘ Fast API testing - Execute APIs directly from the terminal
- π Search & filtering - Quickly find endpoints
- π Clipboard support - Copy response results to clipboard
npm install -g @gomjellie/lazyapilazyapi <openapi-file-or-url># URL
lazyapi https://petstore.swagger.io/v2/swagger.json
# JSON file
lazyapi openapi.json
# YAML file
lazyapi swagger.yaml
| Key | Description |
|---|---|
j |
Move to next item |
k |
Move to previous item |
g |
Move to top of list |
G |
Move to bottom of list |
:m<1-6> |
Select Method (1:ALL, 2:GET, 3:POST, 4:PUT, 5:DELETE, 6:PATCH) |
l / Enter |
View details of selected endpoint |
/ |
Enter search mode |
:q |
Quit |
| Key | Description |
|---|---|
| Text input | Enter search query (searches path, description, tags) |
Enter |
Apply search and update results |
Esc |
Cancel search and return to NORMAL mode |
| Key | Description |
|---|---|
j |
Move to next field |
k |
Move to previous field |
i |
Enter INSERT mode (edit field) |
Enter |
Execute API request |
u |
Return to list view |
| Key | Description |
|---|---|
Esc |
Switch to NORMAL mode |
| Text input | Edit field value |
| Key | Description |
|---|---|
j / k |
Scroll response content |
Tab |
Switch to next tab (Body/Headers/Cookies) |
y |
Copy Body content to clipboard |
r |
Re-run request |
q / u |
Return to detail view |
- Node.js >= 20.0.0
- pnpm >= 8.0.0
- Multiple environment support (dev, staging, prod)
- Request history storage
- Favorites feature
- Custom theme support
- Plugin system
Contributions are always welcome! Please open an issue or submit a PR.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
MIT License - see the LICENSE file for details.
- Ink - React-based terminal UI library
- swagger-parser - OpenAPI parser
Made with β€οΈ by gomjellie
