Use cases/Lanes Link/Connect your accounts once, for every agent

Connect your accounts once, for every agent

Claude Code, Codex, and the claude.ai web client reach the same Gmail, Drive, and Calendar through one endpoint you run yourself. A fourth client is not a fourth integration.

Every agent eventually wants the same things: your email, your calendar, your files, your notes. So you wire Gmail into Claude Code, then wire it again into Codex, then again into whatever you try next. Each one gets its own OAuth grant, its own permissions to configure, and its own copy of your context. The accounts are the same accounts. Only the plumbing is duplicated.

Lanes Link collapses that into one MCP endpoint you run yourself. You connect an account once, and every MCP client you point at the endpoint inherits it, along with the same policy and the same audit log. Adding a fourth client stops being a fourth integration.

How Lanes Link does it

  • One connection, many callers. lanes link connect gmail walks you through the account once. After that, Claude Code, Codex, Claude Desktop, and Cowork all reach it through the same endpoint, because the credential lives with the endpoint rather than inside any one harness.
  • Providers you probably already use. Gmail, Drive, Sheets, Docs, Calendar, Tasks, and Contacts on Google; Mail, Calendar, Contacts, and Drive on iCloud; Notion and Linear through their own remote MCP servers. Each Google product is its own connection, and a single OAuth client covers all seven.
  • Registration is mostly automatic. Only Google needs a client you register yourself. Notion and Linear register themselves, and iCloud takes an app-specific password.
  • Files are named, not carried. Where a tool takes an attachment, you hand it a path, an HTTPS URL, or a file already sitting on another message. The endpoint reads the bytes and passes them to the provider, so nothing gets encoded into a tool call and pushed through the model.
  • Useful before you connect anything. Memory, skills, and the vault sit behind the same boundary and serve without a credential of any kind, so a brand new endpoint is already worth calling.

The workflow

Start the endpoint, register it with every harness you have installed, then connect accounts as you need them. Registration is a single command that finds your installed clients rather than a config file you edit per tool.

From then on the work is just asking. An agent in Claude Code searching your inbox and an agent in the claude.ai web client searching the same inbox are the same connection, reached through the same policy. When you revoke an account, you revoke it once and every client loses it at the same moment.

Set it up

A local endpoint takes three commands and no account anywhere. It needs Bun 1.3.11+ and nothing else.

console
$ bun install -g @lanes-sh/link                # puts `lanes` on your PATH
$ lanes link profile add personal --default
$ lanes link start
ok    serving http://127.0.0.1:7337/mcp
      profiles: personal

Then, in another shell:

  1. Register the endpoint with your harnesses. lanes link mcp add finds Claude Code and Codex, registers lanes-link with each, and installs a skill and a scout agent so the agent knows what the endpoint is for.
  2. Connect your first account. lanes link connect gmail handles the OAuth round trip.
  3. Ask for something. The endpoint is already serving memory and skills, so you do not have to finish connecting everything before it is useful.
Doing this per agent is not hard, it is just repeated. The cost shows up later: a scope you widened in one client and not another, a token you rotated in three places and forgot in the fourth, and no single answer to what any of them actually did with the access.

Further reading

Browse the source at lanes-sh/link, Apache-2.0, or read the announcement.