Skip to content

Features in private fork, which would you want as PRs? #107

Description

@cpinto

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.

  1. 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.

  2. 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.

  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions