---
title: "A deep dive into hey-cli"
url: https://daily.dev/posts/a-deep-dive-into-hey-cli-fcyyefeeh
source_url: https://flaviocopes.com/hey-cli
type: article
source: "Flavio Copes"
published: 2026-08-26T15:18:12.432Z
updated: 2026-08-26T15:52:24.998Z
tags: ["ai-agents", "golang"]
reading_time: 23
upvotes: 1
comments: 0
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# A deep dive into hey-cli

**[Flavio Copes](https://daily.dev/sources/flaviocopes)** · 23 min read · 1 upvotes · 0 comments

## Summary

hey-cli is a Go-based command-line and terminal UI tool from Basecamp that brings HEY email, contacts, calendars, todos, habits, time tracking, and journal entries into the terminal. It supports both interactive TUI browsing and scriptable CLI commands, offers structured JSON output with stable exit codes, and includes a built-in agent skill so coding agents like Claude Code or Codex can search, read, draft, and organize email through documented commands. The walkthrough covers installation on macOS via curl or Homebrew, OAuth login, working with threads, drafts, bulk replies, The Screener, linked accounts, live watch events, local config trust, shell completions, upgrading, and removal, plus the author's own recommendations on how to safely combine it with AI agents.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://flaviocopes.com/hey-cli>

## Questions this post answers

### How do I install hey-cli on macOS?

Run the official installer command curl -fsSL https://hey.com/install-cli | bash, which detects macOS and CPU architecture (Apple silicon or Intel), downloads the matching archive, verifies its SHA-256 checksum and Sigstore signature, extracts the hey executable, and adds it to PATH. Alternatively, install via Homebrew with brew install --cask basecamp/tap/hey, though upgrades then delegate to Homebrew instead of the built-in hey upgrade command.

_daily.dev surfaces install and setup guides like this for developers picking up new CLI tools._

### What is the difference between the posting id and topic_id in hey-cli?

The posting id identifies an item inside a specific mailbox and is used for organization actions like moving, labeling, or marking a thread as seen, while topic_id identifies the email conversation itself and is used to read, reply, forward, or share a thread. Both IDs appear together in JSON output, and choosing the wrong one is a common mistake when scripting against hey-cli.

_Developers scripting against a new CLI's data model can find these nuances covered on daily.dev._

### How can a coding agent like Claude Code or Codex access email through hey-cli?

hey-cli ships an embedded agent skill that teaches agents to use its documented command interface, choose correct IDs, and request structured JSON output. Running hey setup codex or hey setup claude connects the respective agent, or hey skill install adds just the shared skill; hey doctor checks integration health, and hey-cli only manages skill directories carrying its own .managed-by-hey-cli marker.

_daily.dev helps developers track how CLI tools like this expose agent-ready skills for coding assistants._

## Similar posts on daily.dev

- [Rebuilding the CircleCI CLI from scratch](https://daily.dev/posts/rebuilding-the-circleci-cli-from-scratch-hdh2yodgt) · CircleCI · 0 upvotes · 0 comments

---

Tags: [#ai-agents](https://daily.dev/tags/ai-agents), [#golang](https://daily.dev/tags/golang)

[View this post on daily.dev](https://daily.dev/posts/a-deep-dive-into-hey-cli-fcyyefeeh)
