lanes-sh/link

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

lanes.sh/link
chatgpt
claude
mcp
mcp-server
personal-assistant
personal-assistant-ai
Browse cluster: Claude MCP Server Integrations

README

Lanes Link

npm version license Apache-2.0 ci

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.

Claude, Codex, and Gemini all reach one Lanes Link endpoint, which you run yourself. Beneath it sit the profiles it serves: personal, holding Gmail, Memory, and Skills; and work, holding Gmail, Calendar, and Docs.

Why

  • Connect once, use everywhere. No per-agent integrations, no re-authorising every new tool.
  • You decide what agents can touch. Permissions default to deny, and the runtime enforces them — it does not ask the model to behave.
  • Work and personal never mix. Separate profiles, separate credentials, separate stores.
  • Every call is recorded. An append-only log of what was reached, and what was refused.

What people use it for

  • A personal assistant on your phone. A deployment is a URL, so the claude.ai or ChatGPT app reaches your mail, calendar, and files from anywhere — "what's on tomorrow", "reply to Ana's thread", "find the invoice from March". This is the case that needs your own cloud; everything below works on your machine.
  • Inbox triage you sign off on. An agent searches, reads, labels, and composes — and saves a draft for you to send rather than sending it, until you decide otherwise.
  • Coding agents that start from your context. Claude Code and Codex reach the same Linear issues, Notion pages, and notes you do, so a session begins from what you already know instead of an empty prompt.
  • One set of notes behind every agent. What you have Claude Code write down, claude.ai reads back later — your accumulated context follows you between tools instead of being trapped in whichever one recorded it.
  • A to-do list your agents share. "Remind me to chase the invoice" lands somewhere with a status, so whichever agent you are talking to next knows it is still open — and knows when it is done.
  • Your own procedures, followed rather than guessed. How a standup update reads, where an invoice gets filed, who gets cc'd on a contract — written down once, and every agent you use follows the same one.

Quickstart

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 →

In the Lanes desktop app

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.

The Lanes Link page in the Lanes desktop app: the CLI status card and its version, the target and profile selectors, the endpoint row with its running state, and the list of connected accounts.

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

How to use it →

What your agent gets

Manage it with
Connectionsyour external accounts — mail, calendar, files, issueslanes link connect
Memorywhat you want remembered between sessionslanes link memory
Taskswhat you have to do, each with a statuslanes link tasks
Assetsfiles you want kept, by namelanes link assets
Skillsyour own procedures, handed to an agent as instructionslanes link skills
Vaultpasswords and API keys, released only where you allow itlanes 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.

Connect an account

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, filesGmail · 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
WorkNotion · Linear · Slack · GitHub · Asana · Atlassian (Jira, Confluence) · Todoist · ClickUp · monday.com · Shortcut · Miro · Whimsical · Figma · Canva · Calendly · Fireflies · HubSpot
MoneyStripe · PayPal · Square · Mercury · Ramp · bunq · Paddle · Recurly · Expensify
Build and runSentry · Vercel · Netlify · Cloudflare · Supabase · Neon · Prisma · Heroku · CircleCI · Buildkite · Datadog · Grafana · Better Stack · Rootly · Flagsmith
Content and dataContentful · Storyblok · Hygraph · Sanity · Webflow · Wix · Algolia · PostHog · Mixpanel · Amplitude · RudderStack
Everything elseReddit · 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.

Run it anywhere

The same code, the same config, in all three. Only the storage adapters change.

LocalYour own cloudLanes Cloud
Runs onyour machineyour GCP project, on Cloud Runmanaged for you
NeedsBun, nothing elsea Google Cloud billing account
Set up withlanes link startlanes link deployjoin the waitlist
Reachable fromthat machineanywhere, including your phoneanywhere
Statusreadyreadycoming 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.

Docs

Security

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.

License

Apache-2.0

Contributors

sqave

156 commits

lanes-sh/link

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

