# toss-api
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.
---
## π Key Features
- **β‘ 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/l` keys.
- **π 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.
## π¦ Installation
You can install `toss` using `cargo`, the Rust package manager.
### From Crates.io (Recommended)
```bash
cargo install toss-api
```
### From GitHub
```bash
cargo install --git https://github.com/ghostp13409/toss-api
```
### From Source
```bash
git clone https://github.com/ghostp13409/toss-api
cd toss-api
cargo install --path .
```
*Note: Ensure you have the Rust toolchain installed from [rustup.rs](https://rustup.rs/).*
## π Quickstart
1. **Launch the TUI**: Simply run `toss-api` in your terminal.
2. **Import a Project**: Press `:` to enter command mode and type `:parse .` to extract APIs from the current directory.
3. **Navigate**: Use `j/k` to move, `Enter` to select/edit, and `Tab` to switch panels.
4. **Send a Request**: Press `Ctrl + s` or navigate to the [ Send ] button and press `Enter`.
5. **Help**: Press `?` at any time to see the full list of shortcuts and command mode actions.
## ποΈ Supported Frameworks (for Smart Parsing)
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
## π οΈ CLI Mode
For quick actions without entering the UI:
- `toss-api send GET https://api.example.com/users`
- `toss-api run "My Collection" "Get User"`
- `toss-api collections list`
- `toss-api env show "My Collection"`
Run `toss-api --help` for the full command list.
## πΊοΈ Roadmap
- [ ] 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
## β€οΈ Tips...
`toss` is and will always be completely free and open source. If you find it useful, consider buying me a coffee!
[](https://ko-fi.com/parthgajjar)
---
*Created with β€οΈ by [Parth Gajjar](https://github.com/ghostp13409)*