Skip to main content
Glama

chat-across

English | 中文

하나의 작은 MCP 서버로 여러분의 AI 코딩 에이전트들이 하나의 팀처럼 같은 프로젝트에서 작업할 수 있게 해줍니다 — 현재는 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

분리. 세션은 완전한 격리로 돌아갑니다 — 모든 공유 데이터 도구는 다시 앵커할 때까지 실패-폐쇄됩니다.

/chat-across-list

브리지의 모든 환경을 나열합니다: 어떤 벤더가 포함되어 있는지, 몇 개의 세션이 접촉했는지, 마지막으로 언제 움직였는지.

/chat-across-delete <name>

환경 삭제: 브리프와 포인터를 지우고 이름을 해제합니다. 이름 없이 호출하면 환경을 나열하고 확인을 요청합니다 — 절대 맹목적으로 삭제하지 않습니다. 브리지 기록만 정리하며, 누구의 대화 기록, 메모리, 파일도 건드리지 않습니다.

명령이 하는 모든 것은 일반 언어로도 접근 가능합니다 — "delete environment project1", "what environments are there", "continue what Codex was doing" 모두 작동합니다.

Related MCP server: AMLink

제공되는 것

앵커링 — 환경을 만남의 장소로

환경은 고유한 이름(project1, mcp, 등)일 뿐입니다. 세션이 앵커되고, 앵커된 세션은 공유하며, 앵커되지 않은 세션은 물리적으로 외부에 있습니다 — 실패-폐쇄, 공유 없음, 오염 없음. 이름이 정체성입니다: 기존 이름으로 연결하면 항상 참여하므로 project1이 두 개가 될 수 없습니다.

도구

수행 작업

chat_across_connect

이름으로 생성-또는-참여. 이 세션의 자체 네이티브 트랜스크립트에 대한 포인터를 등록하고(에이전트가 세션 UUID를 전달하여 피어가 다시 읽을 수 있도록), 모든 피드의 최신 브리프를 반환합니다 — 참여만으로도 전체 팀의 상태를 알 수 있습니다.

chat_across_disconnect

분리; 모든 범위 도구가 다시 실패-폐쇄됩니다.

브리프 — "모두가 무엇을 하고 있는지" 레이어

각 세션은 브리지에 하나의 압축된 작업 브리프(목표 / 완료 / 주요 결정 / 다음)를 유지하며, 제자리에서 업서트됩니다 — 32KB로 제한, 세션당 한 행, 저장소가 물리적으로 커질 수 없습니다. 브리프는 작성자의 트랜스크립트의 바이트 워터마크를 포함하므로, 독자는 behindBytes를 볼 수 있습니다: 브리프가 작성된 이후 정확히 얼마나 많은 일이 발생했는지. 낡음은 추측이 아닌 측정된 숫자입니다.

피어는 벤더가 아닌 네이티브 세션 UUID로 키가 지정됩니다 — 한 벤더의 여러 세션은 구별됩니다(자동화 루프의 두 Claude 시트는 각각 자체 브리프를 유지), 재시작된 MCP 서버를 통해 다시 연결되는 동일한 세션은 하나의 항목으로 중복 제거됩니다. sessionUuid(모든 피드에 표시)를 모든 읽기-통과 도구에 전달하여 하나의 세션을 정확히 지정할 수 있습니다.

도구

수행하는 것

chat_across_sync

자체 브리프 푸시(업서트 + 워터마크), 피드의 최신 브리프 풀 — 한 번의 호출로 양방향.

네이티브 읽기-통과 — 이 프로젝트의 실제 목적

브리지에 복사되는 것은 없습니다. 에이전트가 피어가 무엇을 했는지 알고 싶을 때, 브리지는 피어의 자체 앱이 이미 저장하는 위치를 해석하고 제자리에서, 요청 시 파싱합니다:

도구

읽는 것

세부 사항

get_peer_tail

피드의 네이티브 세션 트랜스크립트 (Claude 프로젝트 .jsonl / Codex rollout / Kimi wire)

마지막 N개 교환(기본 10, 최대 50), 파일 끝에서 바이트 시크 — 라이브, 쓰기-잠긴 660MB rollout이 수 밀리초로 응답합니다. Codex 가디언 서브스레드 건너뛰기, 하네스 노이즈 필터링, 시크릿 형태 문자열 리댁트.

