Skip to content

v0.6.0

Choose a tag to compare

@mikecarroll mikecarroll released this 03 Jul 22:38
· 51 commits to main since this release
eae17ca

coolhand-cli v0.6.0

July 2026 · npm · GitHub

What's new in v0.6.0

This release adds workload management commands, a global --client-id flag with an environment-variable equivalent, interactive client selection when multiple accounts are configured, and moves coolhand claude's proxy off the deprecated coolhand-proxy binary onto an in-process HTTPS MITM proxy. wildcard also gained local feedback queuing so submissions are never silently dropped when logged out.

New commands

coolhand list-workloads — browse and search workloads by name with pagination (--search, --page, --per-page, --include-archived, --include-system, --include-templates). Requires a private API key (coolhand login --scope private).

coolhand get-workload --id <id> and coolhand update-workload --id <id> [--name VALUE] [--description VALUE] — fetch or rename/re-describe a single workload. update-workload requires at least one of --name/--description; renaming a system workload (Unmatched, Embedding Requests, Ignored API Calls) is rejected by the API, though updating its description is allowed.

Changes

--client-id ID now works as a global flag, placed before the subcommand (e.g. coolhand --client-id acme list-workloads), in addition to the existing per-command position. This also applies to coolhand claude.

COOLHAND_CLIENT_ID environment variable selects a stored client without passing --client-id on every invocation. Priority: --client-id flag > COOLHAND_CLIENT_ID env > configured default > auto-pick (single client) > interactive prompt.

Interactive client selection. When multiple clients are stored and no default is configured, API commands now prompt interactively (TTY) or emit a descriptive error listing all clients (non-TTY) instead of failing with NOT_CONFIGURED. Every client-aware command now also prints Client: <name> (<id>) to stderr so the active account is always visible.

coolhand claude now runs an in-process HTTPS MITM proxy (powered by mockttp) instead of shelling out to the deprecated coolhand-proxy binary. A CA certificate is generated on first run and persisted to ~/.coolhand/proxy/ca-cert.pem — see docs/proxy.md for system trust store installation. It also now works correctly on Windows (spawned via cmd.exe /d /s /c with explicit argument quoting) and exits with a clear error if the configured client has no public API key.

wildcard now saves feedback locally to ~/.coolhand/pending/ when no API key is configured, instead of silently dropping it. Pending feedback uploads automatically on the next coolhand login, with a retry prompt if that upload fails.

Login and account handling improvements: coolhand login --scope private no longer errors if the private key is declined on the consent page (it stores the public key and notes MCP access wasn't granted); a warning is now emitted when the default client no longer exists; status/whoami/clients show (no public key) instead of *** for private-key-only clients; mcp-call now uses the shared client-resolution chain and treats { error: "..." } tool results as failures.

Breaking changes

None.