VinceWangw/HappyPost

A lightweight local HTTP client with streaming SSE support

★ 1Forks 0JavaScriptGitHub ↗Compare

README

HappyPost

A lightweight, local-first HTTP client that runs in your browser. No Electron, no cloud sync, no account required — just a Python server and a single HTML page.

License Python

Features

  • Send HTTP requests — GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
  • Streaming SSE support — real-time progressive display of streamed responses, with per-event breakdown
  • Collections & folders — save and organize your requests
  • Environments & variables — define {{variable}} placeholders and switch between environments
  • Auth — Bearer Token, Basic Auth, API Key (header or query)
  • Body types — JSON, plain text, form-data, x-www-form-urlencoded
  • Request history — last 100 requests auto-saved
  • cURL import — paste a cURL command to populate the request form
  • SSE Merge — collapse streamed SSE events into a single readable text

Getting Started

Requirements: Python 3.9+

git clone https://github.com/VinceWangw/HappyPost.git
cd HappyPost
./start.sh

Then open http://localhost:8765 in your browser.

start.sh installs dependencies into the local environment and starts the server with auto-reload.

Manual Start

pip install -r requirements.txt
python3 main.py

Project Structure

HappyPost/
├── main.py          # FastAPI server — proxy, collections, history API
├── requirements.txt
├── start.sh
├── static/
│   ├── index.html   # Single-page UI
│   ├── app.js       # All frontend logic
│   └── style.css
└── data/            # Local JSON storage (auto-created, gitignored)
    ├── collections.json
    ├── environments.json
    └── history.json

License

MIT

Contributors

VinceWangw

Issues