Lanes Link is a private, self-hostable MCP that connects your accounts, memory and skills to every AI agent you use.
34
stars
156
commits
TypeScript
primary language
Sep 10, 2026
updated
One secure endpoint between your AI agents and all your connections, memory, tasks, files, and secrets.
Connect your mail, calendar, files, and notes once, and add the memory, tasks, and procedures that only you have. Every agent you use — Claude, ChatGPT, and anything else that speaks MCP — reaches them through a single MCP endpoint that you own and run. Open source, self-hostable, no vendor sitting in the middle of your data.
Needs Bun 1.3.11+. Nothing else — no account anywhere.
$ bun install -g @lanes-sh/link # puts `lanes` on your PATH
$ lanes link profile add personal --target local
$ lanes link start --profile personal --target local
ok serving http://127.0.0.1:7337/mcp
profiles: personal
Then, in another shell:
$ lanes link mcp add --profile personal --target local # every agent installed; or name one: claude, codex
ok registered lanes-link with Claude Code (user scope)
ok registered lanes-link with Codex
Your agents can now use it. Memory, tasks, files, skills, and the vault hold your own material rather than an account, so they are already there — nothing to connect, no credentials, no browser. Mail and calendar are the next step. Full quickstart →
Prefer not to use a terminal? The Lanes desktop app drives this CLI from a settings page. Settings → Integrations → Lanes Link installs it, holds the profile and target every command runs against, connects your accounts, starts and stops the endpoint, and registers it with Claude Code or Codex.

