api-client/packages/hoppscotch-desktop
Shreyas 137e95e873
fix(relay): expand MIME type support (#5306)
This fixes file uploads incorrectly showing MIME type as "Other" instead
 of their actual content types by expanding the `MediaType` enum relay
 to include common audio, video, and image formats.

 Basically `MediaType` enum is used for both `ContentType` which would
 map to `ContentType` from `hoppscotch-data` (e.g. `multipart/form-data`)
 but also to `FormValue` in `interop`
 ```rust
 pub enum FormValue {
     ...
     File {
         filename: String,
         content_type: MediaType,
         data: Bytes,
     },
 }
 ```
 although the later should be much more pervasive.

 This is a follow up on #5244

 Closes FE-887
 Closes #3810
 Closes #5223
 Closes #5233

 The issue occurred because the `relay`'s `MediaType` couldn't deserialize
 beyond the basic types (text, JSON, XML, etc.), lacked support for
 other media file types. The TypeScript layer correctly detected MIME
 types (e.g., "audio/x-m4a"), but the deserialization process fell back
 to `MediaType::Other`. Main reason for servers performing strict MIME
 validation to reject uploads.
2025-08-08 13:51:46 +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 fix(relay): expand MIME type support (#5306) 2025-08-08 13:51:46 +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.7.0 2025-07-28 23:48:07 +05:30
src-tauri fix(relay): expand MIME type support (#5306) 2025-08-08 13:51:46 +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: bump version to 2025.7.0 2025-07-28 23:48:07 +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 feat: platform independent core and the new desktop app (#4684) 2025-02-28 00:01:25 +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 feat(desktop): portable phase-1 foundational: infra & build (#5259) 2025-07-24 15:45:48 +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 ↩︎