https://github.com/aadityansha06/flash-http-cli
A mini Http cli Using C language and libcurl library just as simple Postman , Work in Linux and Mac , User can make a get request, Post request supporting JSON and application urlencoded both formate
https://github.com/aadityansha06/flash-http-cli
clanguage cpp libcurl
Last synced: 2 months ago
JSON representation
A mini Http cli Using C language and libcurl library just as simple Postman , Work in Linux and Mac , User can make a get request, Post request supporting JSON and application urlencoded both formate
- Host: GitHub
- URL: https://github.com/aadityansha06/flash-http-cli
- Owner: aadityansha06
- License: mit
- Created: 2025-09-28T10:00:11.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-09-28T11:34:36.000Z (9 months ago)
- Last Synced: 2025-09-28T12:18:43.483Z (9 months ago)
- Topics: clanguage, cpp, libcurl
- Language: C
- Homepage:
- Size: 49.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Flash HTTP Client ⚡
> A fast, simple, and powerful HTTP client for your terminal - like Postman, but in CLI
[](https://github.com/aadityansha06/Flash-Http-cli/releases/tag/1.0)
[](LICENSE)
[](https://en.wikipedia.org/wiki/C_(programming_language))
Flash is a terminal-based HTTP client that brings the power of API testing to your command line. Built with C and libcurl, it offers a clean Gruvbox-themed interface that's easy on the eyes and powerful in functionality.
## Features
- GET Requests — Fetch data from any REST API
- POST Requests — Send form data and JSON payloads
- Beautiful UI — Gruvbox dark theme with intuitive navigation
- Fast and Lightweight — Built in C for maximum performance
- Memory Safe — Proper memory management and error handling
- Cross-Platform — Works on Linux, macOS, and Windows (with proper setup)
## Screenshots
### Main Menu

### POST Method Selection

---
## Quick Start
### Download Pre-built Binary (Recommended)
```bash
# Download the latest release
wget https://github.com/aadityansha06/Flash-Http-cli/releases/download/1.1.0/flash-linux-x64
# Make it executable
chmod +x flash-linux-x64
# Run Flash
./flash-linux-x64
```
### Build from Source
#### Prerequisites
- GCC compiler
- libcurl development libraries
- Make (optional)
#### Ubuntu/Debian
```bash
sudo apt update
sudo apt install build-essential libcurl4-openssl-dev
```
#### CentOS/RHEL/Fedora
```bash
# CentOS/RHEL
sudo yum install gcc libcurl-devel
# Fedora
sudo dnf install gcc libcurl-devel
```
#### macOS
```bash
# Using Homebrew
brew install curl
# Using MacPorts
sudo port install curl
```
#### Compile and Run
```bash
git clone https://github.com/aadityansha06/Flash-Http-cli.git
cd Flash-Http-cli
make
./bin/flash
```
#### Termux
```bash
pkg update && pkg upgrade
pkg install clang curl
git clone https://github.com/aadityansha06/Flash-Http-cli.git
cd Flash-Http-cli
clang Flash-cli.c -o Flash -lcurl
./Flash
```
> Note: You may see warnings about `getchar()` return values or empty-body while loops during compilation. These are safe to ignore — the program will still run fine.
---
## Usage
### GET Requests
1. Select option `1` from the main menu
2. Enter the URL (e.g., `https://jsonplaceholder.typicode.com/posts/1`)
3. View the formatted response
### POST — Form Data
1. Select option `2` from the main menu
2. Choose `1` for Form Data
3. Enter data in format: `name=John+Doe&email=john%40gmail.com&age=25`
4. Enter the target URL
5. Send the request
### POST — JSON
1. Select option `2` from the main menu
2. Choose `2` for JSON Data
3. Enter your JSON payload: `{"name":"John","email":"john@gmail.com","age":25}`
4. Enter the target URL
5. Send the request
---
## Examples
```bash
# GET — fetch user data
URL: https://jsonplaceholder.typicode.com/users/1
# POST — form data
Data: name=Flash+User&email=flash%40example.com&phone=1234567890
URL: https://httpbin.org/post
# POST — JSON
Data: {"title":"Flash HTTP CLI","body":"A powerful terminal HTTP client","userId":1}
URL: https://jsonplaceholder.typicode.com/posts
```
### URL Encoding
```bash
# Spaces become +
name=John Doe → name=John+Doe
# Special characters use % encoding
email=user@domain.com → email=user%40domain.com
```
### JSON Formatting
```json
{
"name": "Flash User",
"data": {
"email": "user@example.com",
"active": true,
"id": 123
}
}
```
---
## Theme
Flash uses the **Gruvbox Dark** color scheme:
- Background: Dark, easy on the eyes
- Highlights: Warm yellows and oranges
- Success: Bright green indicators
- Errors: Clear red error messages
- Info: Cool blue accents
---
## Contributing
Contributions are welcome! Please read [CONTRIBUTING.md](Developer-Docs/CONTRIBUTING.md) before submitting a PR. It covers code standards, version management, commit formatting, and the submission process.
**Quick start:**
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Commit your changes: `git commit -m 'Add amazing feature'`
4. Update the version in `lib/version.h`
5. Push the branch: `git push origin feature/amazing-feature`
6. Open a Pull Request
> **Important:** Always update `lib/version.h` with your changes. See [CONTRIBUTING.md](Developer-Docs/CONTRIBUTING.md#-version-management) for details.
---
## Contributors
Thanks to everyone who has contributed to Flash HTTP CLI!
**Core Team**
- [@aadityansha06](https://github.com/aadityansha06) — Creator & Maintainer
**Contributors**
- [@dexter-xD](https://github.com/dexter-xD) — Enhanced JSON input with multi-line support and improved UI alignment (#6)
- [@sakshamg567](https://github.com/sakshamg567) — Improved form-data input handling (#2)
Want to contribute? Check out the open issues or raise a PR!
---
## Known Issues
- Windows support requires additional setup for libcurl
- Very large responses (>1GB) may cause memory issues
- Binary releases are currently Linux-only
---
## TODO
- [ ] Custom headers support
- [ ] Authentication methods (Bearer, Basic Auth)
- [ ] Request/Response history
- [ ] Configuration file support
- [ ] Windows binary releases
- [ ] Response syntax highlighting
---
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## Author
**Aadityansh** — [@aadityansha06](https://github.com/aadityansha06)
## Acknowledgments
- [libcurl](https://curl.se/libcurl/) — The HTTP library powering Flash
- [Gruvbox](https://github.com/morhetz/gruvbox) — The color scheme
- Inspired by [Postman](https://www.postman.com/)
## Community
Join the discussions to help improve the project!