mex-memory/mex

★ 1,614⑂ 125

Team memory for engineers and their AI agents. Lives in your repo. Shared through Git.

About mex-memory/mex

mex-memory/mex is an open-source project on GitHub, mainly written in TypeScript. Team memory for engineers and their AI agents. Lives in your repo. Shared through Git. It currently holds 1,614 stars and 125 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the AI Agent Memory board.

GitHub Repository Details

Repository mex-memory/mex · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

https://github.com/mex-memory/mex/blob/HEAD/MEX

Shared project memory for engineers and their coding agents.

MEX keeps your team's architecture, decisions, requirements, and handoffs alongside the code. Engineers and their agents can build on shared context, review proposed changes, and carry work between sessions and teammates—with Git as the sharing layer.

English | 简体中文 | Español | Português (Brasil)

npm version npm downloads GitHub stars Website Discord License: MIT CI Node.js >=22.5 TypeScript Agent memory MCP: source only

Team memory · A teammate-handoff example · Project Hub · Quick start · How it works · Command map

---

One engineer knows why a constraint exists. Another has the debugging history. A coding agent found an important edge case in a session nobody else will read. The next teammate has to piece it together again.

What one engineer and their agent learn should become context the next teammate can use. MEX gives that knowledge a durable home in the repository: readable Markdown, code-linked explanations, reviewed knowledge contributions, and structured handoffs. People explore and review it in a local Hub; agents retrieve and help maintain it through project instructions and the CLI.

[!IMPORTANT]
MEX 0.8.2 brings setup into the Hub: choose integrations, follow your agent, review and commit setup, then finish with optional global installation and contact details. Terminal setup remains available with mex setup --cli.

💬 Join the MEX community on Discord — discuss ideas, get help, share feedback, and show what you're building.

Join the Discord →

What your team remembers

| What the team needs to retain | Where it lives in MEX | | --- | --- | | How the system works, and why | Wiki architecture, decisions, conventions, and patterns, with Code Graph grounding | | A decision or explanation worth sharing | An Inbox proposal that adds to or corrects existing Wiki knowledge | | Product requirements already captured | Existing Specs, requirements, constraints, and acceptance criteria remain supported | | Where another engineer should continue | Relays with progress, decisions, blockers, evidence, and next actions | | Earlier workflow context | Existing Workstream records remain readable | | Who is involved, and what MEX recorded | Members and Activity history |

An engineer and their agent contribute shared team memory through Git. A teammate and their agent reuse it in a separate checkout, with their own local indexes.

Canonical memory travels with ordinary Git commit, push, and pull. Each teammate keeps their own local indexes, drafts, identity selection, and Hub. No hosted MEX service, Docker, proxy, MEX account, or MEX-owned model key is required.

Working solo? The next person using that memory can be you in a new session.

From one engineer to the next

An example: Alex changes webhook retry handling, and Sam will continue the work. Both are active MEX Members in a repository their team has already set up.

1. Start with the team's context. Alex asks Codex to inspect the existing architecture, relevant decisions, and code evidence before making the change and running tests. 2. Keep the useful discoveries. With Alex's direction, Codex updates the relevant Wiki explanation and code references. For a conclusion the team should review, it prepares an Inbox knowledge proposal for explicit approval. 3. Prepare and publish the handoff. Alex asks $mex-relay to draft a Relay for Sam: what changed, which tests ran, what remains, and where to look next. She reviews the draft and publication preview in Hub, explicitly publishes it, then reviews, commits, and pushes the code and canonical MEX files through Git. 4. Continue from shared context. Sam pulls the relevant branch, updates his local indexes as needed, and opens Hub. He reviews and takes the Relay, then asks his coding agent to read its context and continue. His acknowledgement is another canonical change to commit and push.

An engineer prepares and publishes a Relay, shares it through Git, and the next engineer takes the durable handoff.

The Relay carries the explanation and observed repository state—not the uncommitted code. Publishing writes files to Alex's checkout; it does not notify Sam or deliver anything until they share through Git. See Relay boundaries for lifecycle and concurrency details.

Project Hub

The Hub is where people explore and review their team's memory. Open it to explore connected project knowledge and code, review a proposed knowledge change, find an eligible handoff, or see recorded team history.

Explore Wiki and Code, review Inbox and Specs, and coordinate Relays and Team members in the local Project Hub. After setup, run mex hub. Each engineer's Hub reads their own checkout and listens on 127.0.0.1; it is not a shared hosted dashboard. Git brings the team's canonical records into that checkout. Hub protects mutations with a server-side session and CSRF token. Playbook and Catch Up product workflows remain future work.

Quick start

