chat-across
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에서는 $를 입력하고 같은 이름의 스킬을 선택합니다.
명령 | 수행되는 작업 |
| 이 세션을 환경 |
| 수동 새로고침: 업데이트된 브리프 푸시, 피어 최신 풀. 에이전트는 중요한 마일스톤 이후에도 자체적으로 이 작업을 수행하므로 거의 필요하지 않습니다. |
| 분리. 세션은 완전한 격리로 돌아갑니다 — 모든 공유 데이터 도구는 다시 앵커할 때까지 실패-폐쇄됩니다. |
| 브리지의 모든 환경을 나열합니다: 어떤 벤더가 포함되어 있는지, 몇 개의 세션이 접촉했는지, 마지막으로 언제 움직였는지. |
| 환경 삭제: 브리프와 포인터를 지우고 이름을 해제합니다. 이름 없이 호출하면 환경을 나열하고 확인을 요청합니다 — 절대 맹목적으로 삭제하지 않습니다. 브리지 기록만 정리하며, 누구의 대화 기록, 메모리, 파일도 건드리지 않습니다. |
명령이 하는 모든 것은 일반 언어로도 접근 가능합니다 — "delete environment project1", "what environments are there", "continue what Codex was doing" 모두 작동합니다.
Related MCP server: Cross-Project MCP Server
제공되는 것
앵커링 — 환경을 만남의 장소로
환경은 고유한 이름(project1, mcp, 등)일 뿐입니다. 세션이 앵커되고, 앵커된 세션은 공유하며, 앵커되지 않은 세션은 물리적으로 외부에 있습니다 — 실패-폐쇄, 공유 없음, 오염 없음. 이름이 정체성입니다: 기존 이름으로 연결하면 항상 참여하므로 project1이 두 개가 될 수 없습니다.
도구 | 수행 작업 |
| 이름으로 생성-또는-참여. 이 세션의 자체 네이티브 트랜스크립트에 대한 포인터를 등록하고(에이전트가 세션 UUID를 전달하여 피어가 다시 읽을 수 있도록), 모든 피드의 최신 브리프를 반환합니다 — 참여만으로도 전체 팀의 상태를 알 수 있습니다. |
| 분리; 모든 범위 도구가 다시 실패-폐쇄됩니다. |
브리프 — "모두가 무엇을 하고 있는지" 레이어
각 세션은 브리지에 하나의 압축된 작업 브리프(목표 / 완료 / 주요 결정 / 다음)를 유지하며, 제자리에서 업서트됩니다 — 32KB로 제한, 세션당 한 행, 저장소가 물리적으로 커질 수 없습니다. 브리프는 작성자의 트랜스크립트의 바이트 워터마크를 포함하므로, 독자는 behindBytes를 볼 수 있습니다: 브리프가 작성된 이후 정확히 얼마나 많은 일이 발생했는지. 낡음은 추측이 아닌 측정된 숫자입니다.
피어는 벤더가 아닌 네이티브 세션 UUID로 키가 지정됩니다 — 한 벤더의 여러 세션은 구별됩니다(자동화 루프의 두 Claude 시트는 각각 자체 브리프를 유지), 재시작된 MCP 서버를 통해 다시 연결되는 동일한 세션은 하나의 항목으로 중복 제거됩니다. sessionUuid(모든 피드에 표시)를 모든 읽기-통과 도구에 전달하여 하나의 세션을 정확히 지정할 수 있습니다.
도구 | 수행하는 것 |
| 자체 브리프 푸시(업서트 + 워터마크), 피드의 최신 브리프 풀 — 한 번의 호출로 양방향. |
네이티브 읽기-통과 — 이 프로젝트의 실제 목적
브리지에 복사되는 것은 없습니다. 에이전트가 피어가 무엇을 했는지 알고 싶을 때, 브리지는 피어의 자체 앱이 이미 저장하는 위치를 해석하고 제자리에서, 요청 시 파싱합니다:
도구 | 읽는 것 | 세부 사항 |
| 피드의 네이티브 세션 트랜스크립트 (Claude 프로젝트 | 마지막 N개 교환(기본 10, 최대 50), 파일 끝에서 바이트 시크 — 라이브, 쓰기-잠긴 660MB rollout이 수 밀리초로 응답합니다. Codex 가디언 서브스레드 건너뛰기, 하네스 노이즈 필터링, 시크릿 형태 문자열 리댁트. |
| 피드의 네이티브 메모리 저장소 | Claude: 프로젝트별 메모리 디렉토리. Codex: 사용자 수준 저장소를 항목별 |
| 피드 프로젝트의 상시 규칙 | 피드 프로젝트 루트의 |
함께: 브리프 = 그들이 무엇을 하는지, 테일 = 정확한 마지막 말, 메모리 = 배운 것, 지침 = 프로젝트 규칙. 한 번의 연결로 완전한 인수 컨텍스트.
프로젝트 정체성은 파생되며, 구성되지 않습니다: 피드의 자체 아티팩트가 cwd를 전달합니다(Codex session_meta, Claude jsonl 레코드, Kimi state.json). 피드 세션이 닫혀 있거나, 크래시되었거나, 쿼터가 없어도 작동합니다 — 브리지는 라이브 프로세스가 아닌 파일을 읽습니다.
라이프사이클 — 가시성과 정리
도구 | 수행하는 것 |
| 벤더가 있는 모든 환경, 세션 수, 마지막 활동 — "이 project1이 무엇인지" 스스로 답합니다. |
| 정확한 이름으로 환경을 지우고 해제합니다. 오래된 행은 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 -Force4. 재시작 및 확인
각 호스트 앱을 재시작하여 새 MCP 구성을 읽게 한 다음 확인하세요:
Claude Code:
claude mcp list→chat-across … ✔ ConnectedCodex:
codex mcp get chat-across→enabled: true;$를 입력하면chat-across스킬이 제공되어야 합니다Kimi: "chat-across 도구가 무엇이 있나요"라고 물어보세요
그 중 하나에서 /chat-across test를 입력하세요 — created: true는 브리지가 살아 있다는 뜻입니다.
모든 것이 있는 곳
품목 | 위치 |
서버 + |
|
| npm의 전역 bin 디렉토리 (이미 PATH에 있음) |
브리지 데이터 (SQLite: 브리핑 + 포인터만) | 모든 OS에서 |
3단계에서 설치한 슬래시 명령 |
|
제거 = 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
This server cannot be installed
Maintenance
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
Shared memory for coding agents. Stop re-explaining your codebase every session.
Persistent cross-session memory shared by Codex, Claude Code, ChatGPT, and other AI agents.
The team layer for AI coding agents: shared contracts, collision alerts, E2EE sessions.
Shared project context for AI agents and teams: docs, tasks, and messages that stay current.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to explore, search, and reference code implementation details across different project repositories. It also supports a task delegation protocol for agents to request and track work between separate codebases.
- AlicenseNot gradedqualityDmaintenanceThe 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.3866MIT
- AlicenseNot gradedqualityBmaintenanceA multi-agent collaboration layer for AI coding agents enabling real-time communication, code review, and task handoff across distributed development sessions.1337MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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