Skip to content

No way to choose which of my sender addresses an email is sent from #353

Description

@0x177630b6

Summary

My HEY identity has five sender addresses. The web app lets me pick any of them when composing. The CLI gives me no way to choose one, and as far as I can tell it can only ever send from two of the five.

What the web app does

HEY's compose screen shows all five addresses in a From picker and remembers the one I chose:

user.name@hey.com
user@hey.com
me@domain-c.example
office@domain-b.example
office@domain-a.example      ← selected

Sending posts the chosen sender along with the message:

acting_sender_id=3333333&remember_last_sender=true&entry[addressed][directly][]=…&message[subject]=test&…&commit=Send+email

What the CLI offers

There is no equivalent. hey compose has no --from or --sender flag:

$ hey compose --help | grep -i -E 'from|sender'
(no output)

The only related selector is --account, which lists two accounts, not five addresses:

$ hey account list --json
all       All Accounts
100001    user.name@hey.com
100002    user@hey.com

Three of my addresses — the ones on custom domains — don't appear anywhere in the CLI, and I can't find any flag or config that reaches them.

The addresses are visible to the API

GET /identity.json returns all five under identity.senders, each with an id, an account id and an email address (anonymised below, IDs are shape-accurate):

id=1111111   account_id=100001   default=false   user.name@hey.com
id=2222222   account_id=100002   default=false   user@hey.com
id=3333333   account_id=100002   default=false   office@domain-a.example
id=4444444   account_id=100002   default=false   office@domain-b.example
id=5555555   account_id=100002   default=false   me@domain-c.example

So the information the CLI would need is already in a response it fetches — it just isn't surfaced or selectable. Worth noting that none of the five is flagged default: true, which may be relevant to how a fallback behaves.

What I'd expect

  • Some way to see the sender addresses available to me, the way hey account list shows accounts.
  • Some way to choose one when composing, and ideally to persist a default.

What I haven't verified

I have not sent a message from the CLI to confirm which address it actually uses, so I can't say from observation which of the five it picks or whether it matches the one the web app remembers. The concrete, reproducible part of this report is that the CLI offers no way to choose, and that three of my five addresses are not reachable through --account.

Environment

hey - 1.2.1 (release build, go1.26.6)


Analysed with Claude Opus 5. The observed behaviour above comes from a live account; addresses and sender IDs have been anonymised, and the section on what was not verified reflects the limits of that investigation.

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