Skip to content

Plugins

HarborClient plugins extend the app with custom settings panels, sidebar views, request tabs, HTTP hooks, and persistent storage. See Using plugins in the app for installation, management, and catalog sources.

Catalog updated 8/8/2026.

AWS SigV4

Install

Version
1.0.13
Publisher
HarborClient
Categories
RequestsAuthentication
Repository
https://github.com/harborclient/plugin-aws-sigv4 (v1.0.13)
Permissions
uistoragehttpipc

HarborClient plugin that signs outgoing HTTP requests with AWS Signature Version 4.

Features

  • Collection Settings tab for access key, secret, region, service, and optional session token
  • Request editor tab for per-request credential profile selection and overrides
  • Automatic signing on Send via the main-process onBeforeSend hook
  • Toolbar Sign request action for signature preview and validation

Setup

pnpm install
pnpm build

Load this folder in HarborClient via Settings → Plugins → Load unpacked….

Requires HarborClient >=1.8.4 and @harborclient/sdk@^0.4.3.

Development

pnpm dev

Rebuilds dist/renderer.js and dist/main.js on change.

Usage

  1. Open Collection Settings → AWS SigV4 and save credentials for a collection.
  2. Open a request and switch to the AWS SigV4 tab.
  3. Select the credential profile and enable Auto-sign this request on Send.
  4. Send the request — Authorization and X-Amz-* headers are injected automatically.

Use Preview signature or the toolbar Sign request button (while the AWS tab is open) to validate credentials before sending.

Sign and verify

pnpm plugin:sign -- --dir . --private-key /path/to/signing.pem --key-id harborclient-official
pnpm plugin:verify -- --dir . --public-key /path/to/public.key

See the @harborclient/sdk signing docs for key generation and signature.json format.

Pack

pnpm pack

Creates aws-sigv4.hcp for distribution.

Color

Install

Version
1.0.4
Publisher
HarborClient
Categories
UtilitiesDebugging
Repository
https://github.com/harborclient/plugin-color (v1.0.4)
Permissions
uistorage

Sample colors from anywhere on screen with HarborClient's footer eyedropper panel.

Features

  • Footer panel — "🎨 Color" toggle slides up the eyedropper panel
  • Screen picker — uses the Chromium EyeDropper API so the cursor becomes a system color picker
  • Formats — HEX, RGB, HSL, HSV, and CMYK with one-click copy
  • Recent swatches — last sampled colors persist via plugin storage

Setup

pnpm install
pnpm build

Load the project folder in HarborClient via Settings → Plugins → Load unpacked….

Requires @harborclient/sdk@^1.0.67 from npm.

Development

pnpm dev

Rebuilds dist/renderer.js on change. Keep the Color footer panel open for hot reload.

Usage

  1. Click 🎨 Color in the footer bar.
  2. Click Pick color — the cursor becomes the system eyedropper.
  3. Click anywhere on screen to sample a pixel.
  4. Copy any format row, or click a recent swatch to restore a previous color.

Notes

  • Screen picking needs the Web EyeDropper API (Chromium / Electron). On some Linux/Wayland setups or when screen permissions are denied, the panel shows an inline message and format conversion still works for entered/restored colors.
  • The footer button uses a palette emoji because plugin footer contributions render title text only (no leading icon slot).

Sign and verify

After building entry files, sign the plugin directory with an Ed25519 key:

pnpm sign -- --dir . --private-key /path/to/signing.pem --key-id my-publisher
pnpm verify -- --dir . --public-key /path/to/public.key

cURL

Install

Version
1.1.1
Publisher
HarborClient
Categories
Requests
Repository
https://github.com/harborclient/plugin-curl (v1.1.1)
Permissions
ui

Adds a cURL tab to the request editor that shows an equivalent curl command for the configured request. The command is editable — change it and click Update to apply the parsed request back to the active tab. A Copy button copies the current editor text.

Install

Build the plugin, then install the .hcp package or load the project folder unpacked:

pnpm install
pnpm build

In HarborClient: Settings → Plugins → Load unpacked… and select this directory.

Requires HarborClient with hc.host.applyRequestDraft support (SDK @harborclient/sdk ≥ 1.1.31).

Development

pnpm dev

