Skip to main content
Glama

chat-across

Английский | 中文

Один крошечный MCP-сервер, который позволяет вашим ИИ-агентам разработки работать над одним проектом как одна команда — сегодня это Claude Code, Codex и Kimi Code, расширяется на любого агента, сохраняющего сессии (добавление вендора занимает ~60 строк). Привяжите сессию к именованному окружению одной слэш-командой, и каждый агент сможет читать, что делают другие, прямо из их родных файлов, без копирования.

Он подстраивается под ваше окружение и рабочий процесс — а не наоборот. Установите один MCP-сервер и продолжайте работать именно там, где вы уже работаете: Codex App, Claude Code / Desktop, Kimi Code, бок о бок или по одному. Никакого централизованного GUI, никакого нового TUI, никакого приложения для переключения, ничего мигрировать. Ваши агенты остаются вашими; они просто перестают быть чужими друг для друга.

Claude Code ─┐
Codex App  ──┼──►  chat-across bridge (stdio MCP)  ──►  one small SQLite (pointers + briefs only)
Kimi Code  ──┘          │
                        └─ reads peers' NATIVE session / memory / docs in place — nothing duplicated

Слэш-команды

Пять команд покрывают всё. В Claude Code и Kimi Code это слэш-команды; в Codex введите $ и выберите навык с тем же именем.

Команда

Что происходит

/chat-across <name>

Привязывает эту сессию к окружению <name> (при первом использовании создаёт его, при повторном — подключается). Затем агент автоматически синхронизируется в обе стороны: сжимает свой разговор в сводку и отправляет её, получает последние сводки всех пиров и сообщает, чем занят каждый из них — всё одной командой.

/chat-across-sync

Ручное обновление: отправить обновлённую сводку, получить последние сводки пиров. Агенты также делают это сами после каждой значимой вехи, так что вам это редко нужно.

/chat-across-disconnect

Отвязывает. Сессия возвращается в полную изоляцию — все инструменты общих данных переходят в режим fail-closed, пока она снова не привяжется.

/chat-across-list

Список всех окружений на мосту: какие вендоры внутри, сколько сессий его касались, когда оно последний раз изменялось.

/chat-across-delete <name>

Удаляет окружение: стирает его сводки и указатели, освобождает имя. Вызванная без имени, она перечисляет окружения и спрашивает — она никогда не удаляет вслепую. Только служебный учёт моста; ничьи транскрипты, воспоминания или файлы не затрагиваются.

Всё, что делает команда, также достижимо обычным языком — «удали окружение project1», «какие есть окружения», «продолжи то, что делал Codex» — всё работает.

Related MCP server: Cross-Project MCP Server

Что вы получаете

Привязка — окружения как точки встречи

Окружение — это просто уникальное имя (project1, mcp, что угодно). Сессии привязываются к нему; привязанные сессии обмениваются данными; непривязанные сессии физически снаружи — fail-closed, без обмена, без загрязнения. Имена — это идентичность: подключение с существующим именем всегда присоединяет к нему, так что никогда не бывает двух project1.

Tool

What it does

chat_across_connect

Создаёт или подключает по имени. Регистрирует указатель на собственный родной транскрипт этой сессии (агенты передают UUID своей сессии, чтобы пиры могли читать её), и возвращает последнюю сводку каждого пира — одно подключение уже показывает состояние всей команды.

chat_across_disconnect

Отвязывает; все ограниченные инструменты снова переходят в режим fail-closed.

Сводки — слой «чем занят каждый»

Каждая сессия хранит на мосту одну сжатую рабочую сводку (цель / сделано / ключевые решения / далее), обновляемую на месте — ограничена 32KB, одна строка на сессию, поэтому хранилище физически не может расти. Сводки несут байтовую метку транскрипта автора, поэтому читатели видят behindBytes: сколько именно произошло с момента записи сводки. Устаревание — это измеряемое число, а не догадка.

