Awesome
HTTP Toolkit UI
This repo contains the UI for HTTP Toolkit, a beautiful, cross-platform & open-source HTTP(S) debugging proxy, analyzer & client.
Looking to file bugs, request features or send feedback? File an issue or vote on existing ones at github.com/httptoolkit/httptoolkit.
What is this?
HTTP Toolkit is built as a single-page web application (this repo), running on top of a server that provides access to non-web functionality (e.g. running a proxy server), typically run through an electron desktop wrapper app. The core UI and the majority of HTTP Toolkit functionality all lives here, except for desktop-app specific behaviour & build configuration, or functionality that can't be implemented in a web app.
The UI is built as a TypeScript React app, using MobX for state and Styled Components for styling, with Mockttp used to manage the HTTP interception itself.
When running, the UI is typically used via app.httptoolkit.tech, even in the desktop app (it's not embedded there, but hosted standalone). It can either be used through the desktop app (which starts its own server), or users can start their own server and open the UI in a browser directly.
Contributing
If you want to change the behaviour of the HTTP Toolkit in almost any way, except the low-level HTTP handling (see Mockttp), how interceptors start applications (see httptoolkit-server) or how it's packaged and distributed (see httptoolkit-desktop), then you're in the right place :+1:.
To get started:
- Clone this repo.
npm install
- On an arm64 Mac, you may see a Puppeteer error saying "The chromium binary is not available for arm64". See https://github.com/puppeteer/puppeteer/issues/6622 for more details. As a quick fix you can run
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
and then re-run npm install (you may need to delete node_modules first). In this case, the integration tests won't work but that's rarely important for local development.
- On an arm64 Mac, you may see a Puppeteer error saying "The chromium binary is not available for arm64". See https://github.com/puppeteer/puppeteer/issues/6622 for more details. As a quick fix you can run
- For pure UI development
- Run
npm start
to start the UI along with a backing httptoolkit server.- On an arm64 Mac, this may not work. You can run the server in development mode locally though (jump to the next section).
- Open
localhost:8080
to view the UI.
- Run
- To develop the UI & server together
- Start a server locally
- Run
npm run start:web
to start the UI without running a separate HTTP Toolkit server - Open
localhost:8080
to view the UI
npm test
- run the tests