get_peer_memory

피드의 네이티브 메모리 저장소

Claude: 프로젝트별 메모리 디렉토리. Codex: 사용자 수준 저장소를 항목별 cwd 태그로 필터링. 여기에는 공유 메모리 뱅크가 없습니다 — 호스트가 이미 가진 것을 다시 만들지 마세요.

get_peer_instructions

피드 프로젝트의 상시 규칙

피드 프로젝트 루트의 CLAUDE.md / AGENTS.md / KIMI.md.

함께: 브리프 = 그들이 무엇을 하는지, 테일 = 정확한 마지막 말, 메모리 = 배운 것, 지침 = 프로젝트 규칙. 한 번의 연결로 완전한 인수 컨텍스트.

프로젝트 정체성은 파생되며, 구성되지 않습니다: 피드의 자체 아티팩트가 cwd를 전달합니다(Codex session_meta, Claude jsonl 레코드, Kimi state.json). 피드 세션이 닫혀 있거나, 크래시되었거나, 쿼터가 없어도 작동합니다 — 브리지는 라이브 프로세스가 아닌 파일을 읽습니다.

라이프사이클 — 가시성과 정리

도구

수행하는 것

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(노드 ≥ 20)에서 작동하며, 클론 없음, 빌드 없음.

1. 패키지 설치

npm install -g chat-across

이렇게 하면 chat-across 명령이 PATH에 추가되고 패키지(서버 + 템플릿)가 npm의 전역 디렉토리 아래에 설치됩니다 — npm root -g가 정확한 위치를 출력합니다. 패키지는 <그 경로>/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 list → chat-across … ✔ Connected

  • Codex: codex mcp get chat-across → enabled: true; $를 입력하면 chat-across 스킬이 제공되어야 합니다

  • Kimi: "chat-across 도구가 무엇이 있나요"라고 물어보세요

그 중 하나에서 /chat-across test를 입력하세요 — created: true는 브리지가 살아 있다는 뜻입니다.

모든 것이 있는 곳

품목

위치

서버 + examples/ 템플릿

$(npm root -g)/chat-across/

chat-across 명령어

npm의 전역 bin 디렉토리 (이미 PATH에 있음)

브리지 데이터 (SQLite: 브리핑 + 포인터만)

모든 OS에서 ~/.chat-across/ — CHATACROSS_DATA_DIR로 재정의 가능. (v0.1.4에서 %APPDATA%에서 이동: MSIX 패키지 호스트는 해당 경로가 자동으로 가상화되지만, 홈 닷디렉터리는 예외)

3단계에서 설치한 슬래시 명령

~/.claude/commands/, ~/.codex/skills/, ~/.kimi-code/commands/

제거 = npm uninstall -g chat-across + 등록 항목과 복사된 템플릿 제거 + 데이터 디렉토리 삭제. 다른 어디에도 쓰여지지 않습니다.

기존 분야와의 차이점

크로스 에이전트 컨텍스트 도구는 혼잡한 영역입니다 — 그리고 그들 대부분은 다른 두 가지 길을 택합니다:

  • 메모리 레이어 도구 (memorix, cass-memory, cross-agent-memory, OpenMemory, …)는 자체 저장소를 구축합니다: 스톱 훅 또는 수집 파이프라인이 결국 귀하의 세션을 그들의 벡터 DB / 플레이북으로 요약하고, 에이전트는 그곳에 써야 합니다. 강력하지만 유지 관리가 필요한 두 번째 두뇌이며, 써리(stale) 사본을 보관합니다.

  • 실시간 메시징 브리지 (Claude Channels ↔ Codex App Server의 오버레이인 AgentBridge 등)는 두 개 실행 중 세션이 실시간으로 대화할 수 있게 합니다. 협동 편집에는 좋지만, 피어 세션이 종료되었거나, 충돌했거나, 할당량 초과일 때는 도움이 되지 않습니다 — 바로 그 상황에서 인계가 필요한데 말이죠.

chat-across는 세 번째 길을 택합니다: 저장소 없음, 훅 없음, 임베딩 없음, 라이브 결합 없음. 호스트는 이미 모든 것을 지속합니다 — 트랜스크립트, 기억, 프로젝트 문서 — 따라서 브리지는 어디를 해결하고 그 자리에서 요청 시 파싱할 뿐입니다. 쓰는 것은 세션당 하나의 제한된 브리핑뿐입니다. 브리지 DB를 삭제해도 값진 것은 잃지 않습니다.