MEX requires Node.js 22.5 or newer, SQLite FTS5 support in that Node build, and a Git repository. See runtime compatibility. The normal npm flow works on macOS, Linux, Windows Command Prompt, PowerShell, and WSL.

Introduce MEX to your repository

Run from the repository root:

npx mex-agent@0.8.2 setup

This opens setup in your local browser Hub. Choose your AI tools, watch the scaffold and indexes build, and let an available selected Claude Code or Codex CLI populate project memory. If the agent is unavailable or fails, copy the population prompt into your agent, then continue. Existing instructions are preserved; any manual integration pointers appear as advisory guidance.

Review the exact setup-file diff in the Hub and choose Commit setup to create a local commit. A manual Git checkpoint remains available. MEX preserves unrelated staged work and never pushes or pulls.

The completion screen explains how to start a fresh agent session and verify that it reads your project memory. It also offers two optional steps: install the mex command globally at the version running setup, and leave an email (plus an optional name) for follow-up about MEX. Contact details are sent through the embedded Web3Forms service and stay out of the repository and usage telemetry. Only a submitted/skipped preference is remembered on this computer. Choose Open Hub when ready; the Hub's introductory tour starts there.

Connected agents have their own installation, account, and network requirements. To print the local browser link without opening it, use npx mex-agent@0.8.2 setup --no-open; add --port to choose a loopback port.

Prefer terminal setup or working over SSH?

npx mex-agent@0.8.2 setup --cli

mex setup --dry-run remains a terminal preview without changes. Once installed, bare mex opens the Hub (or setup for an incomplete project), while mex tui opens the terminal dashboard.

Three steps to a ready project: run setup, populate memory, then review and commit the checkpoint before opening Hub.
[!NOTE]
The full Hub opens when the current .mex/config.json is committed at HEAD. Its setup wizard can commit the reviewed setup files on your explicit request, preserving unrelated staged work. Repositories with unsupported Git hooks or content filters keep the manual checkpoint. MEX never pushes or pulls.

Push the reviewed setup commit through your team's normal Git workflow so teammates receive the same project memory and selected agent instructions. In Hub's Team/Members page, add the people who will participate and choose your local identity. Review and apply those actions explicitly; commit and push new Member records too. Your current-member selection stays local.

Join a repository already using MEX 0.8

Clone or pull the team's repository and branch through Git. For a completed, committed 0.8 setup, build the derived indexes in your own checkout and open Hub:

npx mex-agent@0.8.2 graph rebuild
npx mex-agent@0.8.2 wiki rebuild-index
npx mex-agent@0.8.2 hub

Reuse the shared project memory; do not regenerate it just to join. In Team/Members, check the effective identity and, if needed, choose your existing Member record as a local override. If you do not have a record yet, explicitly create one through the reviewed workflow and share its canonical files. Members are attribution, not a sign-in or permission system.

The committed instruction files and skill directories are reusable by the agents they target. Install the agent separately and start a new session in the repository. If your chosen integration was not included in the shared setup, coordinate adding it with the team; see agent integrations. After later pulls or branch changes, inspect Graph/Wiki health and run the indicated explicit maintenance—reads do not silently update indexes.

Older or incomplete setups should follow upgrade and compatibility first. Keep CLI versions aligned before exchanging new Relays.

Prefer a global installation?
npm install -g mex-agent@0.8.2
mex setup

The npm package is named mex-agent; the installed command is mex. Complete the review and commit checkpoint above before running mex hub.

Both the Hub and terminal completion flows offer an optional global installation pinned to the running MEX version. If it fails, setup remains complete and you can retry the command above. Open a new terminal afterward and run mex --version.

Using MEX for a persistent operational agent?

npx mex-agent@0.8.2 setup --mode agent-memory

This separate template applies MEX's routing and maintenance model to homelab, infrastructure, and long-running agent workspaces. It adds a HEARTBEAT.md contract and cleanup conventions; the Code Graph, Wiki, and team-Hub flow described in this README is the default code-repo mode.

Examples use mex for readability. Install it globally as above or replace it with npx mex-agent@0.8.2.

How MEX works

The team's memory is shared; the machinery that retrieves it stays local. MEX separates canonical repository files from rebuildable indexes so each engineer and agent can work against their own checkout.

Repository source and Markdown feed the local MEX engine. Agents access it through the CLI; people use the Project Hub.

Canonical Markdown, local indexes

Canonical knowledge is structured Markdown with metadata, relations, sources, provenance, and code groundings; accepted Wiki writes append audit records. The Code Graph and Wiki search index are rebuildable local SQLite views, not shared sources of truth.

