Skip to main content
Glama

chat-across

One tiny MCP server that lets your AI coding agents work on the same project as one team — Claude Code, Codex, and Kimi Code today, extensible to any agent that persists sessions (adding a vendor is ~60 lines). Anchor a session to a named environment with a single slash command, and every agent can read what the others are doing, straight from their native files, zero-copy.

It adapts to your environment and workflow — not the other way around. Install one MCP server and keep working exactly where you already work: Codex App, Claude Code / Desktop, Kimi Code, side by side or one at a time. No centralized GUI, no new TUI, no app to switch to, nothing to migrate. Your agents stay yours; they just stop being strangers to each other.

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

What you get

Tool

What it does

anchor

chat_across_connect

Create-or-join a named environment. Auto-exchanges compacted work briefs both ways, so joining alone tells you what every other agent is doing. Unanchored sessions are fail-closed — no sharing, no pollution.

brief

chat_across_sync

Upsert this session's compacted brief (one per session, bounded — storage can't grow). Stamps a byte watermark, so peers see behindBytes: staleness as a measured number, not a guess.

read①

get_peer_tail

Last N exchanges straight from the peer's native transcript (Claude project jsonl / Codex rollout / Kimi wire). Byte-seeks from the file end — a live, write-locked 660MB rollout answers in single-digit ms. Skips Codex guardian subthreads. Secret-redacted.

read②

get_peer_memory

The peer agent's native memory store for its project (Claude: per-project memory dir; Codex: user-level store filtered by per-entry cwd tags). No shared memory bank — never rebuild what the host already has.

read③

get_peer_instructions

CLAUDE.md / AGENTS.md / KIMI.md from the peer project's root — the project's standing rules.

chat_across_disconnect, list_environments

Leave (fail-closed again); enumerate environments.

Together: brief = what they're doing, tail = the exact last words, memory = what they've learned, instructions = the project's rules. A full takeover context in one connect.

Project identity is derived, never configured: the peer's own artifacts carry its cwd (Codex session_meta, Claude jsonl records, Kimi state.json).

Related MCP server: Cross-Project MCP Server

Install

Straight from npm — no cloning, works on Windows / macOS / Linux (Node ≥ 20):

npm install -g chat-across

Register the same server in every host, only the label differs:

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

Prefer not to install globally? npx -y chat-across works as the command in all three configs. Developing or contributing? git clone + npm install + point the configs at node <repo>/src/server.mjs.

Then drop the command/skill templates from examples/ into ~/.claude/commands/, ~/.codex/skills/, and ~/.kimi-code/commands/ — they teach each agent to auto-compact + push + pull on connect and to pass its session UUID.

Daily use

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

That's it. The agent anchors, pushes its brief, pulls everyone else's, and tells you what the other agents are up to. Say "continue what Codex was doing" and it pulls the tail + memory + docs and picks up from the last sentence. /chat-across-sync refreshes manually; /chat-across-disconnect leaves.

Fresh session, same thread

Sessions are peers too — including your own older ones. Open a brand-new session (same vendor or a different one), anchor to the same environment, and the previous session's brief arrives with the connect. Say "continue where my last session left off" and the agent reads that session's native tail and resumes from the last sentence.

This works even if the old session is closed, crashed, or hit its context limit — the bridge reads its transcript file, not a live process. Vendor-native resume (claude --resume, the Codex session list) is still the first choice for plain same-vendor restarts; this is the structured fallback that also survives compaction, quota switches, and vendor hops. Only requirement: the old session anchored at least once while it was alive.

How this differs from the existing field

Cross-agent context tools are a crowded space — and they almost all take one of two other roads:

  • Memory-layer tools (memorix, cass-memory, cross-agent-memory, OpenMemory, …) build their own store: stop hooks or ingest pipelines summarize your sessions into their vector DB / playbook, and agents must write into it. Powerful, but it's a second brain to maintain, and it holds copies that go stale.

  • Live-messaging bridges (AgentBridge over Claude Channels ↔ Codex App Server, …) let two running sessions talk in real time. Great for co-editing; doesn't help when the peer session is closed, crashed, or out of quota — which is exactly when you need a takeover.

chat-across takes a third road: no store, no hooks, no embeddings, no live coupling. The hosts already persist everything — transcripts, memories, project docs — so the bridge just resolves where and parses in place, on demand. The only thing it writes is one bounded brief per session. If the bridge's DB is deleted, nothing of value is lost.

Design rules

  • Zero-copy: conversations, memories, and docs are read in place from each host's own storage. The bridge stores only pointers and one bounded brief per session (32KB cap, 14-day pruning). Local-only, no network.

  • Fail-closed: an unanchored session cannot touch any environment.

  • Never rebuild what the host already has: no shared memory bank, no transcript mirroring, no search engine. The reading agent has a model; raw text is enough.

  • Honest resolution: transcript pointers are labeled uuid / explicit / heuristic so readers know how much to trust them.

Adding a vendor

Each vendor is ~60 lines: a session root + a transcript line parser + a cwd deriver + (optionally) a memory-store reader. The current three (Claude Code / Codex / Kimi Code) are the template — agents like OpenCode, Hermes, Kiro, or anything MCP-capable that persists sessions to disk can be added the same way. See CONTRIBUTING.md for the adapter checklist and fixture requirements.

Caveats

  • Claude Code auto-deletes session transcripts after 30 days (cleanup runs on every launch). If you rely on long-lived takeover, raise cleanupPeriodDays in ~/.claude/settings.json — otherwise a peer pointer can outlive its file.

  • The three transcript formats are undocumented vendor internals and will drift; parsers are version-coupled by nature (tested against Claude Code 2.x, Codex 0.146–0.147, Kimi Code wire v2). PRs welcome.

  • sessionUuid at connect is strongly recommended — without it the bridge falls back to newest-active-file matching, which can mis-map when several sessions of one vendor run at once.

  • Tails/memories pass a basic secret-redaction filter; it is a seatbelt, not a guarantee.

License

MIT

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • -
    license
    -
    quality
    -
    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
    -
    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.
    31
    63
    MIT
  • A
    license
    -
    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.
    12
    28
    MIT

View all related MCP servers

Related MCP Connectors

  • The team layer for AI coding agents: shared contracts, collision alerts, E2EE sessions.

  • One shared brain for your AI coding agents: team memory, agent Q&A, tasks, and file claims.

  • Collective memory for AI agents. One agent solves a bug — every agent gets the fix instantly.

View all MCP Connectors

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