add_account
ChatGPTStart linking an additional Superhuman Mail account to this session so it can be acted on alongside the current account. Returns a URL the user must open: they sign in as the account they want to add and approve. Once the user confirms they have approved, call list_accounts to verify the account was added, then retry the original action passing that account's email.
create_or_update_draft
ChatGPTCompose an email on behalf of the user. Uses the user's writing style, tone, and personalization to produce a polished draft. Returns the composed email — use send_draft separately to send it. The draft is saved to the user's Superhuman Mail Drafts list. The response includes a draft object with draft_id and thread_id — pass draft_id to send_draft to send the email. To update an existing draft (e.g. after user feedback), pass the previous draft_id and thread_id — the existing draft's content (recipients, subject, body) is loaded so the writer can revise it based on your instructions rather than composing from scratch. The draft will be updated in place instead of creating a duplicate. Forward drafts are a temporary exception: use body, not instructions, and provide only your intro text — the server appends the forwarded message automatically.
create_or_update_event
ChatGPTCreate a new calendar event or edit an existing one. If event_id is provided, updates the existing event. Otherwise creates a new event. Note: newly created or updated events may take up to a minute to appear in search and query results.
create_or_update_reminder
ChatGPTCreate or reschedule a reminder on a Superhuman Mail thread. By default the thread is removed from the inbox and returns to the top at remind_at (Superhuman's Remind Me); pass mark_done=false to keep it in the inbox and only re-surface it at remind_at. A thread can have at most one reminder, so if it already has one this replaces it (reschedules to the new time). The reminder cancels automatically if someone replies to the thread before it triggers. Use discard_reminder to remove a reminder, and list_reminders to see existing ones.
create_or_update_snippet
ChatGPTSave a reusable Superhuman Mail snippet (an email template). Omit id to create a new snippet; pass an id from list_snippets to update that snippet's content in place. name and body (HTML) are required; subject and default to/cc/bcc recipients are optional. Set shared to true to share a new snippet with the user's team, or to promote an existing personal snippet to a team snippet (requires being on a team). Updating a team snippet requires write access. This tool cannot un-share, rename-only, or delete a snippet.
discard_draft
ChatGPTDiscard a user-owned Superhuman Mail draft by draft_id so it disappears from the user's Drafts list.
discard_reminder
ChatGPTDiscard (cancel) a reminder on a Superhuman Mail thread so it no longer brings the thread back to the top of the inbox. Pass the thread_id and reminder_id from list_reminders. Idempotent and safe to retry: if no matching reminder is found it returns discarded=false rather than an error.
discard_snippet
ChatGPTRemove a saved Superhuman Mail snippet, identified by the id from list_snippets. A personal snippet is discarded (returns discarded=true, unshared=false). A team (shared) snippet is first un-shared — this ends team sharing and moves it back to you (requires write access; read-only members are rejected) — and then discarded, so it is fully removed for everyone (returns discarded=true, unshared=true). Idempotent and safe to retry: if no matching snippet is found it returns discarded=false rather than an error.
get_attachment
ChatGPTRetrieve email attachments. For images and audio files, returns both the file content (for direct processing) and a download URL. For other file types, returns a download URL only. Download URLs expire after 1 hour. Requires a message_id obtained from get_message or get_thread.
get_availability
ChatGPTFind available meeting times for a group of participants. Resolves names to emails, checks availability, and returns proposed time slots. Use create_or_update_event afterward to create the meeting.
get_draft
ChatGPTFetch a single Superhuman Mail draft by draft_id, including its full body and quoted content. Use list_drafts to discover draft_ids.
get_draft_send_status
ChatGPTRead-only check of a Superhuman Mail draft's send state. Returns idle (no send queued, or a prior send failed/was aborted and the draft is sendable again), pending (send queued, undo window still open — includes undo_token), or closed (delivery underway past the undo window, delivered, or draft discarded). Intended for the compose widget to poll so it can reflect sends initiated elsewhere; agents should prefer undo_send for cancellation.
get_message
ChatGPTFetch a single email message by its message ID. Returns full message details including body text. Use include_raw_html to also retrieve the original HTML. Requires a message_id obtained from list_email or get_thread.
get_read_status_feed
ChatGPTGet a feed of read receipts for emails you've sent — who opened them, when, and on what device. Returns events newest first. By default scans the last 14 days of sent mail (up to 500 messages) and returns read events from the last 24 hours.
get_shared_thread_link
ChatGPTReturn the share link for a thread. Never creates a share. Returns shared true and share_url when the thread is shared. When it is not shared or sharing was stopped, returns shared false. That is not an error.
get_snippet
ChatGPTFetch a saved Superhuman Mail snippet's full content — its HTML body, optional subject, and any default to/cc/bcc recipients — so it can be used in a draft. Covers the user's personal snippets and team snippets shared with them. Identify the snippet by the id from list_snippets; call list_snippets first to discover snippets. Apply a snippet to a draft the way Superhuman does: on a new, empty draft, load everything — set the subject and to/cc/bcc, and use the body. On an existing draft that already has content, leave the subject unchanged and append the rest — add the snippet's recipients to the existing ones and append its body to the existing body. create_or_update_draft replaces the to/cc/bcc fields rather than merging them, so to add the snippet's recipients you must pass the full combined list: take the draft's current recipients (from the draft you are updating, or via get_draft), union them with the snippet's to/cc/bcc, dedupe by email, and pass that complete list. Omitting a recipient field leaves the draft's existing recipients unchanged and drops the snippet's.
get_thread
ChatGPTFetch a specific email thread by its thread ID. Returns structured message data including bodies, recipients, and attachments. Requires a thread_id obtained from query_email_and_calendar or list_threads.
list_accounts
ChatGPTList the Superhuman Mail accounts linked to this session. Each entry has the account email, whether it is the primary (default) account actions run as when no account is specified, and when it was linked.
list_drafts
ChatGPTList the user's active Superhuman Mail email drafts — both drafts composed natively in Superhuman and drafts created via create_or_update_draft. Covers compose, reply, reply-all, forward, and edit-subject-line replies; excludes snippets, signatures, comments, and other non-email drafts. Returns lightweight rows (recipients, subject, snippet); use get_draft to fetch a draft's full body and quoted content. Optionally filter to a specific thread. Paginated: pass next_cursor to fetch more; its absence means there are no more.
list_labels
ChatGPTList all labels available on the user's email account. Returns user-created labels that can be used with list_threads (labels filter) and update_thread (add_labels / remove_labels).
list_reminders
ChatGPTList the user's Superhuman Mail reminders. A reminder brings a thread back to the top of the inbox at a set time. Returns active (not yet triggered) and/or already-triggered reminders, each with its thread subject and trigger time. Use create_or_update_reminder to set one and discard_reminder to remove one.
list_shared_thread_participants
ChatGPTList people with share access on a Superhuman thread, including you. These are share participants, not the email's To or Cc recipients. Returns each participant's email, name, and kind (teammate or guest). Always tell the user who is a guest. Slack-synced channels are returned separately; do not list Slack-origin people as participants. When the thread is not shared or sharing was stopped, returns shared false and an empty list. That is not an error.
list_snippets
ChatGPTList the user's saved Superhuman Mail snippets — reusable email templates. Includes the user's personal snippets and, when the user is on a team, snippets shared with that team. Returns lightweight rows (id, name, preview, usage count, and who shared a team snippet); use get_snippet to fetch a snippet's full body. Optionally search by text or filter to team snippets shared by a particular person.
list_splits
ChatGPTList the user's inbox splits. Splits organize the inbox into sections like Important, Other, and user-created categories (VIP, News, Team, etc.). Returns each split's name, filter criteria, and thread/unread counts. Use split names with the list_threads tool's split filter to view threads in a specific split. Note: counts reflect the last mailbox sync and may be a few seconds behind.
list_threads
ChatGPTSearch email threads with structured filters. Returns thread metadata with participants, labels, and a snippet of the latest message. Supports pagination for large result sets. No filters returns the most recent threads. Note: recently sent or received messages may take up to a minute to appear in results.
mark_spam
ChatGPTMark an email thread as spam by thread ID. When also_block_sender or also_block_domain is set, the sender or domain is blocked and a bulk action runs in the background to mark all existing inbox threads from that sender or domain as spam.
preview_share_thread
ChatGPTRead-only preview of who would gain access if share_thread ran with these arguments. Writes nothing. STOP after this tool: show share_summary and ask the user to confirm before calling share_thread in a later turn.
query_email_and_calendar
ChatGPTAnswer natural-language questions about the user's emails, calendar, contacts, and knowledge base. Best for open-ended, exploratory, or ambiguous requests — inbox triage, summarizing conversations, checking schedules, or any question that spans multiple sources. Understands context and reasons across email and calendar together. Note: recently sent emails or newly created calendar events may take up to a minute to appear in results.
remove_account
ChatGPTUnlink a previously added Superhuman Mail account from this session by its email. The primary (default) account cannot be removed — set a different account as the default first.
send_draft
ChatGPTSend an existing Superhuman Mail draft. Pass draft_id from create_or_update_draft. Optionally use smart_send to schedule at the best engagement time, send_at to schedule at a specific time, or undo_timeout to delay sending by up to 10 minutes so the send can be cancelled via undo_send. When no scheduling option is provided, send_draft applies a default 1-minute undo-send delay. Note: after sending, the message may take up to a minute to appear in search results or thread listings.
set_default_account
ChatGPTMake a linked Superhuman Mail account the default (primary) account that actions run as when no specific account is given. The account must already be linked to this session.
share_thread
ChatGPTShare a Superhuman thread with teammates or guests. Call it only after the user explicitly confirms a preview_share_thread result, in a later turn. No preview is needed when the thread is already shared and everyone already has access. Returns share_url, shared_with, share_summary, and already_shared.
trash_thread
ChatGPTMove an email thread to trash by thread ID. This is a destructive operation, the thread will be removed from the inbox and placed in the trash folder.
undo_send
ChatGPTCancel a recently queued send while still within the undo window. Use the undo_token returned by send_draft (preferred), or the message_id from send_draft as a fallback. The draft remains in the Drafts list either way.
unshare_thread
ChatGPTStop sharing a Superhuman shared thread for everyone. Only a publisher can do this. Participants who have viewed this conversation can still access past messages and comments. Future messages will not be shared. Returns shared and shared_with, which is empty after a stop.
unsubscribe
ChatGPTUnsubscribe from a mailing list by thread ID based on the List-Unsubscribe header of the latest message in the thread. Optionally trash the thread and/or block the sender.
update_personalization
ChatGPTUpdate the user's personalization based on natural language feedback. Use this when the user wants to correct their writing style, update personal facts, change greeting/sign-off preferences, or adjust any personalization setting.
update_thread
ChatGPTUpdate an email thread: mark done/not done, star/unstar, read/unread, move between Important and Other, add or remove labels, or move to a folder. Multiple changes can be made in a single call.
create_or_update_draft
Claudecreate_or_update_event
Claudediscard_draft
Claudeget_attachment
Claudeget_availability
Claudeget_labels
Claudeget_message
Claudeget_read_statuses
Claudeget_thread
Claudelist_splits
Claudelist_threads
Claudemark_spam
Claudequery_email_and_calendar
Claudesend_draft
Claudetrash_thread
Claudeundo_send
Claudeunsubscribe
Claudeupdate_personalization
Claudeupdate_thread
Claude