A fast, interactive CLI tool for executing HTTP requests from .http files, built with Go and bubbletea.
- Parse and execute HTTP requests from
.httpfiles - Beautiful interactive TUI with fuzzy search filtering for selecting and running requests
- Support for variables and variable substitution
- Elegant response display with syntax highlighting
- Interactive JSON exploration with jless - press
fto expand/collapse and explore JSON responses interactively - Support for multiple HTTP methods (GET, POST, PUT, DELETE, PATCH, etc.)
- Request headers and body support
- Response timing and size information
- Toggleable header display
- Fast and lightweight
Install httpyum and its dependencies with a single command:
curl -fsSL https://raw.githubusercontent.com/aritra1999/httpyum/main/scripts/install.sh | bashThis will:
- Download the latest release for your platform
- Install httpyum to
/usr/local/bin - Provide instructions for installing jless (recommended for JSON viewing)
Download the latest release for your platform from the releases page:
macOS (Apple Silicon)
curl -L https://github.com/aritra1999/httpyum/releases/latest/download/httpyum-darwin-arm64.tar.gz | tar xz
sudo mv httpyum-darwin-arm64 /usr/local/bin/httpyummacOS (Intel)
curl -L https://github.com/aritra1999/httpyum/releases/latest/download/httpyum-darwin-amd64.tar.gz | tar xz
sudo mv httpyum-darwin-amd64 /usr/local/bin/httpyumLinux (amd64)
curl -L https://github.com/aritra1999/httpyum/releases/latest/download/httpyum-linux-amd64.tar.gz | tar xz
sudo mv httpyum-linux-amd64 /usr/local/bin/httpyumWindows Download from releases page and add to PATH.
go build -o httpyum ./cmd/httpyumOr install directly:
go install httpyum/cmd/httpyum@latestUpdate to the latest version:
curl -fsSL https://raw.githubusercontent.com/aritra1999/httpyum/main/scripts/update.sh | bashRemove httpyum from your system:
curl -fsSL https://raw.githubusercontent.com/aritra1999/httpyum/main/scripts/uninstall.sh | bashTo enable interactive JSON exploration with expand/collapse, install jless (recommended):
# macOS
brew install jless
# Linux (cargo required)
cargo install jless
# Or download from: https://github.com/PaulJuliusMartinez/jless/releasesAlternatively, install fx:
# macOS
brew install fx
# Linux / npm / Go
curl -sS https://webi.sh/fx | sh
npm install -g fx
go install github.com/antonmedv/fx@latestWhen viewing a JSON response, press f to open it interactively. httpyum will use jless if available (better expand/collapse), otherwise fx.
jless keybindings (recommended):
↑/↓orj/k- Navigate through keysEnterorSpace- Expand/collapse objects and arrayse- Expand allc- Collapse all/- Searchn/N- Next/previous search result%- Toggle quotes on string valuesq- Quit and return to httpyum
httpyum [OPTIONS] <file.http>--no-headers- Hide response headers in output-h, --help- Show help message-v, --version- Show version information
# Run with example file
httpyum example.http
# Run without showing headers
httpyum --no-headers api.http↑/↓ork/j- Navigate requests/- Filter requests (fuzzy search)Esc- Clear filterEnter- Execute selected requestq- Quit
f- Open JSON response in interactive viewer (jless/fx) with expand/collapse (JSON responses only)h- Toggle headers visibilityv- Toggle variables panel (shows variables used in request)borEsc- Back to listq- Quit
httpyum supports the standard .http file format:
# Comments start with # or //
@variable = value
### Request Description
METHOD https://api.example.com/{{variable}}
Header-Name: Header-Value
Another-Header: Value
{
"body": "json"
}
### Another Request
GET https://example.comDefine variables with @name = value and use them with {{name}}:
@baseUrl = https://api.example.com
@token = your-api-token
### Get Users
GET {{baseUrl}}/users
Authorization: Bearer {{token}}Load environment variables from your shell using {{$dotenv VARIABLE_NAME}}:
Set environment variables in your shell:
export JWT="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
export API_KEY="your-api-key-here"Use in your .http file:
@baseUrl = http://localhost:3000
@jwt = {{$dotenv JWT}}
### Authenticated Request
GET {{baseUrl}}/api/users
Authorization: Bearer {{jwt}}
### Or use directly
POST {{baseUrl}}/api/data
X-API-Key: {{$dotenv API_KEY}}
Content-Type: application/json
{
"data": "example"
}Features:
- ✅ Reads environment variables from your shell
- ✅ Shows only variables used in the request (press
vto toggle) - ✅ Masked values for security (only shows last 3 characters)
- ✅ Variables can reference env vars:
@token = {{$dotenv JWT}}
Requests are separated by ### optionally followed by a description:
### Get user profile
GET https://api.example.com/profile
### Update user profile
POST https://api.example.com/profile
Content-Type: application/json
{
"name": "John Doe"
}See example.http for a complete example with various request types.
- ✅ HTTP Methods (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, etc.)
- ✅ Request headers
- ✅ Request body (JSON, form data, text)
- ✅ Variables and variable substitution
- ✅ Environment variables (shell environment with
{{$dotenv VAR}}) - ✅ Comments (
#and//) - ✅ Request descriptions
- ✅ Response display with timing
- ✅ JSON pretty-printing
- ✅ Toggleable headers
- ✅ Status code colorization
httpyum was created as a faster alternative to httpyac. Built with Go and featuring an interactive TUI, httpyum provides:
- Instant startup time
- Low memory footprint
- Clean, intuitive interface
- Fast request execution
- Cross-platform support
# Clone the repository
git clone https://github.com/aritra1999/httpyum.git
cd httpyum
# Install dependencies
go mod download
# Build
go build -o httpyum ./cmd/httpyum
# Run
./httpyum example.httphttpyum/
├── cmd/httpyum/ # Main CLI entry point
├── internal/
│ ├── parser/ # .http file parsing
│ ├── client/ # HTTP request execution
│ ├── ui/ # Bubbletea TUI
│ └── config/ # CLI configuration
├── example.http # Example requests
└── README.md
MIT
Contributions are welcome! Please feel free to submit issues or pull requests.
