Skip to content

Command line

HarborClient ships as a single product binary. With no arguments it opens the desktop app; with an HTTP method, run, or workflow it acts as a command-line client that shares the same HTTP stack and local data as the GUI. Download and install HarborClient for your platform, then invoke harborclient from a terminal.

bash
harborclient --help
harborclient -V

Ad-hoc requests

Send a one-off HTTP request without opening the GUI:

bash
harborclient <METHOD> <url> [options]

Supported methods: GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS (case-insensitive).

bash
harborclient GET https://echo.harborclient.com
harborclient POST https://echo.harborclient.com --json '{"ok":true}'
harborclient GET https://echo.harborclient.com -H 'X-Token: secret' -v

The response body is written to stdout. With -v / --verbose, status and response headers go to stderr so you can pipe the body separately.

Ad-hoc options

OptionDescription
-H, --header <Name: value>Add a request header. Repeat for multiple headers. The value is split on the first :.
-d, --data <body>Set the request body as a raw string.
--json <body>Set a JSON body. Adds Content-Type: application/json when that header is not already set.
--timeout <ms>Request timeout in milliseconds.
--no-verify-sslDisable TLS certificate verification.
-v, --verbosePrint HTTP status and response headers to stderr; body still goes to stdout.
-h, --helpShow help. Prefer harborclient --help on the product binary.

Run a collection

Run every request in a saved collection by name or uuid. The CLI reads collections from the same Electron userData directory as the desktop app (for example ~/.config/HarborClient on Linux, ~/Library/Application Support/HarborClient on macOS, and %APPDATA%\HarborClient on Windows).

bash
harborclient run <name-or-uuid> [options]
bash
harborclient run "My Collection"
harborclient run <collection-uuid> --stop-on-failure
harborclient run "My Collection" --user-data /path/to/HarborClient
OptionDescription
--user-data <path>Override the Electron userData directory used to find saved collections.
--stop-on-failureStop after the first failed request or test.

Run a workflow

Run a saved workflow by name or uuid. Workflows are loaded from the same Electron userData directory as collections (for example ~/.config/HarborClient on Linux, ~/Library/Application Support/HarborClient on macOS, and %APPDATA%\HarborClient on Windows). Create and edit workflows in the GUI first — see Workflows.

Playback is headless: the CLI executes request.load, request.draft, request.send, and environment.activate actions. Pure UI actions (tabs, pages, workspaces) and persistence side effects (request.save, request.create, request.cancel) are skipped. For action coverage and hello-world recipes, see Workflows — Run from the CLI.

bash
harborclient workflow run <name-or-uuid> [options]
bash
harborclient workflow run "My Workflow"
harborclient workflow run <workflow-uuid> --stop-on-failure
harborclient workflow run "My Workflow" --export ./results
harborclient workflow run "My Workflow" --user-data /path/to/HarborClient
OptionDescription
--user-data <path>Override the Electron userData directory used to find saved workflows.
--stop-on-failureStop after the first failed request.send (HTTP status 400 or higher, transport error, or failed test).
--export <dir>Write a workflow-run JSON export to this directory (workflow-yyyy-mm-dd-hh-mm-ss.json).

Exit codes

CodeMeaning
0Success (ad-hoc requests also require an HTTP status below 400).
1Transport error, missing or invalid arguments, unknown option, failed collection or workflow run, missing workflow/collection, or (for ad-hoc) HTTP status ≥ 400.

Verbose logging

HarborClient supports optional main-process logging for troubleshooting.

FlagEnvironment variableWhat is logged
-v / --verboseHARBOR_VERBOSE=1Startup steps and diagnostic output
-vv / --very-verboseHARBOR_VERBOSE=2Everything in -v, plus each outbound HTTP request's method, URL, request headers, and body

Response headers and response bodies are never logged, even with -vv.

These flags and HARBOR_VERBOSE control console output only. To write the same diagnostic channels to a rotating log file on disk, set Log file path in Settings → General. When a path is configured, HarborClient writes [verbose] and [request] lines to that file regardless of whether you pass -v or -vv. See Settings — Diagnostic log file for rotation defaults and Browse behavior.

Packaged build:

bash
./HarborClient -v
./HarborClient -vv

Development:

bash
pnpm dev -- -v
pnpm dev -- -vv

Seed collection

Pass --seed on startup to ensure the HarborClient Echo sample collection exists. The flag is idempotent: it imports the collection only when it is missing.

Packaged build:

bash
./HarborClient --seed

Development:

bash
pnpm dev -- --seed

Plugins

Pass --disable-plugins on startup to keep every plugin inactive for that session only. Saved enablement in Settings is unchanged; plugins return to their previous on/off state on the next launch without the flag.

Packaged build:

bash
./HarborClient --disable-plugins

Development:

bash
pnpm dev -- --disable-plugins

Theme

Pass --theme on startup to use a built-in appearance theme for that session only. Saved Settings are unchanged; the theme returns to your stored preference on the next launch without the flag.

ValueDescription
lightLight theme
darkDark theme
systemMatch the operating system preference
high-contrastHigh-contrast theme (aliases: high contrast, high_contrast)

Packaged build:

bash
./HarborClient --theme dark
./HarborClient --theme high-contrast

Development:

bash
pnpm dev -- --theme dark
pnpm dev -- --theme high-contrast

Quit without warning

Pass --quit-without-warning on startup to close or quit the app without prompting when request tabs have unsaved changes. Unsaved edits are discarded.

To make this behavior persistent without passing the flag on every launch, uncheck Warn when exiting the app with unsaved changes in Settings → General. See Settings — Unsaved changes and confirmations.

Packaged build:

bash
./HarborClient --quit-without-warning

Development:

bash
pnpm dev -- --quit-without-warning

Theme picker

Pass --pick-theme on startup to open the appearance theme picker on launch. HarborClient also shows this picker automatically on first install until you choose a theme.

Packaged build:

bash
./HarborClient --pick-theme

Development:

bash
pnpm dev -- --pick-theme

Random user directory

Pass --rand-user-dir on startup to use an isolated temporary profile in the OS temp directory, as if HarborClient were installed on a fresh machine. Settings, databases, plugins, and session storage are written only to that directory—not your normal profile.

On normal quit HarborClient removes the temporary directory. Abnormal termination (for example kill -9 or a crash) may leave it behind.

Combine with -v to print the temporary path in startup logs. This is useful for testing first-run behavior, the theme picker, or reproducing issues without touching your saved data.

Packaged build:

bash
./HarborClient --rand-user-dir
./HarborClient --rand-user-dir -v

Development:

bash
pnpm dev -- --rand-user-dir
pnpm dev -- --rand-user-dir -v

GUI vs CLI

The same binary serves both modes. Empty argv or GUI-only flags open the desktop app; an HTTP method, run, or workflow as the first argument routes to the CLI.

  • harborclient --verbose / harborclient -v (with no method) opens the GUI with main-process verbose logging. See Verbose logging.
  • harborclient GET https://echo.harborclient.com -v is CLI verbose: status and response headers on stderr.

Desktop startup flags such as --seed, --theme, and --disable-plugins are documented under Getting started. They are not CLI request options.

What's next

  • Download — install HarborClient for your operating system.
  • Getting started — launch the desktop app and use startup flags.
  • Making requests — build, send, and inspect HTTP requests in the GUI.
  • Collections — organize saved requests and run them from the sidebar or CLI.
  • Workflows — record multi-step sessions and run them from the GUI or CLI.