It runs the commands above rather than reimplementing them, so consent and the token stay here where they belong, and an endpoint set up in the app is the same one you get from a shell. Available from Lanes v0.47.0, as a research preview.
$ lanes link desktop # opens the app on that page, installing it if it is not there
| Manage it with | ||
|---|---|---|
| Connections | your external accounts — mail, calendar, files, issues | lanes link connect |
| Memory | what you want remembered between sessions | lanes link memory |
| Tasks | what you have to do, each with a status | lanes link tasks |
| Assets | files you want kept, by name | lanes link assets |
| Skills | your own procedures, handed to an agent as instructions | lanes link skills |
| Vault | passwords and API keys, released only where you allow it | lanes link vault |
The first five arrive switched on: they hold your own material rather than an account, so there was
never anything to authorise. Memory, tasks, and skills are plain Markdown files and an asset is
stored under its own filename, so a text editor and an agent reach the same bytes. Every one of them
belongs to a single profile: what you add under work is invisible under personal.
Which store a thing goes in is the one thing worth knowing. Memory is what is true, tasks is what is to be done, assets is a file. "Remember to chase the invoice" is a task — filed as memory it becomes a note nothing can ever close. Your agents are told this too.
Keep those two in a private GitHub repository instead of on this machine, and get history, diffs, and the same notes from anywhere you run this:
$ lanes link knowledge use github --repo <owner/name> --migrate
It moves what you have already stored, in one commit, and lanes link knowledge use local --migrate brings it back. Nothing else moves — your credentials and your vault stay where they
are, and there is no setting that would put them in a repository.
Over a hundred accounts and services, one command each. Run it again to add a second mailbox, a second calendar, a second anything.
| Mail, calendar, contacts, files | Gmail · Google Calendar · Google Drive · Google Docs · Google Sheets · Google Tasks · Google Contacts · iCloud Mail, Calendar, Contacts and Drive · Outlook Mail, Calendar and Contacts · OneDrive · Microsoft To Do · Fastmail · Zoho Mail · Yahoo Mail · Nextcloud · any IMAP mailbox |
| Work | Notion · Linear · Slack · GitHub · Asana · Atlassian (Jira, Confluence) · Todoist · ClickUp · monday.com · Shortcut · Miro · Whimsical · Figma · Canva · Calendly · Fireflies · HubSpot |
| Money | Stripe · PayPal · Square · Mercury · Ramp · bunq · Paddle · Recurly · Expensify |
| Build and run | Sentry · Vercel · Netlify · Cloudflare · Supabase · Neon · Prisma · Heroku · CircleCI · Buildkite · Datadog · Grafana · Better Stack · Rootly · Flagsmith |
| Content and data | Contentful · Storyblok · Hygraph · Sanity · Webflow · Wix · Algolia · PostHog · Mixpanel · Amplitude · RudderStack |
| Everything else | Reddit · Discord · Dropbox · Box · Airtable · Zapier · Attio · Klaviyo · Salesloft · Vimeo · Mux · Replicate · Apify · Tavily · Bright Data |
The full list, with the command for each →
Most of them need nothing set up. Seventy of them run their own MCP server and offer dynamic client
registration, so connect registers us on the spot: browser, approve, done. The rest are one of
three shapes — an app password you issue yourself (iCloud, Fastmail, Gmail over IMAP), a token you
paste (GitHub, Discord), or an OAuth client of your own (Reddit, Microsoft). A few also ask where
they are, because the address belongs to the account rather than the vendor — a Nextcloud you run,
or any IMAP server.
Most of them are also untested, and the tables say which. A provider marked † validates, generates
tools inside the budget, and answers a probe — but nobody has connected it to a real account yet, and
that is the part only a real account proves. See
src/providers/README.md for what that means and how the list is kept.
Three things worth knowing up front. lanes link connect icloud sets up Mail, Calendar, and
Contacts together, because one app-specific password covers all three — and lanes link connect fastmail does the same for Fastmail's three. Reddit is the one that does
need an app of your own — it rate-limits per client id, so a shared client would mean strangers
spending your budget. Google and Slack need no
OAuth client of your own: both authorise against the one Lanes operates, so there is no console to
visit — for Google, add --own-client if you would rather register your own, or take a service
account key or an app password over IMAP where you would rather nothing expired. And GitHub takes a
token you paste rather than a browser sign-in, because it will not register a client for us. And
bunq — which wants a key from inside its app rather than a console at all — is the one that can move
money, and it says so: its payment tool executes immediately and is not reversible. Set a spending
limit on the API key while you are in there, and read
docs/detailed/setup/bunq.md before connecting it.
Full guide — what each one gives your agent, what it needs, and adding your own: docs/connect.md. How the provider layer works, and the whole inventory by connector and credential type: src/providers/README.md.
The same code, the same config, in all three. Only the storage adapters change.
| Local | Your own cloud | Lanes Cloud | |
|---|---|---|---|
| Runs on | your machine | your GCP project, on Cloud Run | managed for you |
| Needs | Bun, nothing else | a Google Cloud billing account | — |
| Set up with | lanes link start | lanes link deploy | join the waitlist |
| Reachable from | that machine | anywhere, including your phone | anywhere |
| Status | ready | ready | coming soon |
Local is the fastest way to start, and where most people stay. Your own cloud is what you
want if you need to reach it from claude.ai, ChatGPT, or a phone — lanes link deploy creates the
project, the bucket, the service account, and the revision on its first run. Lanes Cloud is the
managed version; because it is the same data model, a workspace you build today moves across rather
than being rebuilt.
Join the waitlist to hear when it opens.
Lanes Link holds live credentials to your email and documents. The
security model states its limits plainly rather than implying
guarantees the code does not deliver — read it before you trust it with an account. To report a
vulnerability, see SECURITY.md; please do not open a public issue.
156 commits
TypeScript
99.8%
Lanes Link is a private, self-hostable MCP that connects your accounts, memory and skills to every AI agent you use.
34
stars
156
commits
TypeScript
primary language
Sep 10, 2026
updated
One secure endpoint between your AI agents and all your connections, memory, tasks, files, and secrets.
Connect your mail, calendar, files, and notes once, and add the memory, tasks, and procedures that only you have. Every agent you use — Claude, ChatGPT, and anything else that speaks MCP — reaches them through a single MCP endpoint that you own and run. Open source, self-hostable, no vendor sitting in the middle of your data.
Needs Bun 1.3.11+. Nothing else — no account anywhere.
$ bun install -g @lanes-sh/link # puts `lanes` on your PATH
$ lanes link profile add personal --target local
$ lanes link start --profile personal --target local
ok serving http://127.0.0.1:7337/mcp
profiles: personal
Then, in another shell:
$ lanes link mcp add --profile personal --target local # every agent installed; or name one: claude, codex
ok registered lanes-link with Claude Code (user scope)
ok registered lanes-link with Codex
Your agents can now use it. Memory, tasks, files, skills, and the vault hold your own material rather than an account, so they are already there — nothing to connect, no credentials, no browser. Mail and calendar are the next step. Full quickstart →
Prefer not to use a terminal? The Lanes desktop app drives this CLI from a settings page. Settings → Integrations → Lanes Link installs it, holds the profile and target every command runs against, connects your accounts, starts and stops the endpoint, and registers it with Claude Code or Codex.

