hey reply: override recipients (--to/--cc) without losing the thread
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 52/100
Research direction
Start by tracing the hey reply entry point and compare it with hey compose --thread-id and hey thread read --json, which the issue identifies as related paths. Done means reply accepts recipient overrides and --replace-recipients, supports --dry-run --json without sending, and preserves the thread id, topic, References, and In-Reply-To.
Written by the indexing model from the issue text.
Description
Context
Agents often need to reply in-thread to an address that is not what HEY would pick from the last message — especially with alias / reverse-alias forwards (plus-addressing), ticket systems, and “noreply” envelopes where the human address lives elsewhere.
hey compose --thread-id can approximate this but is easy to get wrong and still isn’t a first-class reply path. After v1.6.0, agents can see the right address (received_via, recipients in hey thread read --json) but still can’t target it on hey reply.
Related: #446 (broader agent ask; this issue splits out the highest-priority remaining item), #431 (envelope visibility — addressed in 1.6.0 via received_via).
No account-specific details below — capability only.
Ask
Add recipient overrides on reply that keep threading:
hey reply <thread-id> --to person@example.com -m "..."
hey reply <thread-id> --to a@x.com --cc b@y.com -m "..."
hey reply <thread-id> --to person@example.com --replace-recipients -m "..."
hey reply <thread-id> --to person@example.com --dry-run --json
Behavior
--to/--cc/--bcc(repeatable or comma-separated — either is fine if documented)--replace-recipients— when set, overrides replace HEY’s resolved reply recipients instead of merging (recommended default for agent use: replace To at least)--dry-run— print resolved From / To / Cc / Bcc / thread id as JSON; do not send- Must remain a reply (same topic / References / In-Reply-To), not a new compose
Out of scope
- Connecting SMTP send-as addresses (see #454)
- Bulk trash / sweep filters / body hydration (covered or tracked elsewhere)
- Auto-detecting a “suggested reply-to” from body text (nice later; not required here)
Why
1.6.0 gave agents the data (received_via). This gives them the action. Together they remove the main footgun in automated alias-forwarded support/seller mail.
Environment
hey1.6.0- Primary interface:
--jsonfrom agents/automation
- Dominant language
- Go
- Stars
- 376
- Forks
- 44
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 130
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from basecamp/hey-cli
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Difficulty 4/5 3-5 days Newbie friendliness 65/100
-
Difficulty 4/5 3-5 days Newbie friendliness 55/100
-
Difficulty 5/5 Over a week Newbie friendliness 48/100
All issues in basecamp/hey-cli
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
-
enhancement needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
kind/cleanup
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
kubernetes-sigs/kueue#15947 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
sympozium-ai/sympozium#627 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100