Rebuilds dist/renderer.js on change when HarborClient file watching is enabled for unpacked plugins.

Bidirectional editing

  1. Open a request and switch to the cURL tab to see the generated command.
  2. Edit the command in the editor (method, URL, headers, body flags).
  3. Click Update to parse the command and replace the active request’s method, URL, headers, and body.
  4. Click Copy to copy the current editor contents.

The editor resyncs when you edit the request in other tabs (Params, Headers, Body, etc.).

Limitations

Aspect Behavior
Variables Resolved from collection + active environment (environment wins on dupes)
Cookie jar Not included unless a Cookie header is set manually
Pre/post scripts Do not affect displayed cURL; Update does not modify scripts
Multipart files Uses stored file paths (@/path) on the local machine
Auth tab Generated Authorization headers round-trip as headers, not Auth tab mode
Unsupported flags Common browser “Copy as cURL” noise flags are ignored; unknown flags skip

License

MIT

Dotenv

Install

Version
1.0.14
Publisher
HarborClient
Categories
EnvironmentsImport
Repository
https://github.com/harborclient/plugin-dotenv (v1.0.14)
Permissions
uifilesystem:pickfilesystem:readstorage

HarborClient plugin that links a .env file to an environment and keeps variables in sync.

Features

  • Pick a .env file per collection from Collection Settings → Dotenv
  • Create a new HarborClient environment from parsed .env values
  • Keep the linked environment mirrored to the file with filesystem watch or polling fallback
  • Configure key prefix filtering, prefix stripping, and key transforms in Settings → Dotenv Sync

Permissions

  • ui — settings panels and collection tab
  • filesystem:pick — choose .env files
  • filesystem:read — read linked files and watch for changes
  • storage — persist links and settings

Development

pnpm install
pnpm dev

Load the unpacked plugin folder in HarborClient Settings → Plugins, or start HarborClient with:

HARBOR_PLUGINS_DEV=/path/to/harborclient-plugin-dotenv pnpm dev

Build a distributable plugin package:

pnpm pack

Sync behavior

  1. Choose a .env file and click Sync now.
  2. Enter a name for the new environment on first sync.
  3. Enable Keep in sync to automatically push file changes into the linked environment.

When filesystem watch is unavailable, the plugin polls at the configured interval from Settings → Dotenv Sync.

Echo Server

Install

Version
1.0.8
Publisher
HarborClient
Categories
RequestsScripting
Repository
https://github.com/harborclient/plugin-echo (v1.0.8)
Permissions
uiipcserverstorage

HarborClient plugin that runs a local httpbin-style HTTP echo server inside the app.