Пиры идентифицируются по нативному UUID сессии, а не по вендору — несколько сессий одного вендора остаются различимыми (два экземпляра Claude в цикле автоматизации сохраняют собственные сводки), а та же сессия, переподключающаяся через перезапущенный MCP-сервер, дедуплицируется в одну запись. Передайте sessionUuid (показан у каждого пира) любому инструменту сквозного чтения, чтобы адресовать одну конкретную сессию.

Tool

What it does

chat_across_sync

Отправить собственную сводку (upsert + метка), получить последние сводки пиров — один вызов в обоих направлениях.

Сквозное чтение родных файлов — ради чего этот проект

На мост ничего не копируется. Когда агенту нужно узнать, что сделал пир, мост определяет, где собственное приложение пира уже хранит это, и разбирает его на месте, по требованию:

Tool

Reads

Detail

get_peer_tail

Родной транскрипт сессии пира (проектный .jsonl Claude / rollout Codex / wire Kimi)

Последние N обменов (по умолчанию 10, максимум 50), байтовый поиск с конца файла — живой, заблокированный на запись rollout на 660MB отвечает за однозначное число миллисекунд. Пропускает субтреды-хранители Codex, отфильтровывает шум обвязки, маскирует строки, по форме похожие на секреты.

get_peer_memory

Родное хранилище памяти пира

Claude: каталог памяти проекта. Codex: пользовательское хранилище, отфильтрованное по тегам cwd каждой записи. Здесь нет общего банка памяти — никогда не пересоздавайте то, что уже есть у хоста.

get_peer_instructions

Постоянные правила проекта пира

CLAUDE.md / AGENTS.md / KIMI.md из корня проекта пира.

Вместе: сводка = что они делают, хвост = точные последние слова, память = чему они научились, инструкции = правила проекта. Полный контекст для передачи дел одним подключением.

Идентичность проекта выводится, а не настраивается: собственные артефакты пира несут его cwd (Codex session_meta, записи jsonl Claude, state.json Kimi). Работает, даже если сессия пира закрыта, упала или исчерпала квоту — мост читает файлы, а не живые процессы.

Жизненный цикл — видимость и очистка

Tool

What it does

list_environments

Каждое окружение с присутствующими вендорами, количеством сессий и последней активностью — вопрос «какой это project1» отвечает сам собой.

chat_across_delete

Стирает окружение по точному имени и освобождает его. Устаревшие строки также самоудаляются через 14 дней в любом случае.

Повседневное использование

/chat-across myproject        # Claude / Kimi   (Codex: type $ and pick chat-across)

Вот и всё. Агент привязывается, отправляет свою сводку, получает сводки остальных и рассказывает вам, чем заняты другие агенты. Далее:

  • «Продолжи то, что делал Codex» → агент получает хвост Codex + память + документацию проекта и продолжает с последнего предложения.

  • «Какие есть окружения?»/chat-across-list или просто спросите.

  • «Начни project1 заново, начисто»/chat-across-delete project1, затем /chat-across project1.

Новая сессия, та же нить

Сессии тоже являются пирами — включая ваши собственные старые. Откройте совершенно новую сессию (того же вендора или другого), привяжитесь к тому же окружению, и сводка предыдущей сессии придёт вместе с подключением. Скажите «продолжи с того места, где остановилась моя последняя сессия» — и агент прочитает родной хвост той сессии и продолжит с последнего предложения.

Это работает, даже если старая сессия закрыта, упала или исчерпала лимит контекста — мост читает файл её транскрипта, а не живой процесс. Возобновление средствами вендора (claude --resume, список сессий Codex) остаётся первым выбором для обычных перезапусков того же вендора; это структурированный запасной вариант, который также переживает сжатие контекста, смену квоты и переходы между вендорами. Единственное требование: старая сессия хотя бы раз привязалась, пока была жива.

Установка