lanes.sh/link
chatgpt
claude
mcp
mcp-server
personal-assistant
personal-assistant-ai
Browse cluster: Claude MCP Server Integrations

README

Lanes Link

npm version license Apache-2.0 ci

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.

Claude, Codex, and Gemini all reach one Lanes Link endpoint, which you run yourself. Beneath it sit the profiles it serves: personal, holding Gmail, Memory, and Skills; and work, holding Gmail, Calendar, and Docs.

Why

  • Connect once, use everywhere. No per-agent integrations, no re-authorising every new tool.
  • You decide what agents can touch. Permissions default to deny, and the runtime enforces them — it does not ask the model to behave.
  • Work and personal never mix. Separate profiles, separate credentials, separate stores.
  • Every call is recorded. An append-only log of what was reached, and what was refused.

What people use it for

  • A personal assistant on your phone. A deployment is a URL, so the claude.ai or ChatGPT app reaches your mail, calendar, and files from anywhere — "what's on tomorrow", "reply to Ana's thread", "find the invoice from March". This is the case that needs your own cloud; everything below works on your machine.
  • Inbox triage you sign off on. An agent searches, reads, labels, and composes — and saves a draft for you to send rather than sending it, until you decide otherwise.
  • Coding agents that start from your context. Claude Code and Codex reach the same Linear issues, Notion pages, and notes you do, so a session begins from what you already know instead of an empty prompt.
  • One set of notes behind every agent. What you have Claude Code write down, claude.ai reads back later — your accumulated context follows you between tools instead of being trapped in whichever one recorded it.
  • A to-do list your agents share. "Remind me to chase the invoice" lands somewhere with a status, so whichever agent you are talking to next knows it is still open — and knows when it is done.
  • Your own procedures, followed rather than guessed. How a standup update reads, where an invoice gets filed, who gets cc'd on a contract — written down once, and every agent you use follows the same one.

Quickstart

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 →

In the Lanes desktop app

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.

The Lanes Link page in the Lanes desktop app: the CLI status card and its version, the target and profile selectors, the endpoint row with its running state, and the list of connected accounts.

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

How to use it →

What your agent gets

Manage it with
Connectionsyour external accounts — mail, calendar, files, issueslanes link connect
Memorywhat you want remembered between sessionslanes link memory
Taskswhat you have to do, each with a statuslanes link tasks
Assetsfiles you want kept, by namelanes link assets
Skillsyour own procedures, handed to an agent as instructionslanes link skills
Vaultpasswords and API keys, released only where you allow itlanes 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.

Connect an account

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, filesGmail · 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
WorkNotion · Linear · Slack · GitHub · Asana · Atlassian (Jira, Confluence) · Todoist · ClickUp · monday.com · Shortcut · Miro · Whimsical · Figma · Canva · Calendly · Fireflies · HubSpot
MoneyStripe · PayPal · Square · Mercury · Ramp · bunq · Paddle · Recurly · Expensify
Build and runSentry · Vercel · Netlify · Cloudflare · Supabase · Neon · Prisma · Heroku · CircleCI · Buildkite · Datadog · Grafana · Better Stack · Rootly · Flagsmith
Content and dataContentful · Storyblok · Hygraph · Sanity · Webflow · Wix · Algolia · PostHog · Mixpanel · Amplitude · RudderStack
Everything elseReddit · 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.

Run it anywhere

The same code, the same config, in all three. Only the storage adapters change.

LocalYour own cloudLanes Cloud
Runs onyour machineyour GCP project, on Cloud Runmanaged for you
NeedsBun, nothing elsea Google Cloud billing account
Set up withlanes link startlanes link deployjoin the waitlist
Reachable fromthat machineanywhere, including your phoneanywhere
Statusreadyreadycoming 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.

Docs

Security

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.

License

Apache-2.0

Contributors

sqave

156 commits

Languages

TypeScript

99.8%