Features

  • Footer panel Echo server with port configuration, start/stop controls, and a request script editor
  • Status indicator in the footer bar showing whether the server is active
  • Optional request script using the same hc API as collection pre-request scripts
  • Sets the global variable echoBaseUrl (for example http://localhost:4335) when the server starts

Permissions

  • ui — footer panel, status bar item, and host global variable command
  • ipc — renderer ↔ main coordination for start/stop/status
  • server — local express echo server in the Electron main process

Development

pnpm install
pnpm build

Load the unpacked plugin directory from HarborClient Settings → Plugins → Load unpacked.

Request script

When the script returns a value, that JSON is sent as the response body. When it returns nothing (or is empty), the server responds with the default echo payload:

  • args, data, files, form, headers, json, origin, url

Example:

hc.request.method;
// return custom body:
({ message: 'hello', method: hc.request.method });

HarborClient CLI Request

Install

Version
1.0.1
Publisher
HarborClient
Categories
Requests
Repository
https://github.com/harborclient/plugin-cli-request (v1.0.1)
Permissions
ui

Adds a CLI tab to the request editor that shows an equivalent harborclient command for the configured request. The command is editable — change it and click Update to apply the parsed request back to the active tab. A Copy button copies the current editor text.

Install

Build the plugin, then install the .hcp package or load the project folder unpacked:

pnpm install
pnpm build

In HarborClient: Settings → Plugins → Load unpacked… and select this directory.

Requires HarborClient with hc.host.applyRequestDraft support (SDK @harborclient/sdk ≥ 1.1.31).

Development

pnpm dev

Rebuilds dist/renderer.js on change when HarborClient file watching is enabled for unpacked plugins.

Bidirectional editing

  1. Open a request and switch to the CLI tab to see the generated command.
  2. Edit the command in the editor (method, URL, headers, body flags).
  3. Click Update to parse the command and replace the active request’s method, URL, headers, and body.
  4. Click Copy to copy the current editor contents.

The editor resyncs when you edit the request in other tabs (Params, Headers, Body, etc.).

Example commands

harborclient GET https://httpbin.org/get
harborclient POST https://httpbin.org/post -H 'X-Token: secret' --json '{"hello":"world"}'
harborclient POST https://httpbin.org/post -d 'plain text'

Limitations

Aspect Behavior
Variables Resolved from collection + active environment (environment wins on dupes)
Cookie jar Not included unless a Cookie header is set manually
Pre/post scripts Do not affect displayed CLI; Update does not modify scripts
urlencoded / multipart Exported as best-effort -d body text; body type may not round-trip
Auth tab Generated Authorization headers round-trip as headers, not Auth tab mode
Execution flags --timeout, --no-verify-ssl, and -v are ignored on Update

License

MIT

Hello, Sidebar

Install

Version
1.0.1
Publisher
Example Inc.
Categories
Requests
Repository
https://github.com/harborclient/plugin-hello-sidebar (v1.0.1)
Permissions
ui

HarborClient plugin that replaces the built-in Collections sidebar with a collections-only tree — folders, requests, and markdown documents. No Environments, Runs, History, Workspaces, Archive, or Trash sections.

This is the “Hello, World” demo for sidebar replacement via contributes.sidebarPanels with replaces: "collections".

Features

  • Replaces the built-in Collections sidebar when loaded
  • Reads the library with hc.host.listLibraryTree and refreshes on onLibraryChanged
  • Opens requests and documents through host selection / load APIs
  • Host-mediated row context menus (showEntityContextMenu)
  • UI built from @harborclient/sdk/components (SidebarTree, SidebarFolderItem, SidebarRequestItem, SidebarDocumentItem, …)

Setup

pnpm install
pnpm build

Load the project folder in HarborClient via Settings → Plugins → Load unpacked….

Requires a HarborClient build that supports collections sidebar replacement (engines.harborclient >= 2.6.0) and @harborclient/sdk with the library host APIs (listLibraryTree, selection bridge, entity context menus).

Local SDK development

Do not commit file: paths in package.json. To test against a local @harborclient/sdk checkout without changing tracked files, use one of:

  • pnpm link from the published package directory after pnpm pack in packages/sdk
  • A gitignored override file (for example .pnpmfile.cjs or a local-only pnpm-workspace.yaml entry) that only exists on your machine

Development

pnpm dev

Rebuilds dist/renderer.js and dist/main.js on change. Keep the sidebar panel open for hot reload.

Customize

  1. Change id, name, and contributes in manifest.json.
  2. Extend the tree under src/components/.
  3. Add mutations or DnD using the host APIs documented in the SDK sidebar-replacement-tree example.

HTTPie

Install

Version
1.1.1
Publisher
HarborClient
Categories
Requests
Repository
https://github.com/harborclient/plugin-httpie (v1.1.1)
Permissions
ui

Adds an HTTPie tab to the request editor that shows an equivalent http command for the configured request. The command is editable — change it and click Update (or blur the editor) to apply the parsed request back to the active tab. A Copy button copies the current editor text.

Install

Build the plugin, then install the .hcp package or load the project folder unpacked:

pnpm install
pnpm build

In HarborClient: Settings → Plugins → Load unpacked… and select this directory.

Requires HarborClient with hc.host.applyRequestDraft support (SDK @harborclient/sdk ≥ 1.1.31).

Development

pnpm dev

Rebuilds dist/renderer.js on change when HarborClient file watching is enabled for unpacked plugins.

Bidirectional editing

  1. Open a request and switch to the HTTPie tab to see the generated command.
  2. Edit the command in the editor (method, URL, headers, body flags).
  3. Click Update, or leave the editor (blur), to parse the command and replace the active request’s method, URL, headers, and body.
  4. Click Copy to copy the current editor contents.

The editor resyncs when you edit the request in other tabs (Params, Headers, Body, etc.). Blur only applies when the text differs from the generated command.

Limitations

Aspect Behavior
Variables Resolved from collection + active environment (environment wins on dupes)
Cookie jar Not included unless a Cookie header is set manually
Pre/post scripts Do not affect displayed HTTPie; Update does not modify scripts
Multipart files Uses stored file paths (field@/path) on the local machine
Auth tab Generated Authorization headers round-trip as headers, not Auth tab mode
Unsupported flags Common HTTPie noise flags are ignored; unknown flags skip

License

MIT

Interval

Install

Version
1.0.11
Publisher
HarborClient
Categories
Requests
Repository
https://github.com/harborclient/plugin-interval (v1.0.11)
Permissions
uistorage

Adds a Timer tab to the request editor for interval polling and one-shot delayed sends. Form fields support {{variables}} resolved from collection and environment variables.

Use the timer plugin to re-send requests at regular intervals or after a delay. For instance, to refresh authentication tokens or check for new data.

Install

pnpm install
pnpm build

In HarborClient: Settings → Plugins → Load unpacked… and select this directory.

Requires HarborClient >=1.8.0 with hc.host.sendRequest (@harborclient/sdk >=0.4.3).

Development

pnpm dev

Modes

Mode Behavior
Interval Resend every N milliseconds until stopped
Delay Send once after N milliseconds (one-shot)

Optional max sends caps interval runs. Settings are persisted per request URL/method fingerprint.

License

MIT

JWT Inspector

Install

Version
1.0.8
Publisher
HarborClient
Categories
JWTResponse
Repository
https://github.com/harborclient/plugin-jwt (v1.0.8)
Permissions
ui

HarborClient plugin that adds a JWT tab to the response viewer. It scans response headers and body for JWT-shaped strings, lists every match, and decodes the selected token (base64url header and payload only — no signature verification).

Development

pnpm install
pnpm dev

In HarborClient: Settings → Plugins → Load unpacked… and select this directory.

Optional:

HARBOR_PLUGINS_DEV=/var/www/harborclient-plugin-jwt pnpm dev

(from the HarborClient repo)

Build

pnpm build
pnpm pack   # produces jwt.hcp

Tests & quality

pnpm test
pnpm typecheck
pnpm lint
pnpm format:check
pnpm check:bundle

Load Tester

Install

Version
1.0.11
Publisher
HarborClient
Categories
TestingCollectionsRequests
Repository
https://github.com/harborclient/plugin-load-tester (v1.0.11)
Permissions
uistoragedatabasefilesystem:picknetwork

HarborClient plugin that drives repeated HTTP requests against the active request or an entire collection/folder and charts latency, throughput, and error rate.

Features

  • Load Tester request tab — configure total requests, concurrency, timeout, delay, and keep-alive preference, then run a load test for the open request.
  • Load Testing response tab — view latency-over-time, percentile, and status distribution charts for the active request.
  • Collection / folder menu — choose Load Test from the sidebar hamburger menu to open a modal with the same form and run against every saved request in scope.

Permissions

  • ui — request/response tabs, status bar modal host, and context menu action
  • storage — persist load test results and progress across sessions
  • database — optional plugin database schema for future run history
  • filesystem:pick — export load test reports via a save dialog
  • network — send load test requests through HarborClient’s main-process HTTP pipeline

Network access

HarborClient also requires a runtime grant before network plugins can send:

  1. Approve network access when installing or updating this plugin, or
  2. Enable Allow script network requests in Settings → General.

Without that grant, every request fails immediately and the run finishes in milliseconds.

Development

pnpm install
pnpm dev

Load the unpacked plugin from this directory in Settings → Plugins.

pnpm lint
pnpm typecheck
pnpm test
pnpm build

Catalog

Published as com.harborclient.plugins.load-test.

Mock Server

Install

Version
1.0.4
Publisher
HarborClient
Categories
MockingRequestsScripting
Repository
https://github.com/harborclient/plugin-mock-server (v1.0.4)
Permissions
uiipcserverstorage

HarborClient plugin that runs a local WireMock-style HTTP mock server inside the app.

Features

  • Footer panel Mock server with port, start/stop, status, and an Open Mock Server button
  • Full-page Mock Server tab for the stub list and Match/Respond/Scripts editor
  • Match incoming requests by HTTP method and path (exact or trailing * prefix)
  • Respond with custom status codes, headers, JSON or text bodies, and optional delay
  • Per-stub Before and After scripts (same hc sandbox as Echo / collection scripts)
  • Sets the global variable mockBaseUrl (for example http://localhost:4335) when the server starts
  • Status indicator on the footer toggle showing whether the server is listening

Permissions

  • ui — footer panel, full-page main view, and status indicator
  • ipc — renderer ↔ main coordination for start/stop/status/stubs
  • server — local loopback HTTP server in the Electron main process
  • storage — persist stubs and share running status across plugin webviews

Development

pnpm install
pnpm build

Load the unpacked plugin directory from HarborClient Settings → Plugins → Load unpacked.

Requires HarborClient >= 2.5.4 with structured hc.server.onRequest responses (kind: 'http-response').

Stubs

Each stub has:

Field Description
Method GET, POST, …, or * for any method
Path Exact path, or a trailing * for prefix match (for example /api/*)
Status HTTP status code (default 200)
Headers Optional response headers
Body JSON object/array text, or plain text
Delay Milliseconds to wait before responding
Before script Runs after this stub matches, before the canned response is used
After script Runs just before the response is returned to the host

Enabled stubs are evaluated in list order (top first). The first match wins. Unmatched requests return 404 with a JSON error body (no scripts run).

Script lifecycle

For a matched stub:

  1. Before (phase: 'pre') — hc.request is the inbound request. Mutable request APIs and console / hc.test are available. There is no hc.response yet.
  2. Build the planned response from the stub’s status, headers, body, and delay (unless Before already overrode it).
  3. After (phase: 'post') — hc.response is the planned response (read-only). Use it for inspection or tests.
  4. Return the final response to the host (delay still applied by HarborClient).

Script return values

Empty scripts and comment-only scripts are skipped. Script errors are logged and the planned response is kept.

A non-null return value overrides the planned response:

  • { kind: 'http-response', status?, headers?, body?, delayMs? } replaces the whole response (delayMs falls back to the planned delay when omitted).
  • Any other value replaces only body, keeping status, headers, and delay.

Example Before override:

return { ok: "from before", path: hc.request.url };

Example After override:

const data = hc.response.json();
data.via = "after";
return data;

Sign and verify

pnpm sign -- --dir . --private-key /path/to/signing.pem --key-id harborclient-official
pnpm verify -- --dir . --public-key /path/to/harborclient.key

Request History

Install

Version
1.0.13
Publisher
HarborClient
Categories
RequestsLogging
Repository
https://github.com/harborclient/plugin-history (v1.0.13)
Permissions
uistoragehttp

A HarborClient plugin that records every successful HTTP request and response in a persistent footer panel.

Features

  • History footer toggle — slide-up panel matching Console and Variables
  • Automatic capture on every successful send
  • Entries persist across app restarts until you clear them
  • Expand any row to inspect request and response headers and bodies

Permissions

Permission Why
ui Footer History panel
storage Persist entries in plugin-scoped SQLite storage
http Capture requests after each successful send
ipc Bridge captured entries from main process to renderer

Development

pnpm install
pnpm build

Load the plugin in HarborClient:

  1. Open Settings → Plugins → Load unpacked… and select this directory.
  2. In the permissions dialog, click Enable (unpacked plugins stay disabled until you confirm).
  3. Return to the request editor — a History button appears in the footer beside Console and Variables.

Or run HarborClient with:

HARBOR_PLUGINS_DEV=/path/to/harborclient-plugin-history pnpm dev

For live rebuilds:

pnpm dev

Then reload the plugin from Settings → Plugins.

Packaging

pnpm pack

Install the resulting request-history.hcp from Settings → Plugins.

Limitations

  • Only successful HTTP responses are recorded (failed sends are not captured by the plugin API today).
  • Request/response bodies are truncated at 64 KiB each to keep storage manageable.
  • Duration, response size, collection name, and saved request name are not available from HTTP hooks.
  • History cannot reload a request into the editor (not supported by the plugin API).
  • Disabling the plugin stops new captures; existing data remains in storage. Uninstalling may leave data in the local database.

Submit your plugin

Host your plugin in a public GitHub repository, then open a pull request that adds an entry to plugins/catalog.json. See Publish to the marketplace for the required fields and review process.