Skip to content
ArcadiaLookoutDocs

Three things extend the agent, each with its page in Settings (⌘,):

  • A connector is an MCP server, a local command or a remote URL, whose tools the agent can call.
  • A skill is a playbook in a SKILL.md file. The agent sees each skill's one-line description and reads the file when a task fits it.
  • A plugin is a folder that bundles skills and connectors.

Connectors and skills apply Everywhere (every project) or in one project. Pick which in the scope menu at the top of each page. When a project's connector has the same ID as one of yours, or its skill the same name, the project's wins there and yours shows Overridden.

Link an official connector

Settings › Connectors opens on its official connectors, each a tile over the connectors you added. An official connector signs in with its host's own account, such as a Google account for Gmail, instead of a key you paste.

  1. Open the tile and check what it Can and Can't do.
  2. Click Add. The host's sign-in opens in your browser, and the page shows Waiting for the host with Cancel until you finish.
  3. Pick the account and allow access. The account shows Connected.

Click Link another account for each account more. Each account is a connector of its own, so its tools keep their own names. An account the host stops accepting shows Needs sign-in: click Sign in again. Unlink, in the account's menu, signs Lookout out of it at the host and on every device.

Gmail's data never reaches a model whose provider may train on it. In a chat on such a model, Gmail shows Off for this model in the connectors chip. Where the provider lets you turn training off, turn it off there, then click Training is off at the provider in the chip, once. A chat that already read mail won't send it to such a model.

Choose where a connector runs

A connector you added everywhere, or a linked account, has Where: Everywhere, or Chosen projects and agents. Pick the projects and Lookout Agents it may run in; anywhere else it shows Not here and the agent doesn't get it. The projects you pick are kept on this Mac. The agents you pick go with your account, so an agent on another machine gets the connector there, and keeps it when it moves; a Mac that runs none of them never connects to it.

Add a connector

  1. Open Settings › Connectors and pick the scope: Everywhere or a project.
  2. Click Add custom.
  3. Enter an ID: letters, digits, _ and -. The agent's tools from it are named mcp__<id>__<tool>, so the ID can't change later.
  4. Under Transport, pick Remote URL and enter its URL, or Local command and enter the Command and its Arguments, one per line.
  5. With a project in scope, choose where it Applies: Everywhere, or only that project.
  6. Click Add everywhere, or Add to the project.

It connects at the next turn in that scope; to check it now, open it and click Test connection. A working connector shows Ready and the tools it gave.

Lookout's own MCP is for other apps. A connector whose server is Lookout itself, by any name, shows Not for chats and gives no chat its tools: a chat reaches Lookout through its own tools.

To add servers from a config in a server's instructions, click Paste a config and paste the JSON: a whole mcpServers map or one server's settings.

A server's own page may offer an install link (lookout://mcp/install, or on this site, /mcp/install). Opening one shows the one connector it names in the add form, filled in for you to check over. Nothing is added until you press Add, and it always lands in Everywhere, never in a project on its own.

A link carries only the name and where the connector runs. Anything credential-shaped in it (headers, environment values, a caller identity) is left out, and said so on the form; add a key afterwards if the connector needs one. Past one into Paste a config and you get the same review.

Sign in to a connector