It runs the commands above rather than reimplementing them, so consent and the token stay here where they belong, and an endpoint set up in the app is the same one you get from a shell. Available from Lanes v0.47.0, as a research preview.
$ lanes link desktop # opens the app on that page, installing it if it is not there
| Manage it with | ||
|---|---|---|
| Connections | your external accounts — mail, calendar, files, issues | lanes link connect |
| Memory | what you want remembered between sessions | lanes link memory |
| Tasks | what you have to do, each with a status | lanes link tasks |
| Assets | files you want kept, by name | lanes link assets |
| Skills | your own procedures, handed to an agent as instructions | lanes link skills |
| Vault | passwords and API keys, released only where you allow it | lanes link vault |
The first five arrive switched on: they hold your own material rather than an account, so there was
never anything to authorise. Memory, tasks, and skills are plain Markdown files and an asset is
stored under its own filename, so a text editor and an agent reach the same bytes. Every one of them
belongs to a single profile: what you add under work is invisible under personal.
Which store a thing goes in is the one thing worth knowing. Memory is what is true, tasks is what is to be done, assets is a file. "Remember to chase the invoice" is a task — filed as memory it becomes a note nothing can ever close. Your agents are told this too.
Keep those two in a private GitHub repository instead of on this machine, and get history, diffs, and the same notes from anywhere you run this:
$ lanes link knowledge use github --repo <owner/name> --migrate
It moves what you have already stored, in one commit, and lanes link knowledge use local --migrate brings it back. Nothing else moves — your credentials and your vault stay where they
are, and there is no setting that would put them in a repository.
Over a hundred accounts and services, one command each. Run it again to add a second mailbox, a second calendar, a second anything.
| Mail, calendar, contacts, files | Gmail · Google Calendar · Google Drive · Google Docs · Google Sheets · Google Tasks · Google Contacts · iCloud Mail, Calendar, Contacts and Drive · Outlook Mail, Calendar and Contacts · OneDrive · Microsoft To Do · Fastmail · Zoho Mail · Yahoo Mail · Nextcloud · any IMAP mailbox |
| Work | Notion · Linear · Slack · GitHub · Asana · Atlassian (Jira, Confluence) · Todoist · ClickUp · monday.com · Shortcut · Miro · Whimsical · Figma · Canva · Calendly · Fireflies · HubSpot |
| Money | Stripe · PayPal · Square · Mercury · Ramp · bunq · Paddle · Recurly · Expensify |
| Build and run | Sentry · Vercel · Netlify · Cloudflare · Supabase · Neon · Prisma · Heroku · CircleCI · Buildkite · Datadog · Grafana · Better Stack · Rootly · Flagsmith |
| Content and data | Contentful · Storyblok · Hygraph · Sanity · Webflow · Wix · Algolia · PostHog · Mixpanel · Amplitude · RudderStack |
| Everything else | Reddit · Discord · Dropbox · Box · Airtable · Zapier · Attio · Klaviyo · Salesloft · Vimeo · Mux · Replicate · Apify · Tavily · Bright Data |
The full list, with the command for each →
Most of them need nothing set up. Seventy of them run their own MCP server and offer dynamic client
registration, so connect registers us on the spot: browser, approve, done. The rest are one of
three shapes — an app password you issue yourself (iCloud, Fastmail, Gmail over IMAP), a token you
paste (GitHub, Discord), or an OAuth client of your own (Reddit, Microsoft). A few also ask where
they are, because the address belongs to the account rather than the vendor — a Nextcloud you run,
or any IMAP server.
Most of them are also untested, and the tables say which. A provider marked † validates, generates
tools inside the budget, and answers a probe — but nobody has connected it to a real account yet, and
that is the part only a real account proves. See
src/providers/README.md for what that means and how the list is kept.
Three things worth knowing up front. lanes link connect icloud sets up Mail, Calendar, and
Contacts together, because one app-specific password covers all three — and lanes link connect fastmail does the same for Fastmail's three. Reddit is the one that does
need an app of your own — it rate-limits per client id, so a shared client would mean strangers
spending your budget. Google and Slack need no
OAuth client of your own: both authorise against the one Lanes operates, so there is no console to
visit — for Google, add --own-client if you would rather register your own, or take a service
account key or an app password over IMAP where you would rather nothing expired. And GitHub takes a
token you paste rather than a browser sign-in, because it will not register a client for us. And
bunq — which wants a key from inside its app rather than a console at all — is the one that can move
money, and it says so: its payment tool executes immediately and is not reversible. Set a spending
limit on the API key while you are in there, and read
docs/detailed/setup/bunq.md before connecting it.
Full guide — what each one gives your agent, what it needs, and adding your own: docs/connect.md. How the provider layer works, and the whole inventory by connector and credential type: src/providers/README.md.
The same code, the same config, in all three. Only the storage adapters change.
| Local | Your own cloud | Lanes Cloud | |
|---|---|---|---|
| Runs on | your machine | your GCP project, on Cloud Run | managed for you |
| Needs | Bun, nothing else | a Google Cloud billing account | — |
| Set up with | lanes link start | lanes link deploy | join the waitlist |
| Reachable from | that machine | anywhere, including your phone | anywhere |
| Status | ready | ready | coming soon |
Local is the fastest way to start, and where most people stay. Your own cloud is what you
want if you need to reach it from claude.ai, ChatGPT, or a phone — lanes link deploy creates the
project, the bucket, the service account, and the revision on its first run. Lanes Cloud is the
managed version; because it is the same data model, a workspace you build today moves across rather
than being rebuilt.
Join the waitlist to hear when it opens.
Lanes Link holds live credentials to your email and documents. The
security model states its limits plainly rather than implying
guarantees the code does not deliver — read it before you trust it with an account. To report a
vulnerability, see SECURITY.md; please do not open a public issue.
156 commits
TypeScript
99.8%