Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 0 additions & 46 deletions .compilerc

This file was deleted.

3 changes: 3 additions & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
lts/jod

# 22.20.0
48 changes: 48 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Contributing to HTTP Toolkit Desktop

Thanks for helping improve HTTP Toolkit. This document explains the quickest way to get started working on the desktop shell and how to contribute changes.

Prerequisites

- Node: >= 22 (this repo targets Node 22.x). We recommend using nvm to manage Node versions.
- To use the pinned version (if you have nvm installed):
- nvm install # installs the version in .nvmrc
- nvm use
- Or use your system Node if it meets the minimum version requirement.

To get started

- Clone this repo.
- Install dependencies: `npm install`
- To build & run the electron app locally:
- `npm start` - runs the desktop app, downloading the latest live server & using the live UI from `app.httptoolkit.tech`.
- Useful when working on just the desktop app and you want to test against the real live environment.
- `npm run start:dev` - runs the desktop app with no built-in server, using the UI from `http://localhost:8080`.
- Useful when you're running a local UI and/or server and want the desktop shell to host that UI.
- To work on the UI and see it inside the desktop app, start the UI project (https://github.com/httptoolkit/httptoolkit-ui) with `npm start`.
- Alternatively, run the server project (https://github.com/httptoolkit/httptoolkit-server) with `npm start`, and `npm run start:web` in the UI project to run server + UI locally.
- To build distributable packages:
- `npm run build` - builds & packages the desktop app for your current platform.

A few tips

- Electron dev behaviour isn't identical to production build behaviour — verify changes in a real built version too.
- Most distributable build configuration lives in the `build` field of `package.json`.- CI pull requests do not receive secret environment variables, so packaging-related builds may fail in CI for PRs. This is expected — maintainers will manually build and evaluate such PR changes when necessary.

Reporting issues

- For bugs or feature requests related to HTTP Toolkit itself, prefer filing issues at the main repo: https://github.com/httptoolkit/httptoolkit/
- For issues specific to this desktop shell (packaging, Electron behaviour, installers), open an issue in this repo.

Making changes & pull requests

- Create a feature branch from main for each change.
- Keep PRs focused and include a clear description of the problem and your solution.
- Ensure the TypeScript compiles: `npm run build:src`
- If your change affects packaging or build steps, include instructions to reproduce locally.
- CI must pass before merging; maintainers will review and merge.

Coding style & tests

- This project is TypeScript. Follow existing code patterns and style.
- Run the TypeScript compiler to check for errors: `npm run build:src`
23 changes: 2 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,32 +31,13 @@ The builds themselves are done on GitHub Actions, and tagged `main` builds are a

If you want to change the behaviour of the HTTP Toolkit desktop shell (but not its contents), change how it's built, or add a new target platform or format, then you're in the right place :+1:.

To get started:

* Clone this repo.
* `npm install`
* To build & run the electron app locally:
* `npm start` - runs the desktop app, downloading the latest live server & using the live UI from `app.httptoolkit.tech`.
* This is useful if you're working on just the desktop app, and want to see your changes with the real live environment.
* `npm run start:dev` - runs the desktop app, with no built-in server using the UI from `localhost:8080`
* This effectively assumes you're bringing your own working UI & server, and is useful for working on this.
* You can start both from the [UI project](https://github.com/httptoolkit/httptoolkit-ui) with just `npm start`, to work on the UI within the desktop app.
* Alternatively, you can run `npm start` in the [server project](https://github.com/httptoolkit/httptoolkit-server), and `npm run start:web` in the UI project, to work on the server or both.
* To build distributable packages:
* `npm run build` - this will attempt to build & package the desktop app for your current platform

A few tips:

* Electron dev behaviour isn't identical to production build behaviour, make sure you check your changes in a real built version.
* Most distributable build configuration is in under the `build` field in [`package.json`](./package.json).
* To fully build packages, you may find some platforms complain about that signing certificates are required. You'll probably need to unset fields like `forceCodeSigning` to disable that.
* In CI, pull requests don't receive secret environment variables, so builds may fail. Confirm that that's what's happening, and if so that's ok - the team will manually build & evaluate PR changes to resolve this.
Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to get started contributing to this repo.

## License

The HTTP Toolkit desktop application source code is licensed under AGPL-3.0, [as documented in this repo](/LICENSE).

The binary downloads available in this repo or from [httptoolkit.com](https://httptoolkit.com) however may be used under one of two licenses:
The binary downloads available in this repo or from [httptoolkit.com](https://httptoolkit.com) however may be used under one of two licenses:

* [AGPL-3.0](/LICENSE), for those who want to modify and redistribute them, within the constraints of that license.
* [Creative Commons Attribution-NoDerivatives 4.0 International License](https://creativecommons.org/licenses/by-nd/4.0/) for those who don't need those rights and want to avoid any concerns about AGPL licensing.
Loading