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.
- 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
Requirements: Python 3.9+
git clone https://github.com/VinceWangw/HappyPost.git
cd HappyPost
./start.shThen open http://localhost:8765 in your browser.
start.sh installs dependencies into the local environment and starts the server with auto-reload.
pip install -r requirements.txt
python3 main.pyHappyPost/
├── 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