Skip to content

v0.10.0

Choose a tag to compare

@mikecarroll mikecarroll released this 23 Aug 17:17
· 28 commits to main since this release
6a1d67e

coolhand-cli v0.10.0

August 2026 · npm · GitHub

What's new in v0.10.0

This release adds two new commands for uploading files and generated reports to Coolhand as client files, attaches project-path metadata to submitted Claude Code sessions, and includes a batch of security hardening fixes to the MITM proxy, CA trust handling, and secret redaction.

New commands

coolhand upload-client-file — uploads a local file to Coolhand as a client file (via coolhand-node's Coolhand#uploadClientFile). Requires a private API key (coolhand login --scope private); a 20MB size cap matches coolhand-node's documented limit.

coolhand upload-client-file report.pdf --file-type report --description "Q3 summary"

Supports --name, --file-type, --description, --dry-run, --client-id, and --json.

coolhand map-claude-projects — recursively searches the home directory (or --root) for every folder named claude/.claude, and uploads a single markdown report listing the full file tree beneath each match with basic metadata (size, extension, created/modified times) — names and metadata only, never file contents.

coolhand map-claude-projects --dry-run --output ~/claude-map.md

Supports --root, --output (write the report locally for inspection without uploading), --dry-run, --client-id, and --json.

Changed

coolhand-node bumped to ^0.11.0 (now published to npm), dropping the temporary git-commit pin used while its PR was in review.

coolhand wildcard's scope broadened to cover tasks that would take too long or run indefinitely to complete, not just capabilities that are flatly unavailable.

analyze-claude-sessions now attaches metadata.project_path to submitted Claude Code sessions, taken from the transcript's own working directory. Cowork sessions are excluded, since Cowork has no real on-disk project concept.

Security

Terminal output is now stripped of ANSI/VT100 escape sequences before printing server-controlled text (status, whoami, clients, get-feedback), closing a terminal-control-sequence injection vector.

The MITM proxy's CA key/cert pair is now validated (ownership, file type, permissions) before being trusted, instead of silently adopting whatever's already on disk.

Sensitive query-string parameters are now redacted from captured proxy URLs before upload — some LLM APIs authenticate via ?key=... rather than a header.

The proxy's header-redaction list now includes cf-aig-authorization (Cloudflare AI Gateway).

map-claude-projects no longer walks a matched symlink whose target resolves outside the search root, closing a path where a planted symlink could leak an arbitrary directory's file listing into an uploaded report.

Fixed

redactSecrets now catches secrets in plain JSON ({"api_key": "value"}), not just unquoted-key assignment syntax, and adds a pattern for PEM-formatted private key blocks.

Pinned ip-address and get-port to resolve a high-severity SSRF advisory and a get-port ESM/CommonJS crash on Node 22.

--base-url now consistently enforces https-except-loopback across login and the proxy path.

analyze-claude-sessions --exclude-project now applies to Cowork sessions.

Windows: fixed a cmd.exe quoting inconsistency in the proxy's spawned-command escaping.

The prepare script now runs the full build, not just the version sync, fixing git-ref installs that previously produced a package with no compiled dist/.

Breaking changes

None. All changes are additive or security hardening — no removed/renamed commands, flags, or config fields.