디자인 규칙

  • 제로 복사: 대화, 기억, 문서는 각 호스트의 고유 저장소에서 원래 위치로 읽힙니다. 브리지는 포인터와 세션당 하나의 제한된 브리핑(32KB 제한, 14일 정리)만 저장합니다. 로컬 전용, 네트워크 없음.

  • 폐쇄-종료: 앵커되지 않은 세션은 어떤 환경에도 접근할 수 없습니다.

  • 호스트가 이미 가진 것을 다시 구축하지 않습니다: 공유 메모리 뱅크, 트랜스크립트 미러링, 검색 엔진 없음. 읽는 에이전트는 모델을 가지고 있으므로 원본 텍스트로 충분합니다.

  • 정직한 해결: 트랜스크립트 포인터는 uuid / explicit / heuristic으로 라벨링되어 읽는 사람이 신뢰 정도를 알 수 있습니다.

  • 실패 시 명확하게: sync/connect는 성공을 주장하기 전에 커밋이 실제로 반영되었는지 확인하고 쓴 DB 파일을 보고합니다; 손상된 데이터베이스는 격리(bridge.sqlite.corrupt.<ts>)되고 시작 시 명시적으로 재빌드됩니다 — 브리지는 부상 캔고 빠지지 실행/하지 않고, 올바른 해도 척하지 않습니다.

벤더 추가

각 벤더는 약 60줄입니다: 세션 + 줄 + 트랜스크립트 파서 + 작업 디렉토리(deriver) + (선택적으로) 메모리 저장소 판독기. 현재의 세(A) (Claude Code / Codex / Kimi Code)가 템플릿입니다 — OpenCode, Hermes, Kiro 또는 MCP 지원으로 세션을 디스크에 지속하는 다른 에이전트도 같은 방식으로 추가할 수 있습니다. 어댑터 체크리스트와 픽스처 요구 사항은 CONTRIBUTING.md를 참조하세요.

주의사항

  • Claude Code는 세션 트랜스크립트를 30일 후 자동 삭제합니다(클린업은 일반적으로 실행 시 시작됨)). In 경우에 오래 지속되는 인계에 의존한다면 ~/.claude/settings.json에서 cleanupPeriodDays를 올리세요 — 그렇지 않으면 포인터가 파일보다 오래 살아남을 수 있습니다.

  • 세 가지 트랜스크립트 형식은 문서화되지 않은 벤더 내부 구현이라 변경될 수 있습니다; 파서는 본질적으로 특정 버전에 묶여있습니다 (Claude Code 2.x, Codex 0.146–0.147, Kimi Code wire v2에 대해 테스트됨). PR 환영합니다.

  • 연결 시 sessionUuid는 매우 권장됩니다 — 없으면 최신 활성 파일 매칭으로 폴백, 여러 세션이 동시에 실행될 때 오매핑될 수 있습니다.

  • 메모리 부분은 기본적인 비밀키 삭제 필터를 거칩니다; 이는 안전벨트이지 절대 보장이 아닙니다.

  • Windows에서 CHATACROSS_DATA_DIR을 %APPDATA%(또한 알려진 폴더 경로)로 설정하지 마십시오: 호스트 중 하나라도 MSIX-패키지 앱이라면 AppData가상화가 프로세스에게 경로의 오버레이 복사본을 조용히 만들어 결코 합쳐지지 않는 평행 세계로 갈라집니다. 기본값(~/.chat-across)은 예외입니다. 피와 땀으로 실제 진단했습니다.

라이선스

MIT

Maintenance

ActivityInactive
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI coding agents to read each other's conversation history read-only and sanitized, so you can continue work across different tools without re-explaining context.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables any AI coding agent to instantly find and resume sessions created in another agent. It indexes sessions from multiple harnesses locally and injects a compact, ready-to-resume payload without using LLM tokens.
    4
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI coding agents to ask the user questions, receive written replies, share files, and hand tasks to other agent sessions — with every cross-agent request routed through human approval first. Sessions register themselves so they can be read, woken, and answered from a phone over a local-first, self-hosted setup.
    2
    Apache 2.0