A remote connector whose server asks you to sign in shows Needs sign-in with Sign in to its name: in Settings on the connector and in a chat's connectors under the message box. An agent's connector card shows Sign in at its end.

  1. Click Sign in to the connector (Sign in on an agent's card). Your browser opens the server's own sign-in page.
  2. Sign in there and allow Lookout. The page says you can go back to Lookout.
  3. The connector connects and shows Ready with its tools.

Lookout names itself to the server's sign-in only when you click, never before, and registers only where the server needs it. The sign-in syncs through your Lookout account, so your other devices, and an agent that runs on another machine, connect with it too; one device renews it for the rest. Sign out under Headers on the connector forgets it everywhere. When the server stops taking it, the connector shows Needs sign-in again. A server that offers no sign-in says it takes an API key instead: give it one below.

Give a connector a key

  1. Open the connector (on an agent's card, Add API key).
  2. Paste the key under API key. It goes to the server as Authorization: Bearer <key>; for a server that wants another header, click Send it in another header and name it. A local command takes a Variable and its Value instead.
  3. Click Save on this Mac. It reconnects.

Keys stay on the Mac you enter them on, and their values never show again. A server that refuses its key shows Needs sign-in. A saved key stays in charge of a browser sign-in for the same server; the connector says so. An agent's own connector takes its key the same way, from its card in the agent's Connectors.

A project's .lookout/mcp.json can name a stored secret instead of holding a value: "Authorization": "Bearer ${secret:EXAMPLE_API_KEY}". The connector then asks for that secret under Secrets, and sends nothing for it until you set it. A secret set for one connector is sent only to that connector's server; another connector naming it gets nothing. In an agent's home the value is that agent's secret and syncs like its other secrets.

Lookout doesn't expand ${VAR} or ${env:NAME} in a project's .lookout/mcp.json, and doesn't run a headersHelper command. A repo could otherwise pull one of your credentials into a request it chooses, or run a command of its own on every connect. Only ${secret:NAME} expands; any other reference stays as written and is flagged on the connector.

Share connectors with a project

A project's connectors live in .lookout/mcp.json in its folder: commit the file and everyone on the repo gets them. Adding a connector to the project in Settings writes this file, or you can write it yourself:

{
  "mcpServers": {
    "docs": { "url": "https://mcp.example.com/v1" },
    "db": { "command": "npx", "args": ["-y", "some-db-mcp"] }
  }
}

An entry with a url is a remote server, one with a command runs on your Mac. Lookout changes only the entries it manages and leaves the rest of the file as it is, so other apps that read the file keep working. It never writes a key there.

Trust a project's connector

A connector a project's file declares doesn't run until you trust it on your Mac. Until then its row shows Needs trust.

  1. Open Settings › Connectors with the project in scope, or choose Connectors and skills in the project's menu in the sidebar.
  2. Click the connector. Lookout shows the exact command or URL it would run.
  3. Click Trust on this Mac. When it has the same ID as one of yours, Lookout asks first, since it takes the place of yours in that project.

If the file's entry changes later, the row shows Changed and asks again. A connector you add through Lookout is trusted when it is written. An untrusted project connector never takes the place of one of yours with the same ID.

Tell a server who calls

A connector can learn who calls each of its tools: which of your agents, in which chat and turn, started by whom, on which Mac. It is off until you turn it on for that connector, so a server learns nothing about your agents, chats or Macs by default.

  1. Open the connector in Settings › Connectors.
  2. Under Identity, set Caller identity to On, or Signed for a remote URL the server checks.
  3. To sign in to the server as its own client, enter the Client ID and Scope the server gave you, then click Save client. The Issuer the server names then is kept, and a server that later names another reads Needs sign-in until you save the client again.
  4. Click Copy public key on the Key row and register it with the server. Rotate makes a new key, which the server has to register again.

A server that refuses the key shows its own words at the top of the connector, with Copy public key beside them.

A project's entry turns it on in a lookout block, which other apps that read the file ignore:

"ops": { "url": "https://ops.example.com/mcp",
         "lookout": { "identity": "signed",
                      "auth": { "type": "client_credentials", "clientId": "agent-hazel", "scope": "fleet.read" } } }
  • identity: off, on (each tool call carries who called it), or signed (the same, signed with the caller's key, so the server can check it). Signing needs a remote URL.
  • auth: optional. The connector signs in to the server as its own client, with no browser: each agent gets its own client and key, so the server can give each agent its own access. Register the client and its public key with the server first.

Lookout fills in who called from the chat itself, so nothing the agent writes can change it. Each key is made on the Mac that uses it, one per connector and agent (or one for the Mac, for chats no agent owns), and never leaves it: it is never synced, exported or shown to a command the agent runs. The block counts toward trust, so a change to it shows Changed until you trust the entry again.

Turn a connector's tools on or off

Every tool a connector gives is On: the agent calls it when your request needs it, whether it reads, changes or sends something, and nothing waits for you in the chat. To keep the agent from a tool:

  1. Open the connector, or an account's row on an official connector's page, and click Tools.
  2. Under Reads and Changes, set the tool to Off. On puts it back.
  3. To make an exception for one of your Lookout Agents, click the agent button at the end of the tool's row and check the agent: under Off for while the tool is on, under On for while it is off. The row then names the agent. An agent's Connectors set the same for that agent.

A tool that is off never reaches its server: the agent is told so and says what it would have done. Results from a connector whose source can hold instructions from others, such as mail, reach the agent marked as untrusted, as text to read and never as instructions to follow.

See what a connector did

An official connector's page, and a connector you added, list their Activity under the accounts: each change a tool made, newest first, with the chat, the account, whether it was Done or what stopped it (Off, Stopped, Failed), and when. Click a line to open its chat at the turn that made the call. The log stays on this Mac for 90 days, with what each change touched and never the text of a message.

Each line also keeps the call's id, its turn and who started the turn, and for a connector that signs, the key's kid and the cause's jti, so a line matches the server's own audit row.

Turn a connector or skill off

Every row has a switch. Turning off one of yours turns it off in every project; turning off a project's turns it off in that project, on this Mac only. To turn one off for a single chat, use its switch in the chat's connectors chip.

See what the agent has in a chat

Once a chat's project has a connector, the connectors chip under the message box counts the connectors that run there and flags any that need a look (Needs trust, Changed, Needs sign-in, Can't connect). Click it for the connectors and skills offered there; Manage in Settings opens the page on that project. Each connector that runs there has a switch for this chat alone: off, its tools leave the chat from its next request. An agent's chat has the same switches under Connectors in its + menu.

A project with no connector shows no chip, unless its tool hooks wait for your approval. To add one from a chat, choose Connectors in the + menu: it opens Settings on that project.

Write a skill

  1. Open Settings › Skills and click New skill.
  2. Enter a Name (lowercase letters, digits, - and _) and When to use it: the line the agent reads to decide when the skill applies.
  3. With a project in scope, choose where it Applies: Everywhere, or only that project.
  4. Click Create and open. Lookout writes the SKILL.md and opens it: write the steps.

A skill is a folder with a SKILL.md, and the folder's name is the skill's name:

AppliesFolder
Everywhere~/.lookout/skills/<name>/
One project.lookout/skills/<name>/ in the project, which you can commit
---
name: release-notes
description: Write release notes in the team's format
---

# release-notes

1. List the pull requests merged since the last tag.
2. Group them under Added, Changed and Fixed.

The description is what the agent sees in every chat; it reads the rest only when it uses the skill. Files beside SKILL.md are there for its steps to point at. A chat is offered the skills that are on when it starts.

Skills from Claude Code and Codex

Lookout also reads skills kept for other agents, in place, and never changes them:

FolderWhen
.agents/skills/ and .claude/skills/ in the projectalways, listed under From Codex and From Claude Code with the project in scope
~/.agents/skills/ and ~/.claude/skills/when Use Claude Code and Codex rules and skills is on in Settings › Skills

Each shows the harness it comes from. Skills that Claude Code plugins bring are not read: to use one, copy its folder into ~/.lookout/skills/. A skill's switch turns it off for Lookout; Lookout offers no way to edit it. When one has the same name as a skill in .lookout/skills/ or ~/.lookout/skills/, Lookout's own wins. The same setting reads those harnesses' global rules files.

Use a skill

The agent picks a skill when its description fits the task. To ask for one, type @ in the message box and pick it under Skills: its SKILL.md goes with that message, and the agent follows it.

Lookout's own visualize skill is listed under Built in, for a chart or diagram in the chat. The agent is offered it by description like any other skill, and /visualize anywhere in a message sends it with that message. A chat that started before a skill was added is told about it once, at its next message.

Install a plugin

  1. Open Settings › Plugins and click Install plugin.
  2. Pick the plugin's folder.

Lookout copies the folder, and its skills and connectors join the agent in every project. They show on the Skills and Connectors pages under From and the plugin's name. The plugin's switch turns them all on or off, and Uninstall removes them. To update a plugin, install it again from its folder. Plugins have no project scope.

Browser is listed there too, built in and on: it gives every chat and subagent the Browser tool. Its switch takes the tool out of every chat; it can't be uninstalled, and a plugin of your own can't take its name.

Make a plugin

A plugin is a folder with a plugin.json that names its skills and connectors:

team-kit/
  plugin.json
  skills/triage/SKILL.md
  connectors/docs.json
{
  "name": "team-kit",
  "version": "1.0.0",
  "displayName": "Team kit",
  "description": "The triage playbook and the docs server",
  "skills": ["skills/triage"],
  "mcpServers": ["connectors/docs.json"]
}

Each file in mcpServers is one connector:

{ "name": "Team docs", "transport": "http", "url": "https://mcp.example.com/v1" }

A local command takes "transport": "stdio", a command and its args.

  • name is lowercase letters, digits and -, up to 40 characters; version is 1.2.3.
  • Optional: author, license, homepage, and enabledByDefault (false installs it off).
  • Up to 10 skills and 10 connectors, and 200 files and 1 MB in all.
  • A connector file can't carry env or headers: give it a key on its page once installed.

Sync across your Macs

Signed in to a Lookout account, your Everywhere connectors, which of your skills are on, your list of plugins and your rules for every project sync to your other machines. They sync when you open one of these pages, after each change, and every couple of minutes on each machine signed in; the button beside the page's title says when they last did, and syncs again when clicked. Keys, skill files and plugin folders stay on each Mac: a plugin installed on another Mac says its copy is missing until you install it here from its folder. When both Macs changed, Settings asks which to keep: Keep this Mac’s or Use the other device’s.

Limits

  • The agent uses a connector's tools. Its resources and prompts are not offered.
  • A remote URL connects over Streamable HTTP. A server that offers only the older SSE transport can't connect.
  • A connector signs in in your browser when its server offers the standard sign-in (MCP authorization), with the keys and headers you give it, or as its own client with a key Lookout makes. A browser sign-in is kept on the Mac you signed in on.
  • Rules: The instruction files a chat reads from each of its folders, how an edit reaches a running chat, and the ignore files that keep the agent out of paths.
  • Agents: Named agents with their own folder, memory and instructions, teams that message each other, routines on a schedule, and chats an agent starts.
  • App access: Drive Lookout from another app over MCP, or from Claude Code with its plugin.
  • Settings: Settings in the Mac app page by page: what each setting does, and its default.