api-client/packages/hoppscotch-desktop
Shreyas ecf7d2507a
feat(relay): control redirect follow (#5508)
Add per-domain toggle to disable automatic HTTP redirect following in
 the Native and Agent interceptors. When disabled, requests return the
 redirect response (status code, headers, body) without following the
 Location header.

 Previously HTTP redirects were always followed (on browser, can't do
 much about that, see
 https://fetch.spec.whatwg.org/#atomic-http-redirect-handling) without
 option to inspect the redirect response itself. This prevented
 developers from accessing redirect metadata needed when testing OAuth
 flows (PKCE where intermediate responses contain authorization tokens),
 authentication endpoints that return codes in Location headers with 302
 status, and debugging API redirect chains. But on the desktop app,
 redirects were just never followed, creating the opposite effect.

 The browser's fetch API applies atomic HTTP redirect handling per spec,
 making it impossible to intercept redirects and inspect their responses.
 The Native and Agent interceptors use curl and native HTTP clients
 respectively, both supporting redirect control, making this feature
 viable for these specific interceptors. (Proxyscotch tbd).
2025-10-27 17:41:58 +05:30
..
crates/webapp-bundler feat: platform independent core and the new desktop app (#4684) 2025-02-28 00:01:25 +05:30
plugin-workspace feat(relay): control redirect follow (#5508) 2025-10-27 17:41:58 +05:30
public feat: platform independent core and the new desktop app (#4684) 2025-02-28 00:01:25 +05:30
src chore: bump version to 2025.9.2 2025-10-07 17:22:25 +05:30
src-tauri feat(relay): control redirect follow (#5508) 2025-10-27 17:41:58 +05:30
.eslintrc.cjs feat(desktop): portable phase-1 foundational: infra & build (#5259) 2025-07-24 15:45:48 +05:30
.gitignore feat: platform independent core and the new desktop app (#4684) 2025-02-28 00:01:25 +05:30
connection-to-self-hosted-instance.png docs(desktop): update README (#4864) 2025-03-10 22:46:15 +05:30
desktop-app.png docs(desktop): update README (#4864) 2025-03-10 22:46:15 +05:30
index.html feat: platform independent core and the new desktop app (#4684) 2025-02-28 00:01:25 +05:30
package.json chore: security patch for the dependency chain (#5487) 2025-10-22 18:48:20 +05:30
postcss.config.js feat: platform independent core and the new desktop app (#4684) 2025-02-28 00:01:25 +05:30
README.md docs(desktop): add minimum system requirements (#5096) 2025-05-26 12:22:21 +05:30
tailwind.config.ts chore(native): bump and align dependencies (#5331) 2025-08-21 16:24:30 +05:30
tsconfig.json feat(desktop): portable phase-1 foundational: infra & build (#5259) 2025-07-24 15:45:48 +05:30
tsconfig.node.json feat: platform independent core and the new desktop app (#4684) 2025-02-28 00:01:25 +05:30
vite.config.ts chore(native): bump and align dependencies (#5331) 2025-08-21 16:24:30 +05:30

Hoppscotch Desktop App ALPHA

Hoppscotch Desktop

Download | Official Docs


Hoppscotch Desktop App is a cross-platform Hoppscotch app built with Tauri V2

Hoppscotch Desktop App

Now with the ability to connect to Self-Hosted instances

Hoppscotch Desktop App

Installation

  1. Download the latest version of Hoppscotch Desktop App
  2. Open the downloaded file.
  3. Follow the on-screen instructions to install Hoppscotch Desktop App.
  4. Open Hoppscotch Desktop App.

Access Options

Hoppscotch Cloud Edition for Individuals

  1. Open Hoppscotch Desktop App.
  2. Click the Hoppscotch logo in the top-left corner.
  3. Click "HOPPSCOTCH CLOUD".
  4. Sign in with your Hoppscotch Cloud account to access your workspaces and collections.

Self-Hosted Edition (Community and Enterprise)

Note

To enable desktop app support for your self-hosted Hoppscotch instance, make sure to update the WHITELISTED_ORIGINS environment variable in your .env file with your deployment URL.

e.g. to allow connection to https://hoppscotch.mydomain.com you need to add app://hoppscotch_mydomain_com (MacOS, Linux) and http://app.hoppscotch_mydomain_com (Windows) to the WHITELISTED_ORIGINS environment variable.

WHITELISTED_ORIGINS=...existing_origins,app://hoppscotch_mydomain_com,http://app.hoppscotch_mydomain_com

To connect to your self-hosted (community or enterprise) instance:

  1. Open Hoppscotch Desktop App.
  2. Click the Hoppscotch logo in the top-left corner.
  3. Click "Add an instance".
  4. Enter the URL of your self-hosted Hoppscotch instance.
  5. Click "Connect".

Note

For docker setup, the desktop app uses a server at port 3200, and it is part of the frontend container:

 docker run -p 3000:3000 -p 3200:3200 hoppscotch/hoppscotch-frontend

Once the container is live, you can enter [your-ip]:3200 or simply the base address of the instance if you are using subpath access.

Building and Self-Hosting Hoppscotch Desktop

You can also build Hoppscotch Desktop locally to self-host with on-prem infra:

  1. Install and generate the selfhost web app:
    cd ../hoppscotch-selfhost-web
    pnpm install
    pnpm generate
    
  2. Build the webapp-bundler:
    cd crates/webapp-bundler
    cargo build --release
    
  3. Bundle the web app:
    cd target/release
    ./webapp-bundler --input [path-to-dist-directory] --output [path-to-hoppscotch-desktop]/bundle.zip --manifest [path-to-hoppscotch-desktop]/manifest.json
    
  4. Run the development server:
    cd hoppscotch-desktop
    pnpm tauri dev
    
    or the following for production build:
    cd src-tauri
    pnpm tauri dev
    

Note

[path-to-dist-directory] should point to the dist directory created by the pnpm generate command in step 1.

Minimum System Requirements

Windows

  • OS Version: Windows 10 1803+ or Windows 11
  • Architecture: x64

macOS

  • OS Version: macOS 10.15 (Catalina) or later
  • Architecture: Intel x64 or Apple Silicon (ARM64)

Linux

  • Architecture: x64
  • Recommended OS: Ubuntu 24.04 or newer (or similar flavor of distros)
  • Minimum: Systems with GLIBC 2.38+

Why Ubuntu 24.04-like flavors or newer?

Ubuntu 24.04-like flavors ships with the exact WebKit2GTK version (2.44.0-2) that is stable enough to correctly handle interaction between WebKit, UI libraries, Mesa drivers, and Wayland displays.123

Important

There may be some display oddities on Wayland systems caused by the interaction between WebKit and the underlying graphics drivers.456

Workaround:

WEBKIT_DISABLE_COMPOSITING_MODE=1 hoppscotch
# or
WEBKIT_DISABLE_DMABUF_RENDERER=1 hoppscotch
# or both together

Misc.

  • Older distributions: The AppImage requires GLIBC 2.38+ 17
    • Users on older systems will see GLIBC version errors like "GLIBC_2.32' not found"8
  • Tauri v2 dependency: The desktop app requires libwebkit2gtk-4.1, which is only available by default in Ubuntu 22.04+ repositories9
  • Build from source: GitHub workflow for building from source10

Sources


  1. WebKit version pinning and GLIBC explanation - Detailed explanation of why specific webkit2gtk 2.44.0-2 is used and GLIBC 2.38+ requirement ↩︎

  2. WebKit 2.44.0-2 selection rationale - Why this specific version provides the best balance for Wayland support ↩︎

  3. Ubuntu webkit2gtk package versions - Official Ubuntu package repositories showing version availability ↩︎

  4. EGL/Mesa/Wayland bug report - Comprehensive bug report about webkit apps showing blank screens on Wayland ↩︎

  5. WebKit GTK Wayland compositing issue - Upstream WebKit bug about compositing mode failures ↩︎

  6. Mesa issue with webkit2gtk - Mesa driver interaction with webkit2gtk causing EGL initialization failures ↩︎

  7. GLIBC compatibility matrix - User reports of specific GLIBC version errors ↩︎

  8. Specific GLIBC error examples - User reports showing exact GLIBC version error messages ↩︎

  9. Tauri v2 webkit requirements - Tauri v2's dependency on libwebkit2gtk-4.1 ↩︎

  10. Hoppscotch Desktop build workflow - Official build workflow and instructions ↩︎