Skip to content

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

@cpinto

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions