Let your AI agent read your email.
Only the emails you choose.
Connect your Gmail or Outlook to Thread. Pick which emails your agent can see, and whether it gets the email text and attachments. Your agent gets one key. It can't see anything you didn't choose, and you can turn it off at any time.
Read-only access to your mailbox. No email text is stored.
Your agent never sees your whole inbox. Only the categories you chose.
Each email gets a category label, and only categories you turned on reach the agent. Turn a category off below and its emails stop reaching the agent.
- no categories allowed, so nothing reaches the agent
Set up in three steps. About five minutes.
- 1
Connect your inbox
Sign in with Google or Microsoft, or add an IMAP mailbox. Thread asks Google for read-only access, so it can never send, delete or change your mail.
GmailOutlookIMAP - 2
Choose what your agent can see
Pick categories like travel or receipts, or specific senders. Decide whether the agent gets the email text, whether personal details are hidden in it, and whether it gets attachments.
- Travelallowed
- Receiptsallowed
- Workallowed
- Bank and security codesoff
- 3
Give your agent one key
Thread creates a key and a short setup prompt. Paste them into your agent (Claude Code, Cursor, Hermes, OpenClaw, or any agent that reads a SKILL.md). It can read the emails you allowed on its next run.
THREAD_API_KEY=thread_sk_••••••••
One call. Only the emails you allowed.
Your agent doesn't log in to your mailbox. It calls Thread, and Thread hands over exactly what your grant permits.
$ curl -H "Authorization: Bearer thread_sk_…" https://gw.thread.xyz/emails▍
{ "emails": [{ "id": "1a12116d60369f98", "from": "billing@example.com", "subject": "Your October invoice", "receivedAt": "2026-10-09T14:34:49Z", "labels": ["financial", "invoice"], "body": "Hi, your invoice for card [redacted-card] is attached…", "masked": true, "attachments": [{ "name": "invoice.pdf", "type": "application/pdf" }] }]}New mail since its last call
Each call returns the emails that arrived since the agent last asked, limited to your grant. The agent never has to search or filter.
Your 50 most recent emails on day one
When you first connect, Thread loads your 50 most recent emails, so the agent has something to work with right away. Read or unread makes no difference.
Text and attachments only if you allowed them
The "body" field appears only when your grant includes email text. "masked": true means personal details were removed first.
Nothing outside your grant
Emails you didn’t allow are not in the response at all. The agent gets no error and no hint that they exist.
Thread can't send email, and neither can your agent through it. Reading only.
Thread doesn't store your email.
When your agent asks for an email, Thread fetches it from your mailbox at that moment, checks it against your grant, and passes it on. Here is what stays behind.
id 1a12116d…
sender airline@example.com
labels travel, boarding_pass
The subject, text and attachments pass through to your agent and are never saved.
Three facts per email, nothing else
Thread keeps each email’s ID, the sender’s address, and its labels (like "travel" or "invoice"). It does not keep the subject, the text, or any attachment.
Labels come from the sender and subject
An AI model (OpenAI) reads only the sender and subject line to label each email. Fixed rules then decide every request your agent makes. The same request always gets the same answer, and every access is logged.
Personal details hidden by default
Unless you choose "full text", email text reaches your agent with phone numbers, card numbers, email addresses and long account numbers replaced by placeholders like [redacted-phone]. OpenAI helps with this step too.
Change your mind at any time.
Turn it off in one click
Every grant is listed in your dashboard. Turn one off and the agent’s key stops working for that mailbox immediately.
Access ends after 90 days
Unless you choose a different length, or no end date, each grant expires after 90 days. You get an email when a grant is created or changed.
See every request
Your dashboard shows each time an agent asked for mail, what it was allowed, and what it was refused.
The permissions on the Google screen, explained.
When you connect Gmail, Google asks you to approve these permissions. Your grants then limit Thread further: your agent only gets the emails you picked, even though Google gave Thread read access to the whole mailbox.
Thread reads an email to label it, and to give your agent the emails you allowed. Read-only is the smallest permission that does this, so it is the one we ask for.
Thread can’t send, delete, label, or change anything in your mailbox. Google doesn’t allow it with this permission.
So your dashboard can show which mailbox a grant belongs to, and so connecting again goes to the same account instead of making a second one.
No profile, no contacts, no photo.
Asked for separately, and only if you turn on calendar. Lets an agent see the events you allowed, and add or change events if you allowed that.
Not asked for when you connect your mailbox. Email works without it.
- Never sold, and never used for advertising.
- Never used to train AI models.
- Never given to anyone except the agent you chose, and only while your grant is active.
- Never read by a person, except when you ask us to fix a problem, for security, or when the law requires it.
- Email text is never written to our database, our caches, or our logs.
- Sent to OpenAI only for two jobs: labeling each email from its sender and subject, and removing personal details from email text when your grant hides them.
Thread's use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. The full detail is in our Privacy Policy.
Works with the agent you already use.
Claude Code, Cursor, Hermes, OpenClaw, or any agent that reads a SKILL.md file. Two ways to set it up.
Create a key in your dashboard. It gives you a short prompt to paste into your agent. The agent can read the emails you allowed on its next run.
Create an agent keyAdd the thread-mail skill to your agent. It tells the agent how to fetch new email, read one email, download attachments, and what an empty result means.
github.com/JoinThread/thread-skillsThings people ask before connecting.
Can my agent send, delete or change email?
No. Thread has read-only access to your mailbox and offers no way to send. Your agent can read the emails you allowed, and nothing else.
Does the agent see emails I have already read?
Yes. Whether you read an email in Gmail first makes no difference. If it is in a category you allowed, the agent gets it.
What does my agent get right after I connect?
Your 50 most recent emails, limited to your grant, then every new email as it arrives.
Does Thread store my email?
No email text, subjects or attachments. For each email, Thread keeps only its ID, the sender’s address and its labels.
Who else sees my email?
OpenAI receives the sender and subject of each email to label it, and the email text when your grant hides personal details. Nobody else. Your email is never used for advertising or to train models.
Can my agent get the full email text?
Yes, if you choose "full text" when you set up the grant. The default removes personal details first.
What happens when I turn a grant off?
The agent’s key stops working for that mailbox immediately. Anything the agent already read stays with the agent, since Thread cannot reach into it.
Which mailboxes work?
Gmail, Outlook, and any mailbox that supports IMAP.
Your agent gets the email you chose, for as long as you choose, and nothing more.
Give your agent the email it needs.
Connect your inbox, choose what your agent can read, and create a key. About five minutes. Every request your agent makes shows up in your dashboard.