Overview
Connect an end user's apps - Google, GitHub, Slack, Jira and more - and their memory keeps learning from what they do there, with no code of yours in the path.
A connector reads an end user's work in an app they use and keeps their memory up to date with it. Their mail and calendar, the issues and pull requests they work on, what was said in the channels they belong to: it arrives in their memory as it happens, and search, latest and every other read reach it like anything you add yourself.
You connect an app once, from the console. Nothing in your code changes.
Connecting an app
- In the console, open Connectors and pick an app from the list.
- Feeds the memory of names the end user whose memory it fills - you, by default, as in the playground.
Name a test user to connect for them instead. It is the same id as
X-Twin-Account; see End users. - Continue to the app and sign in there, or, for an app that takes a token, paste it: the page says what the token is called, how to make one and links to the page that does.
You come back to the console connected, and the app's history - the last 90 days - starts arriving in a few minutes. From then on each of its sources is read on its own schedule, every minute to every half hour.
A connection belongs to one end user in one project. Connect the same app for another end user, or a second account for the same one, from its page.
What happens to what it reads
- Memory only reads. A connection's token is stored encrypted and used to read, never to change anything in the app.
- An edit is one item. When an issue moves from open to done or a message is edited, memory keeps the newest version in place of the old one, not a second copy.
- A deletion is kept, and marked. An item the app reports deleted, archived or trashed stays in memory
with when and why, so what was said is still what was said, and reads as
[deleted 7 Aug 2026] …. If it is restored, the mark goes. - Disconnecting stops the reading. Nothing more is read and the token is deleted. What memory already learned stays with the end user; to remove it, erase the end user, or forget items.
What each connector delivered
Each item knows the app, source and connection it came from. The Connectors page shows each connection's
sources, how many items each delivered and when it last read; your code asks
/v1/memory/sources for the same:
curl https://api.twinmemory.dev/v1/memory/sources \
-H "Authorization: Bearer $TWIN_MEMORY_API_KEY" \
-H "X-Twin-Account: user_42" \
-H "Content-Type: application/json" \
-d '{}'To read one app's items, latest takes it as place ("place": "github"), and
search as a scope ("scope": "passages/github").
The connectors
| App | Connects by | Reads |
|---|---|---|
| Sign in | Gmail, Calendar, Drive, Tasks and Chat | |
| GitHub | Sign in | Commits, pull requests, reviews, issues and failed runs |
| Slack | Sign in | Channels, direct messages, mentions and reactions |
| Jira | Sign in | Issues, comments, worklogs, changes and attachments |
| Confluence | Sign in | Pages, blog posts, comments, tasks and attachments |
| Notion | Sign in | Pages, databases and comments |
| Linear | Sign in | Issues, comments, projects, cycles, documents and your inbox |
| GitLab | Sign in | Your activity, to-dos, issues and merge requests |
| Bitbucket | Sign in | Pull requests, commits and failing builds |
| Asana | Sign in | Tasks, projects, comments and status updates |
| ClickUp | Sign in | Tasks, comments, docs, time entries and chat |
| Trello | Sign in | Cards, comments, boards and notifications |
| Dropbox | Sign in | Files with their text, and what others share with you |
| Cal.com | Token | Bookings, upcoming and past |
| Fathom | Token | Recorded meetings, summaries and action items |
| Shortcut | Token | Stories, comments, epics and iterations |
| Zotero | Token | Papers, notes and annotations |
Microsoft 365, Miro and Todoist
Soon. Claude Code and Cursor, which read from an app on the person's own machine, Soon.
The console lists the ones your deployment has set up; one that is not shows as Not set up yet.