Keel

Shared Memory for teams

Back to home

Connect your agents.

Use Keel with Claude Code, Codex or any client that supports remote HTTP MCP. Everyone connects to the same team Memory.

Before you connect

Sign in and open your team, or create one if you are starting from scratch. If your team already uses Keel, ask a Team Admin for an invitation.

The plugin is called Team AI. You will see team-ai in commands and configuration, even though the app is called Keel.

Claude Code

The plugin adds MCP tools, automatic recall and commands for connecting, binding and review. You need a shell with curl and jq.

  1. Set the deployment address

    In your terminal, set the address before starting Claude Code. The plugin otherwise defaults to a local development server.

    export TEAMAI_URL=https://teamai-app.com
    claude
  2. Install the plugin

    Run these commands inside Claude Code. Review the plugin and choose the installation option you want.

    /plugin marketplace add teamai-app/team-ai
    /plugin install team-ai@team-ai
  3. Sign in and connect the hooks

    Start a new session, open /mcp and authenticate Team AI. In the browser, sign in and choose your team.

    Then run the command below, open the URL it prints and approve the same team yourself. This authorizes the automatic hooks separately from MCP.

    /team-ai:connect
  4. Bind the project folder

    From your project, run this command, choose a Scope and check who reads it before confirming.

    /team-ai:bind

    It writes the team endpoint and Scope declaration to .mcp.json, and the team setting to .claude/settings.json. Keep both files together in the repository. Start a new session and authenticate the project connection if prompted.

Claude Code plugin documentation

Codex Desktop and CLI

Use a Codex version with plugin marketplace support. Local hooks need Python 3.11+, a POSIX shell, curl and jq on the host running Codex. On Windows, use WSL with Codex attached to that environment.

  1. Install Team AI

    Run these commands in a terminal using the same user profile and host as Codex Desktop.

    codex plugin marketplace add teamai-app/team-ai
    codex plugin add team-ai@team-ai

    In Desktop, open Plugins and check that Team AI is installed and enabled. Restart the app if the marketplace has not refreshed.

    Install from a local checkout or another deployment

    From a checkout of the Team AI repository, run:

    npm run plugin:install:codex

    For another deployment, pass its origin:

    npm run plugin:install:codex -- --url http://127.0.0.1:8787

    The installer registers a local marketplace and installs the same bundle. Run it again to refresh that copy after updating the checkout.

  2. Authenticate the MCP connection

    Start a new chat and authenticate Team AI when prompted. Choose your team in the browser. In the CLI, start the same flow with:

    codex mcp login team-ai
  3. Trust and connect the hooks

    Review and trust the installed Team AI hook definitions. Then invoke this skill in a Codex chat, open the printed URL and approve the same team.

    $team-ai:manage connect

    MCP sign-in and hook authorization are separate. Codex skips hooks you have not trusted.

  4. Bind the project folder

    From your project chat, invoke:

    $team-ai:manage bind

    Select a readable Scope, inspect who reads it and confirm. The adapter updates .codex/config.toml; commit that file. Start a new chat in the trusted project, authenticate its scoped endpoint and connect the hooks to its team if requested.

    Codex reads its own configuration. It does not use Claude Code’s .mcp.json or .claude/settings.json.

Official OpenAI plugin documentation

Other MCP clients

Connect directly from ChatGPT or another client with remote HTTP MCP support. Direct MCP gives you the tools; automatic recall and distillation require the local plugin and supported hooks.

  1. Add a remote server

    In your client’s MCP settings, add a server named team-ai, choose HTTP (Streamable HTTP) and enter:

    https://teamai-app.com/mcp

    Choose OAuth authentication. Open the browser sign-in flow and select your team.

    Connect from ChatGPT

    On the web, open Plugins and choose Create custom MCP server (or Add custom MCP server). Enter the URL above, choose OAuth, create and install the plugin. Start a new Work chat, select it with @ and authenticate.

    Connect Codex through MCP only

    Add this to your Codex configuration, then authenticate with codex mcp login team-ai. Use this path if you are connecting without the Team AI plugin.

    [mcp_servers.team-ai]
    url = "https://teamai-app.com/mcp"

    Official OpenAI MCP configuration documentation

  2. Choose the team and Scope explicitly

    For a connection fixed to one team, use https://teamai-app.com/t/<team-id>/mcp, replacing <team-id> with the ID in your team page’s URL. Authenticate for that team.

    If your client supports custom headers, declare a Scope with X-Team-AI-Scope. Its value is the Scope ID followed by a space and its path. Ask the agent to call list_scopes to inspect readable Scopes before choosing one.

    Without a Scope declaration, the connection uses the team root, read by everyone in the team. A folder name or Git remote never selects the Scope.

  3. Recall when work begins

    Without hooks, ask the agent to recall relevant team Memory at the start of a task. At the end, ask it to submit selected durable findings for review. Use the web app to review candidates and create Scopes.

Use a bearer token instead of OAuth

If your client cannot use OAuth, issue an API token from your team page and configure an Authorization: Bearer <token> header. Keep the token in your client’s credential store or environment, outside committed project files.

The token identifies you and your team. It uses the same Scope permissions and review process as OAuth.

Check the connection

Ask your agent:

List the Scopes I can read in Team AI, then recall Memory relevant to my current task. Tell me which team and Scope answered.

Check that the answer names the intended team and Scope. An empty recall result can be valid: a new team may have no approved Memory, or nothing may be relevant to the task.

In Codex, invoke $team-ai:manage orientation to check the hooks too. Inspect the installation from your terminal:

codex plugin list --json
codex mcp list --json

New findings go through checked intake and individual review. They become shared guidance after approval; a team’s automatic approval setting can admit eligible findings with sampling.

If something does not connect

The tools work, but automatic recall does not

Connect the hooks as well as MCP: /team-ai:connect in Claude Code, or $team-ai:manage connect in Codex. In Codex, check hook trust and that the required shell tools are available on the host running the hooks.

The answer names a different team or Scope

Recheck the project’s explicit binding and authenticate the team endpoint it declares. Run the bind workflow again if needed, then start a new session. Confirm the team and readers before submitting findings.

You use a self-hosted deployment

Replace https://teamai-app.com with your deployment origin. Set TEAMAI_URL before starting Claude Code; for Codex, use the local installer’s --url option above.

Your server needs sign-in and its public origin configured for OAuth. A remote client such as ChatGPT needs a reachable HTTPS endpoint or supported Secure MCP Tunnel; it cannot reach your machine’s 127.0.0.1.

Full client reference · Open your teams