Hey team, I've been running on a fork with a few additions on top of main (commits viewable at https://github.com/cpinto/hey-cli) to enable my Claude Cowork agents to interact with Hey. Wanted to check appetite before proposing any focused PRs.
-
Attachment listing and download: hey attachments <thread-id> and hey attachments download <thread-id> [--entry <id> --index <n> --output <dir>]. Parses two surfaces from /topics/{id}/entries HTML: Trix <figure data-trix-attachment> figures inside body iframes (inline images), and <div class="attachments-browser"> blocks per <article> (real MIME files like PDFs). Both merged onto Entry.Attachments (URL / filename / content_type), exposed in hey threads --json and hey attachments. Filenames sanitized against path-traversal, collisions handled with -1 / -2 suffixes. SDK dep: a new Client.GetBlob(ctx, path) (Accept /, cache-bypass) for binary downloads. Sitting on a branch in https://github.com/cpinto/hey-sdk.
-
Invitees on calendar events: hey event create --invitee a@example.com --invitee b@example.com and the same flag on hey event update with replace-semantics (matches the web form's submit-the-whole-list behavior). Encoded as calendar_event[attendance_email_addresses][] per the form HTML. Read side already works via the existing Recording.attendances field. SDK dep: Invitees []string on Create/UpdateCalendarEventParams, also on the SDK fork branch.
-
SKILL.md audit (doc-only): Walked the full CLI surface against the embedded skill and filled gaps: hey event subcommands, hey config show/set, hey doctor, hey setup, pagination (--all / --limit) on every list command, --starts-on / --ends-on on recordings, all auth login variants, new "Calendar & Events" and "Diagnostics & Setup" decision trees, plus an "Attendance status values" reference (needs_action / accepted / declined / tentative).
Fork-only (not proposing upstream): a make cowork-bundle recipe that builds a self-contained skill zip for Claude Desktop's cowork sandbox. It cross-compiles Linux binaries, embeds a POSIX dispatcher, and optionally bundles OAuth tokens from the keychain. Useful for me but may be too sandbox-specific to land here.
Happy to split into one PR per item, or any subset. The SDK changes can land first in basecamp/hey-sdk so the CLI PRs don't carry a replace directive.
Hey team, I've been running on a fork with a few additions on top of main (commits viewable at https://github.com/cpinto/hey-cli) to enable my Claude Cowork agents to interact with Hey. Wanted to check appetite before proposing any focused PRs.
Attachment listing and download:
hey attachments <thread-id>andhey attachments download <thread-id> [--entry <id> --index <n> --output <dir>]. Parses two surfaces from/topics/{id}/entriesHTML: Trix<figure data-trix-attachment>figures inside body iframes (inline images), and<div class="attachments-browser">blocks per<article>(real MIME files like PDFs). Both merged ontoEntry.Attachments(URL / filename / content_type), exposed inhey threads --jsonandhey attachments. Filenames sanitized against path-traversal, collisions handled with -1 / -2 suffixes. SDK dep: a newClient.GetBlob(ctx, path)(Accept /, cache-bypass) for binary downloads. Sitting on a branch in https://github.com/cpinto/hey-sdk.Invitees on calendar events:
hey event create --invitee a@example.com --invitee b@example.comand the same flag onhey event updatewith replace-semantics (matches the web form's submit-the-whole-list behavior). Encoded ascalendar_event[attendance_email_addresses][]per the form HTML. Read side already works via the existingRecording.attendancesfield. SDK dep:Invitees []stringonCreate/UpdateCalendarEventParams, also on the SDK fork branch.SKILL.md audit (doc-only): Walked the full CLI surface against the embedded skill and filled gaps:
hey eventsubcommands,hey config show/set,hey doctor,hey setup, pagination (--all / --limit) on every list command,--starts-on / --ends-onon recordings, allauth loginvariants, new "Calendar & Events" and "Diagnostics & Setup" decision trees, plus an "Attendance status values" reference (needs_action / accepted / declined / tentative).Fork-only (not proposing upstream): a
make cowork-bundlerecipe that builds a self-contained skill zip for Claude Desktop's cowork sandbox. It cross-compiles Linux binaries, embeds a POSIX dispatcher, and optionally bundles OAuth tokens from the keychain. Useful for me but may be too sandbox-specific to land here.Happy to split into one PR per item, or any subset. The SDK changes can land first in
basecamp/hey-sdkso the CLI PRs don't carry a replace directive.