Четыре шага: установите пакет → зарегистрируйте его в каждом хосте → установите шаблоны слэш-команд → перезапустите хосты. Работает на Windows / macOS / Linux (Node ≥ 20), без клонирования, без сборки.

1. Установите пакет

npm install -g chat-across

Это добавляет команду chat-across в ваш PATH, а пакет (сервер + шаблоны) — в глобальный каталог npm — npm root -g выводит точное расположение; пакет находится по пути <that path>/chat-across.

2. Зарегистрируйте сервер в каждом хосте

Один и тот же сервер везде, отличается только метка:

# Claude Code
claude mcp add chat-across -s user --env CHATACROSS_HOST_LABEL=claude-code -- chat-across
# ~/.codex/config.toml — add this section
[mcp_servers.chat-across]
command = "chat-across"
env = { CHATACROSS_HOST_LABEL = "codex-app" }
// ~/.kimi-code/mcp.json — merge into mcpServers
{ "mcpServers": { "chat-across": {
  "command": "chat-across",
  "env": { "CHATACROSS_HOST_LABEL": "kimi-code" } } } }

Не хотите устанавливать глобально? Используйте npx -y chat-across в качестве команды во всех трёх конфигах. Разрабатываете или хотите внести вклад? git clone + npm install + укажите в конфигах node <repo>/src/server.mjs.

3. Установите слэш-команды

Папка examples/ поставляется внутри npm-пакета. Скопируйте её шаблоны в каталог команд/навыков каждого хоста — они дают каждому агенту пять команд /chat-across* и учат его автоматически сжимать + отправлять + получать при подключении, а также передавать свой UUID сессии.

macOS / Linux:

EX="$(npm root -g)/chat-across/examples"
mkdir -p ~/.claude/commands ~/.kimi-code/commands ~/.codex/skills
cp "$EX"/claude-commands/*.md ~/.claude/commands/
cp "$EX"/claude-commands/*.md ~/.kimi-code/commands/
cp -r "$EX"/codex-skills/* ~/.codex/skills/

Windows (PowerShell):

$ex = Join-Path (npm root -g) 'chat-across\examples'
New-Item -ItemType Directory -Force "$env:USERPROFILE\.claude\commands", "$env:USERPROFILE\.kimi-code\commands", "$env:USERPROFILE\.codex\skills" | Out-Null
Copy-Item "$ex\claude-commands\*.md" "$env:USERPROFILE\.claude\commands\"
Copy-Item "$ex\claude-commands\*.md" "$env:USERPROFILE\.kimi-code\commands\"
Copy-Item "$ex\codex-skills\*" "$env:USERPROFILE\.codex\skills\" -Recurse -Force

4. Перезапустите и проверьте

Перезапустите каждое приложение-хост, чтобы оно прочитало новую конфигурацию MCP, затем проверьте:

  • Claude Code: claude mcp listchat-across … ✔ Connected

  • Codex: codex mcp get chat-acrossenabled: true; при вводе $ должны предлагаться навыки chat-across

  • Kimi: спросите его: «какие у тебя есть инструменты chat-across»

Введите /chat-across test в любом из них — created: true означает, что мост жив.

Please specify the target language for the translation.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI coding assistants like Claude Code, Cursor, and Codex to share chat logs, terminal history, and session context with each other. Eliminates the need to re-explain context when switching between different AI coding tools.
    2
  • A
    license
    Not graded
    quality
    D
    maintenance
    The simplest way to bridge and collaborate across AI Agent sessions like Claude Code, Codex, Gemini, or Cursor. It allows your agents to combine their strengths to solve your most difficult tasks without leaving their current context.
    38
    66
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A multi-agent collaboration layer for AI coding agents enabling real-time communication, code review, and task handoff across distributed development sessions.
    13
    37
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VictorZhang01/chat-across'

If you have feedback or need assistance with the MCP directory API, please join our Discord server