A fast, simple, and powerful HTTP client for your terminal - like Postman, but in CLI
Flash is a beautiful, 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.
- π 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 & 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)
Clean and intuitive main interface
Easy content-type selection for POST requests
Download the latest release for Linux:
# 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
- GCC compiler
- libcurl development libraries
- Make (optional)
sudo apt update
sudo apt install build-essential libcurl4-openssl-dev
# CentOS/RHEL
sudo yum install gcc libcurl-devel
# Fedora
sudo dnf install gcc libcurl-devel
# Using Homebrew
brew install curl
# Using MacPorts
sudo port install curl
# Clone the repository
git clone https://github.com/aadityansha06/Flash-Http-cli.git
cd Flash-Http-cli
# build
make
# Run
./bin/flash
# Install dependencies
pkg update && pkg upgrade
pkg install clang curl
# Clone the repository
git clone https://github.com/aadityansha06/Flash-Http-cli.git
cd Flash-Http-cli
# Compile
clang Flash-cli.c -o Flash -lcurl
# Run
./Flash
Note: You may see warnings about getchar() return values or empty-body while loops during compilation.
These warnings are safe to ignore β the program will still run fine.
- Select option
1
from the main menu - Enter the URL (e.g.,
https://jsonplaceholder.typicode.com/posts/1
) - View the formatted response
- Select option
2
from the main menu - Choose
1
for Form Data - Enter data in format:
name=John+Doe&email=john%40gmail.com&age=25
- Enter the target URL
- Send the request
- Select option
2
from the main menu - Choose
2
for JSON Data - Enter JSON data:
{"name":"John","email":"john@gmail.com","age":25}
- Enter the target URL
- Send the request
# GET request to fetch user data
URL: https://jsonplaceholder.typicode.com/users/1
# POST form data to create a user
Data: name=Flash+User&email=flash%40example.com&phone=1234567890
URL: https://httpbin.org/post
# POST JSON data
Data: {"title":"Flash HTTP CLI","body":"A powerful terminal HTTP client","userId":1}
URL: https://jsonplaceholder.typicode.com/posts
Flash handles various HTTP scenarios:
- β REST APIs
- β Form submissions
- β JSON APIs
- β Authentication headers (manual setup)
- β URL encoding
- β Error handling
Flash uses the Gruvbox Dark color scheme for a comfortable terminal experience:
- π€ Background: Dark, easy on the eyes
- π¨ Highlights: Warm yellows and oranges
- π© Success: Bright green indicators
- π₯ Errors: Clear red error messages
- π΅ Info: Cool blue accents
Flash automatically handles basic URL encoding, but for complex data:
# Spaces become +
name=John Doe β name=John+Doe
# Special characters use % encoding
email=user@domain.com β email=user%40domain.com
Ensure your JSON is properly formatted:
{
"name": "Flash User",
"data": {
"email": "user@example.com",
"active": true,
"id": 123
}
}
git clone https://github.com/aadityansha06/Flash-Http-cli.git
cd Flash-Http-cli
# Install development dependencies
sudo apt install build-essential libcurl4-openssl-dev
# Build and test
gcc -g -o flash-dev main.c -lcurl
./flash-dev
Contributions are welcome! Here's how you can help:
- π΄ Fork the repository
- πΏ Create a feature branch (
git checkout -b feature/amazing-feature
) - πΎ Commit your changes (
git commit -m 'Add amazing feature'
) - π Push to the branch (
git push origin feature/amazing-feature
) - π― Open a Pull Request
Thanks to everyone who has contributed to Flash HTTP CLI! π
- @aadityansha06 - Creator & Maintainer
-
@dexter-xD - Enhanced JSON input with multi-line support and improved UI alignment (#6)
-
@sakshamg567 - Improved form-data input handling (#2)
Want to contribute? Check out my new issues or Just raise a PR π!
- Windows support requires additional setup for libcurl
- Very large responses (>1GB) may cause memory issues
- Binary releases are currently Linux-only
- Custom headers support
- Authentication methods (Bearer, Basic Auth)
- Request/Response history
- Configuration file support
- Windows binary releases
- Response syntax highlighting
This project is licensed under the MIT License - see the LICENSE file for details.
Aadityansh
- GitHub: @aadityansha06