In 0.8.1, ordinary Wiki creation and synthesis capture the operation's recorded actor, time, and session as creation provenance while preserving any supplied original attribution. Migration leaves unknown, untyped context/*.md files untouched; supply an explicit entity type before migrating them instead of relying on an architecture default.

| Commit and push to share | Keep local or ephemeral; never commit | | --- | --- | | .mex/config.json, .mex/.gitignore | .mex/graph.db* | | .mex/AGENTS.md, .mex/ROUTER.md, .mex/SETUP.md, .mex/SYNC.md | .mex/wiki.db* | | .mex/context/, .mex/patterns/, .mex/specs/, .mex/topics/ | .mex/local/: drafts, current-member selection, jobs, cursors, recovery state, signing key | | .mex/team/members/, .mex/workstreams/, .mex/inbox/, .mex/relays/ | Process-memory Hub session registry and browser-held session/CSRF state | | .mex/events/activity/, .mex/events/operations.jsonl, .mex/events/decisions.jsonl | — | | Setup-selected agent instruction files and .agents/skills/mex- or .claude/skills/mex- | — |

Git carries the meaning; setup or explicit maintenance commands rebuild the indexes against each checkout's own branch and working tree. Code remains authoritative, and grounding drift flags code-linked explanations that need review.

Wiki, Code Graph, and grounding

Shared memory needs both the team's explanation and evidence from the implementation. MEX combines two complementary views of a repository:

Inspect or explicitly maintain them:

mex graph status
mex graph refresh       # Republish an existing compatible store
mex graph rebuild       # Full replacement when status requires it
mex wiki rebuild-index
mex wiki query "authentication"

Ask the Graph for a task-sized evidence set or an exact structural relationship:

mex graph scope "trace the authentication flow"
mex graph query where-defined authenticate
mex graph query who-calls requireSession
mex graph get 
mex impact requireSession

MEX indexes TypeScript/TSX, JavaScript/JSX, Python, and Rust. Module variants such as .mts, .cts, .mjs, and .cjs have partial coverage, and Express is the only framework-specific resolver documented for 0.8. CLI Graph reads can return bounded, clearly labelled degraded evidence when configuration drifts, parsing is incomplete, or changed files must be excluded. Incompatible engines still refuse reads, and Hub Code keeps strict freshness checks. scope can also return bounded live-text evidence for stale or unindexed files, marked text-only.

Hub Graph construction runs in a disposable process so compiler work can release its memory when the job exits. This improves responsiveness during construction and reduces retained compiler state; it does not make indexing incremental or guarantee lower combined peak memory.

Grounding and drift

A Wiki claim can point to a deterministic graph node. MEX stores the node ID and identity fingerprint; new MEX-written groundings also carry a body hash, while compatible legacy groundings may fall back to coarser fingerprint comparison. Together these signals distinguish intact, changed, moved, missing, ambiguous, and unverified references.

A Wiki claim is grounded to a code symbol. Code changes can flag the claim for review.

Drift is a review signal. It does not prove that prose is false, that a code change is wrong, or that a model actually reasoned from retrieved context. A successful agent session no longer accepts a new baseline automatically: replacing an existing baseline requires explicit review of the selected grounding.

Agents help maintain the team's memory

Agents are both readers and contributors: they can retrieve the team's existing context, help capture discoveries from real work, and prepare knowledge proposals or handoffs for a person to review. They do not independently decide what should be published or shared.

Setup installs small host-agent instructions that point to .mex/AGENTS.md for policy and .mex/ROUTER.md for task-relevant context. Agents can query Wiki and Graph evidence, provided the host follows those instructions.

An agent follows project instructions and the Router to retrieve context and code evidence relevant to the task.

| Integration | Setup behavior | Explicit skill commands | | --- | --- | --- | | Claude Code | Installs or updates the project anchor and skills under .claude/skills/ | /mex-inbox, /mex-relay | | Codex | Installs or updates the project anchor and skills under .agents/skills/ | $mex-inbox, $mex-relay | | Cursor, Windsurf, GitHub Copilot, OpenCode | Installs the appropriate instruction anchor/template | No official MEX skill command in 0.8 |

For an existing setup missing your Claude Code or Codex assets, preview and sync that integration explicitly:

mex skills sync --dry-run --tool codex
mex skills sync --tool codex

Use --tool claude for Claude Code. Review the resulting instruction and skill files, commit and push them if the team should share the integration, and start a new agent session.

Instructions may select Inbox or Relay from clear natural-language intent, but skill activation never approves a canonical write. When MEX context materially helps, the agent mentions MEX and the relevant finding naturally, tying it to what it helped understand, decide, or verify, without a standard footer.

