{"id":"212cce01-c9df-47dc-82fd-0850c6f4824e","shortId":"PztxpZ","kind":"skill","title":"hey","tagline":"Interact with HEY email via the HEY CLI. Read and send emails, manage boxes,\ncalendars, todos, habits, time tracking, and journal entries. Use for ANY\nHEY-related question or action.","description":"# /hey - HEY Email Workflow Command\n\nCLI for HEY email: mailboxes, email threads, replies, compose, calendars, todos, habits, time tracking, and journal entries.\n\n## Agent Invariants\n\n**MUST follow these rules:**\n\n1. **Always use `--json`** for structured, predictable output\n2. **Authentication required** for all data commands — run `hey auth login` first\n3. **HTML output** is available via `--html` for commands that return HTML content\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| List mailboxes | `hey boxes --json` |\n| List emails in a box | `hey box imbox --json` |\n| Read email thread | `hey threads <topic_id> --json` |\n| Reply to email | `hey reply <topic_id> -m \"Thanks!\"` |\n| Compose email | `hey compose --to user@example.com --subject \"Hello\"` |\n| Compose with CC/BCC | `hey compose --to alice@example.com --cc bob@example.com --bcc carol@example.org --subject \"Hello\"` |\n| List drafts | `hey drafts --json` |\n| List calendars | `hey calendars --json` |\n| List calendar events | `hey recordings 123 --json` |\n| List todos | `hey todo list --json` |\n| Add todo | `hey todo add \"Buy milk\"` |\n| Complete todo | `hey todo complete 123` |\n| Uncomplete todo | `hey todo uncomplete 123` |\n| Delete todo | `hey todo delete 123` |\n| Mark as seen | `hey seen 12345` |\n| Mark as unseen | `hey unseen 12345` |\n| Complete habit | `hey habit complete 123` |\n| Uncomplete habit | `hey habit uncomplete 123` |\n| Start time tracking | `hey timetrack start` |\n| Stop time tracking | `hey timetrack stop` |\n| Current timer | `hey timetrack current --json` |\n| List time entries | `hey timetrack list --json` |\n| List journal entries | `hey journal list --json` |\n| Read journal entry | `hey journal read 2024-03-15 --json` |\n| Write journal entry | `hey journal write \"Today was great\"` |\n| Check auth status | `hey auth status` |\n| Print access token | `hey auth token` |\n| Launch TUI | `hey` |\n\n## Decision Trees\n\n### Reading Email\n\n```\nWant to read email?\n├── Which mailbox? → hey boxes --json\n├── List emails in box? → hey box <name|id> --json\n├── Read full thread? → hey threads <topic_id> --json\n├── Mark as seen? → hey seen <posting-id>\n├── Mark as unseen? → hey unseen <posting-id>\n└── Launch interactive UI? → hey (no args, launches TUI)\n```\n\n### Sending Email\n\n```\nWant to send email?\n├── Reply to thread? → hey reply <topic_id> -m \"message\"\n│   └── Open editor? → hey reply <topic_id> (omit -m to open $EDITOR)\n├── Compose new? → hey compose --to <email> --subject \"Subject\"\n│   ├── With body? → hey compose --to <email> --subject \"Subject\" -m \"Body\"\n│   ├── With CC? → add --cc <email>\n│   └── With BCC? → add --bcc <email>\n└── Check drafts? → hey drafts --json\n```\n\n### Managing Todos\n\n```\nWant to manage todos?\n├── List todos? → hey todo list --json\n├── Add todo? → hey todo add \"Task description\"\n├── Complete? → hey todo complete <id>\n├── Uncomplete? → hey todo uncomplete <id>\n└── Delete? → hey todo delete <id>\n```\n\n## Resource Reference\n\n### Email - Boxes\n\n```bash\nhey boxes --json                              # List all mailboxes\nhey box imbox --json                          # List emails in Imbox (by name)\nhey box 123 --json                            # List emails in box (by ID)\n```\n\nBox names: `imbox`, `feedbox`, `trailbox`, `asidebox`, `laterbox`, `bubblebox`\n\n**Response format:** `hey box` returns `{\"box\": {...}, \"postings\": [...]}`. Each posting has: `id` (posting ID), `topic_id` (topic ID), `name` (subject), `seen` (read status), `created_at`, `contacts`, `summary`, `app_url`. Use `topic_id` for `hey threads` and `hey reply`.\n\n### Email - Threads\n\n```bash\nhey threads <topic_id> --json                 # Read full email thread\nhey threads <topic_id> --html                 # Read with raw HTML content\n```\n\n**ID note:** `hey box` returns postings with an `id` (posting ID) and a `topic_id` (topic ID). `hey threads` and `hey reply` expect the **topic ID** — use `topic_id` directly. The `app_url` field also contains the topic ID as a fallback (e.g. `https://app.hey.com/topics/123` → `123`).\n\n### Email - Reply & Compose\n\n```bash\nhey reply <topic_id> -m \"Thanks!\"             # Reply with inline message\nhey reply <topic_id>                          # Reply via $EDITOR\nhey compose --to user@example.com --subject \"Hello\"         # Compose new (opens $EDITOR)\nhey compose --to user@example.com --subject \"Hi\" -m \"Body\"  # With inline body\nhey compose --to alice@example.com --cc bob@example.com --bcc carol@example.org --subject \"Project update\" -m \"Body\"  # With CC/BCC\nhey compose --subject \"Update\" --thread-id 12345 -m \"msg\"   # Post to existing thread\n```\n\n### Email - Seen/Unseen\n\n```bash\nhey seen 12345                                # Mark posting as seen\nhey seen 12345 67890                          # Mark multiple postings as seen\nhey unseen 12345                              # Mark posting as unseen\nhey unseen 12345 67890                        # Mark multiple postings as unseen\n```\n\nTakes posting IDs (the `id` field from `hey box` output).\n\n### Drafts\n\n```bash\nhey drafts --json                             # List drafts\n```\n\n### Calendars\n\n```bash\nhey calendars --json                          # List calendars (returns array of {id, name, kind})\nhey recordings 123 --json                     # List events in calendar\n```\n\n**Response format:** `hey recordings` returns recordings grouped by type (e.g. `{\"Calendar::Event\": [...], \"Calendar::Habit\": [...], \"Calendar::Todo\": [...]}`). Each recording has: `id`, `title`, `starts_at`, `ends_at`, `all_day`, `recurring`, `starts_at_time_zone`. Access by type key in jq, e.g. `.[\"Calendar::Event\"]`.\n\n### Todos\n\n```bash\nhey todo list --json                          # List all todos\nhey todo add \"Task description\"                        # Add a todo\nhey todo complete 123                         # Mark complete\nhey todo uncomplete 123                       # Mark incomplete\nhey todo delete 123                           # Delete a todo\n```\n\n### Habits\n\n```bash\nhey habit complete 123                        # Mark habit complete for today\nhey habit complete 123 --date 2024-01-15      # Mark complete for specific date\nhey habit uncomplete 123                      # Unmark habit for today\n```\n\nHabit IDs can be found via `hey recordings <calendar-id> --json`.\n\n### Time Tracking\n\n```bash\nhey timetrack start                           # Start timer\nhey timetrack stop                            # Stop timer\nhey timetrack current --json                  # Show current timer\nhey timetrack list --json                     # List time entries\n```\n\n### Journal\n\n```bash\nhey journal list --json                       # List journal entries\nhey journal read 2024-03-15 --json            # Read entry by date\nhey journal write \"Today's entry\"                     # Write entry inline\nhey journal write                             # Write entry via $EDITOR\n```\n\n### Authentication\n\n```bash\nhey auth login                                # Log in (browser-based OAuth)\nhey auth status                               # Check if authenticated\nhey auth logout                               # Log out\n```\n\nIf a command fails with an auth error, run `hey auth status` to check, then `hey auth login` to re-authenticate.","tags":["hey","cli","basecamp","agent-skills"],"capabilities":["skill","source-basecamp","skill-hey","topic-agent-skills","topic-hey"],"categories":["hey-cli"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/basecamp/hey-cli/hey","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add basecamp/hey-cli","source_repo":"https://github.com/basecamp/hey-cli","install_from":"skills.sh"}},"qualityScore":"0.471","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 42 github stars · SKILL.md body (7,223 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-01T18:56:41.219Z","embedding":null,"createdAt":"2026-04-18T22:18:48.740Z","updatedAt":"2026-05-01T18:56:41.219Z","lastSeenAt":"2026-05-01T18:56:41.219Z","tsv":"'-01':787 '-03':257,851 '-15':258,788,852 '/hey':33 '/topics/123':551 '1':61 '123':161,181,187,193,211,217,435,552,687,754,760,766,775,784,797 '12345':199,205,613,625,632,641,648 '2':69 '2024':256,786,850 '3':81 '67890':633,649 'access':276,725 'action':32 'add':169,173,370,374,393,397,745,748 'agent':55 'alice@example.com':139,594 'also':540 'alway':62 'app':477,537 'app.hey.com':550 'app.hey.com/topics/123':549 'arg':327 'array':680 'asidebox':448 'auth':78,270,273,279,877,886,892,902,906,912 'authent':70,874,890,917 'avail':85 'base':883 'bash':416,490,556,622,666,673,735,771,813,839,875 'bcc':142,373,375,597 'bob@example.com':141,596 'bodi':360,367,587,590,603 'box':15,101,107,109,295,300,302,415,418,424,434,440,443,454,456,509,663 'browser':882 'browser-bas':881 'bubblebox':450 'buy':174 'calendar':16,47,152,154,157,672,675,678,692,703,705,707,732 'carol@example.org':143,598 'cc':140,369,371,595 'cc/bcc':135,605 'check':269,376,888,909 'cli':9,38 'command':37,75,89,97,898 'complet':176,180,206,210,400,403,753,756,774,778,783,790 'compos':46,125,128,133,137,352,355,362,555,571,576,581,592,607 'contact':475 'contain':541 'content':93,505 'creat':473 'current':230,234,826,829 'data':74 'date':785,793,857 'day':719 'decis':284 'delet':188,192,408,411,765,767 'descript':399,747 'direct':535 'draft':147,149,377,379,665,668,671 'e.g':548,702,731 'editor':344,351,569,579,873 'email':5,13,35,41,43,104,113,120,126,287,291,298,331,335,414,428,438,488,496,553,620 'end':716 'entri':23,54,238,245,252,262,837,846,855,863,865,871 'error':903 'event':158,690,704,733 'exist':618 'expect':528 'fail':899 'fallback':547 'feedbox':446 'field':539,660 'first':80 'follow':58 'format':452,694 'found':806 'full':307,495 'great':268 'group':699 'habit':18,49,207,209,213,215,706,770,773,777,782,795,799,802 'hello':132,145,575 'hey':1,4,8,28,34,40,77,100,108,115,121,127,136,148,153,159,165,171,178,184,190,197,203,208,214,221,227,232,239,246,253,263,272,278,283,294,301,309,315,320,325,339,345,354,361,378,389,395,401,405,409,417,423,433,453,483,486,491,498,508,523,526,557,565,570,580,591,606,623,630,639,646,662,667,674,685,695,736,743,751,757,763,772,781,794,808,814,819,824,831,840,847,858,867,876,885,891,905,911 'hey-rel':27 'hi':585 'html':82,87,92,500,504 'id':304,442,461,463,465,467,481,506,514,516,520,522,531,534,544,612,657,659,682,712,803 'imbox':110,425,430,445 'incomplet':762 'inlin':563,589,866 'interact':2,323 'invari':56 'journal':22,53,244,247,251,254,261,264,838,841,845,848,859,868 'jq':730 'json':64,102,111,117,150,155,162,168,235,242,249,259,296,305,311,380,392,419,426,436,493,669,676,688,739,810,827,834,843,853 'key':728 'kind':684 'laterbox':449 'launch':281,322,328 'list':98,103,146,151,156,163,167,236,241,243,248,297,387,391,420,427,437,670,677,689,738,740,833,835,842,844 'log':879,894 'login':79,878,913 'logout':893 'm':123,341,348,366,559,586,602,614 'mailbox':42,99,293,422 'manag':14,381,385 'mark':194,200,312,317,626,634,642,650,755,761,776,789 'messag':342,564 'milk':175 'msg':615 'multipl':635,651 'must':57 'name':303,432,444,468,683 'new':353,577 'note':507 'oauth':884 'omit':347 'open':343,350,578 'output':68,83,664 'post':457,459,462,511,515,616,627,636,643,652,656 'predict':67 'print':275 'project':600 'question':30 'quick':94 'raw':503 're':916 're-authent':915 'read':10,112,250,255,286,290,306,471,494,501,849,854 'record':160,686,696,698,710,809 'recur':720 'refer':95,413 'relat':29 'repli':45,118,122,336,340,346,487,527,554,558,561,566,567 'requir':71 'resourc':412 'respons':451,693 'return':91,455,510,679,697 'rule':60 'run':76,904 'seen':196,198,314,316,470,624,629,631,638 'seen/unseen':621 'send':12,330,334 'show':828 'skill' 'skill-hey' 'source-basecamp' 'specif':792 'start':218,223,714,721,816,817 'status':271,274,472,887,907 'stop':224,229,821,822 'structur':66 'subject':131,144,357,358,364,365,469,574,584,599,608 'summari':476 'take':655 'task':96,398,746 'thank':124,560 'thread':44,114,116,308,310,338,484,489,492,497,499,524,611,619 'thread-id':610 'time':19,50,219,225,237,723,811,836 'timer':231,818,823,830 'timetrack':222,228,233,240,815,820,825,832 'titl':713 'today':266,780,801,861 'todo':17,48,164,166,170,172,177,179,183,185,189,191,382,386,388,390,394,396,402,406,410,708,734,737,742,744,750,752,758,764,769 'token':277,280 'topic':464,466,480,519,521,530,533,543 'topic-agent-skills' 'topic-hey' 'track':20,51,220,226,812 'trailbox':447 'tree':285 'tui':282,329 'type':701,727 'ui':324 'uncomplet':182,186,212,216,404,407,759,796 'unmark':798 'unseen':202,204,319,321,640,645,647,654 'updat':601,609 'url':478,538 'use':24,63,479,532 'user@example.com':130,573,583 'via':6,86,568,807,872 'want':288,332,383 'workflow':36 'write':260,265,860,864,869,870 'zone':724","prices":[{"id":"25602ccc-bd75-42d4-ad57-6075e5d004e4","listingId":"212cce01-c9df-47dc-82fd-0850c6f4824e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"basecamp","category":"hey-cli","install_from":"skills.sh"},"createdAt":"2026-04-18T22:18:48.740Z"}],"sources":[{"listingId":"212cce01-c9df-47dc-82fd-0850c6f4824e","source":"github","sourceId":"basecamp/hey-cli/hey","sourceUrl":"https://github.com/basecamp/hey-cli/tree/main/skills/hey","isPrimary":false,"firstSeenAt":"2026-04-18T22:18:48.740Z","lastSeenAt":"2026-05-01T18:56:41.219Z"}],"details":{"listingId":"212cce01-c9df-47dc-82fd-0850c6f4824e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"basecamp","slug":"hey","github":{"repo":"basecamp/hey-cli","stars":42,"topics":["agent-skills","hey"],"license":"mit","html_url":"https://github.com/basecamp/hey-cli","pushed_at":"2026-04-28T09:35:56Z","description":"HEY CLI and Agent Skills","skill_md_sha":"3159689494bfeb5ca59c4e24c3f4975f66ba91e5","skill_md_path":"skills/hey/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/basecamp/hey-cli/tree/main/skills/hey"},"layout":"multi","source":"github","category":"hey-cli","frontmatter":{"name":"hey","description":"Interact with HEY email via the HEY CLI. Read and send emails, manage boxes,\ncalendars, todos, habits, time tracking, and journal entries. Use for ANY\nHEY-related question or action."},"skills_sh_url":"https://skills.sh/basecamp/hey-cli/hey"},"updatedAt":"2026-05-01T18:56:41.219Z"}}