A Vim-inspired, high-performance TUI and CLI API client built with Rust and Ratatui.
toss-api is designed for developers who want a fast, keyboard-driven workflow for exploring and testing APIs without leaving the terminal. It combines the visual power of an API client with the efficiency of a Vim-like interface.
- ⚡ Fast & Lightweight: Built with Rust for near-instant startup and minimal resource usage.
- ⌨️ Vim-Inspired Navigation: Navigate through collections, requests, and environments using familiar
h/j/k/lkeys. - 🔍 Smart Project Parsing: Automatically extract API endpoints directly from your codebase (Express, FastAPI, Spring, etc.).
- 🧪 Advanced REST Client: Support for Params, Headers, Auth (Bearer, Basic, API Key), and Body (JSON, Form Data, etc.).
- 📂 Collection Management: Organize requests into folders and subfolders. Import directly from Postman.
- 🔐 Environment Variables: Context-aware variables with masking support for sensitive data.
- 🛠️ CLI & TUI: Switch seamlessly between a full TUI dashboard and quick CLI commands.
- 🎨 Visual Polish: LazyVim-style mode indicators and color-coded HTTP methods.
You can install toss using cargo, the Rust package manager.
cargo install toss-apicargo install --git https://github.com/ghostp13409/tossgit clone https://github.com/ghostp13409/toss
cd toss
cargo install --path .Note: Ensure you have the Rust toolchain installed from rustup.rs.
- Launch the TUI: Simply run
toss-apiin your terminal. - Import a Project: Press
:to enter command mode and type:parse .to extract APIs from the current directory. - Navigate: Use
j/kto move,Enterto select/edit, andTabto switch panels. - Send a Request: Press
Ctrl + sor navigate to the [ Send ] button and pressEnter. - Help: Press
?at any time to see the full list of shortcuts and command mode actions.
Toss can intelligently detect and extract endpoints from the following frameworks:
- Node.js: Express.js, Next.js
- Python: FastAPI, Flask, Django
- Java/Kotlin: Spring Boot, Quarkus
- PHP: Laravel
- Ruby: Ruby on Rails
- C#: ASP.NET Core
- Go: Standard library / Gin-style patterns
For quick actions without entering the UI:
toss-api send GET https://api.example.com/userstoss-api run "My Collection" "Get User"toss-api collections listtoss-api env show "My Collection"
Run toss --help for the full command list.
- GraphQL Support (with Schema auto-fetching)
- Scripting (Pre-request & Post-response JavaScript)
- Mass API Testing & Results Visualization
- More Auth Methods (OAuth2, Digest)
- Export to Postman/Swagger
toss is and will always be completely free and open source. If you find it useful, consider buying me a coffee!
Created with ❤️ by Parth Gajjar