With the 0.8.1 Inbox update, “use MEX Inbox to capture what we decided” produces a contribution to existing project knowledge. The agent checks existing records, then drafts one addition or correction. Architecture, components, conventions, decisions, patterns, and guides are supported alongside existing Spec proposals. A local draft stays in the checkout; publishing writes a Markdown proposal for review; approval updates canonical knowledge and retains the proposal as history. Git shares those files with teammates.

Ordinary GROW, Wiki, and context upkeep remains available without Inbox. Inbox is the explicit contribution path, not another knowledge category.

MCP server — source only

The repository includes an MCP workspace for local development. It is not published with MEX 0.8; the released agent interface is the mex-agent CLI and its project instructions and skills.

Human approval boundaries

| An agent can prepare | A person deliberately controls | | --- | --- | | Search and retrieve Wiki or Graph evidence | Whether retrieved evidence is sufficient | | Create a checkout-local Inbox draft | Publishing the proposal for repository review | | Preview a bounded knowledge addition or correction | Approving or rejecting the proposed canonical change | | Create a checkout-local Relay draft | Publishing, taking, and closing a handoff | | Suggest context and grounding updates | Reviewing and committing working-tree changes |

Team workflows use signed previews to bind reviewed inputs and detect stale or altered plans; Wiki authoring uses a plan/--apply boundary. These protect mutation integrity—not authentication, OS isolation, repository permissions, or proof that a human issued the command.

Team workflows

These workflows help a team decide what becomes durable knowledge and preserve enough context for someone else to continue. They sit alongside your existing code-review and issue-tracking tools.

| Feature | What it is | Sharing boundary | | --- | --- | --- | | Members | Stable contributor records plus a checkout-local “current member” for attribution | Member records use Git; current selection stays local | | Workstreams | Durable context around an area of work and its state | Canonical Markdown through Git | | Specs | Structured product requirements, constraints, and acceptance criteria | Canonical Markdown through Git | | Inbox | Proposals for one project-knowledge addition or correction; existing Spec proposals remain supported | Draft local; published proposal and decisions through Git | | Relays | Agent-prepared, human-published context handoffs | Draft local; published/taken/closed record through Git | | Activity | Accepted MEX workflow history and custom records | Canonical records through Git |

Members provide attribution and provenance. They are not accounts, authentication, role-based access control, or repository permissions.

Inbox: contribute to project knowledge

In 0.8.1, the Inbox skill captures one durable conclusion from a discussion as an addition or correction to architecture, components, conventions, decisions, patterns, or guides. It searches existing knowledge first, saves a local draft, and publishes a Markdown proposal for review. Approval changes the existing knowledge area and retains the proposal's source evidence. Existing spec.create and spec.update proposals remain supported.

The existing Spec proposal path illustrates local drafting, publication, and explicit approval; knowledge contributions follow the same review boundary.

Every canonical proposal transition still needs ordinary commit/push/pull to reach another checkout. Approval, rejection, and withdrawal are terminal; a stale proposal can be repaired back to pending. An author can use the exceptional self-approval flow, so Inbox is designed for explicit approval—not guaranteed peer review.

Ordinary GROW upkeep can still update project knowledge directly. Inbox is the explicit contribution-and-review path; session notes remain in the event log.

Relay: pass the context baton

A Relay packages what the next person needs: a summary, progress, blockers, next actions, useful evidence, and observed repository state. The 0.8.1 update adds Open to team, including active Members who join later, alongside named recipients. Save a local draft before selecting anyone, or use mex relay draft save --from draft.json --json for the shorter agent path. Publication requires an active sender; named handoffs also require one to 32 unique active r

GitHub Stars & Activity

1,614Stars
125Forks
0Open issues
TypeScriptLanguage

GitHub Popularity

GitHub stars1,614
Forks125
Open issues0
Primary languageTypeScript
License-
Stars gained today0
Created-
Last pushed-

Trending History

Trending statusnot on today's boards

Related AI Projects

1

thedotmack / claude-mem

TypeScript★ 94,311⑂ 0
2

supermemoryai / supermemory

TypeScript★ 30,665⑂ 0
3

TencentCloud / TencentDB-Agent-Memory

TypeScript★ 27,024⑂ 0
4

MemTensor / MemOS

TypeScript★ 11,478⑂ 0
5

CaviraOSS / LongMemory

TypeScript★ 4,510⑂ 0
6

letta-ai / letta-code

TypeScript★ 3,385⑂ 0
7

Bitterbot-AI / bitterbot-desktop

TypeScript★ 2,459⑂ 0
8

cytostack / openwolf

TypeScript★ 2,352⑂ 0

More AI Rankings