需要 Node.js 22.5+ 且该 Node 构建带 SQLite FTS5 支持,否则无法运行;setup 需在 Git 仓库根目录执行,且不会自动 push/pull;Claude Code、Codex 等代理需各自单独安装并满足其账号与网络要求
mex
mex-memoryMIT活跃维护把团队知识和代码图谱以文件形式存进 Git 仓库,让工程师和 AI 编码助手共享同一份上下文记忆,避免重复解释项目背景。
Team memory for engineers and their AI agents. Lives in your repo. Shared through Git.
npx [email protected] setupREADME 未说明硬件要求;运行环境需 Node.js 22.5 或更新版本、该 Node 构建支持 SQLite FTS5,并需位于 Git 仓库中
把团队项目记忆以 Markdown 存进仓库、随 Git 共享,供工程师和 AI 编码代理共同读取
把团队知识和代码图谱以文件形式存进 Git 仓库,让工程师和 AI 编码助手共享同一份上下文记忆,避免重复解释项目背景。
核心能力
- 记忆以 Markdown 存放在 .mex/ 目录并随 Git 提交共享
- 用 Wiki 记录架构、决策与约定,并由 Code Graph 关联代码证据
- 通过 Inbox 提案机制审核知识新增与修正
- 用 Relay 交接进度、决策、阻塞与下一步
- 提供本地 Hub 浏览知识、代码与团队活动
容易踩的坑
- v0.8.5MEX 0.8.5 — Checked state diagrams and resumable setup最新正式版2026-10-29 · 2026-10-29 06:15 UTC
MEX 0.8.5 — Checked state diagrams and resumable setup
October 29, 2026.
Ask your coding agent to explain a complicated flow with a state diagram. MEX 0.8.5 adds checked statecharts that use relevant project knowledge and code evidence, with an interactive Hub viewer when you want to explore further. This release also makes setup parallel and resumable and reduces graph build and refresh costs on large repositories.
Understand the agent's explanation
Ask “explain this using a statechart” or invoke
mex-statechartin Claude Code or Codex. The skill can explain existing behavior, show a bug or recovery path, compare a proposed fix, or start from an agreed chart or existing TLA+ model. It draws states and events in human language and uses MEX knowledge, code links and relevant history when they help explain the behavior.TLA+/TLC checking explores the modeled states and checks the stated rules. Numbered counterexample paths show how a rule can break. A checked model is still an abstraction: source alignment, reproduction against real code and current evidence freshness are reported separately. Missing tooling or evidence stays visible rather than becoming a passing result.
- Read native Mermaid where your client supports it. Terminal clients receive readable text when they cannot render the required diagram; optional PNG delivery is available for clients that display images.
- Explore an optional Hub preview with selectable states, directed transitions, pan/zoom, numbered paths, rules and evidence. The agent can offer to start and open the preview for you.
- Keep a preview temporary, or explicitly review and Save a snapshot in Hub.
Saved diagrams live in Markdown-owned bundles under
.mex/diagrams/and can be reopened without Java or a built code index. Save never stages, commits or pushes; use Git when you want to share them.
Generation uses scratch space. Installation, upgrades and Hub viewing do not install or execute Java/TLC. Explicit checking requires Java 11+ and the pinned, checksum-verified TLC 1.7.4 toolchain; first-use setup is documented in the skill. See state diagram compatibility.
Setup that keeps completed work
Larger repositories are split into subsystem tasks, with up to three population tasks running in parallel by default. Background population can overlap graph construction, and completed batches survive interruption or an agent usage limit. The terminal and Hub show progress and recovery guidance.
Background setup now supports Cursor, GitHub Copilot and OpenCode CLI alongside Claude Code and Codex, provided the selected agent is installed and signed in. For agents MEX cannot launch,
mex setup next --startbegins a resumable one-paste flow. Subsequent calls apply completed batches and continue the plan.A healthy checkout reports its setup status on rerun instead of starting over. Only one setup can run per checkout. Setup recognizes deeply nested sources, checks Git before the terminal tool picker, audits thin project knowledge and keeps existing facts whose code has changed for explicit sync review. Managed skill updates also accept unmodified files checked out with Windows CRLF line endings while preserving real local edits.
Faster graph work and clearer results
- Large TypeScript monorepos use less build memory and time. A previously failing 9,400-file benchmark completes at the default heap; its graph database is about 27% smaller. These are measurements on that fixture, not a guarantee for every repository. Refresh reuses unchanged compiler projects, and CLI maintenance uses the same memory-sized worker as Hub.
who-callsandimpactprioritize production callers. Omitted test results are counted; use--include-teststo include them. Call locations and compact line counts make long declarations easier to navigate.- Scope preserves requested fingerprints and
- v0.8.4MEX 0.8.4 — Terminal setup and clearer knowledge checks2026-10-14 · 2026-10-14 13:41 UTC
查看更新说明
mex 0.8.4 — Terminal setup and clearer knowledge checks
October 14, 2026.
MEX 0.8.4 makes terminal setup the default, adds a native interactive agent handoff, and reports setup progress and failures more clearly. It also includes the graph, Wiki search, and grounding improvements merged since 0.8.3.
Terminal setup by default
Run
mex setupto open the keyboard-driven HUD and ASCII banner. Choose a tool with the arrow keys and Enter; Space selects additional integrations. Selection happens before setup writes. An available selected Claude Code or Codex CLI receives the real terminal, including normal keyboard interaction. Exit the agent to return to MEX; incomplete population offers retry, a manual prompt, file checks, or Finish later.Graph work shows actual phase/file counts and elapsed time. Setup distinguishes complete, paused, failed, and cancelled outcomes. Expected failures carry recovery instructions; bounded worker diagnostics remain available in the terminal, while browser errors expose only safe messages. Completing or checking setup without agent output no longer creates an empty background-session panel. Press
dto review retained setup notices and diagnostics;lon the finishing screen shows a clean copyable Hub link, including in a narrow terminal. Finish later remains a paused outcome after an agent failure, and the final message reflects a setup commit completed in the browser. On Windows, returning from the manual prompt or the Hub link view no longer leaves the HUD without input.After interactive preparation, the browser handles setup-file review, the explicit local commit checkpoint, and completion. MEX never pushes. Use
mex setup --browserto select browser setup directly;--cliremains an alias for terminal setup. Baremexopens terminal setup for an incomplete project and Hub for an established code project.mex hubandmex tuiremain explicit browser and terminal-dashboard entry points.For scripts, use
mex setup --yes --tool <name>or--tool none. Piped input/output and CI also use plain output, reuse saved choices where available, and never launch an agent or long-lived Hub. Exit codes are0for completed preparation or a successful dry run,2for pending population,1for failure, and130/143for interruption.--dry-runremains read-only.Faster graphs, smaller fingerprints
- Refresh avoids re-extracting importers whose dependency declaration signatures
did not change and shares compiler resolution work across projects. The first
refresh after upgrading re-extracts the corpus once for the new internal cache
format; subsequent work can reuse it. The inferred-program fallback now agrees
with a clean build after changes outside every
tsconfig. - Scope tokenizes each node once per query, avoiding repeated work on large type signatures while preserving the output.
- New grounding fingerprints use lossless
mh2:encoding, substantially reducing committed Markdown size. Existingmh:values remain readable and are not rewritten by reads.mex graph compact-fingerprints --dry-runpreviews an optional explicit conversion; omit--dry-runto apply it.
Upgrade every collaborator before committing
mh2:groundings. MEX 0.8.3 and earlier cannot read that encoding.Knowledge checks and Wiki maintenance
mex check, Wiki queries, and Hub views share fact-aware grounding verdicts. Proven comment-only and formatting-only edits stay fresh; changes away from everything a fact names are distinguished from changes that may invalidate it. Missing or ambiguous links remain flagged. Class properties and fields now receive body hashes and fingerprints too.mex syncreviews flagged Wiki facts in the same agent session. After review,mex wiki reground <id> --applycan re-record a still-valid fact's links; changed text or uncertain links require the corresponding review. Index rebuild and another check follow. Baselines are no
- Refresh avoids re-extracting importers whose dependency declaration signatures
did not change and shares compiler resolution work across projects. The first
refresh after upgrading re-extracts the corpus once for the new internal cache
format; subsequent work can reuse it. The inferred-program fallback now agrees
with a clean build after changes outside every
- v0.8.3MEX 0.8.3 — Faster graphs, more reliable grounding2026-09-27 · 2026-09-27 20:45 UTC
查看更新说明
mex 0.8.3 — Faster graphs, more reliable grounding
MEX 0.8.3 makes graph refresh incremental, preserves more knowledge links across clones and code changes, and expands route and dependency coverage. It also adds scaffold export and Markdown timelines.
Faster graph maintenance and reads
- Refresh reuses unchanged file extractions and rewrites only changed graph rows. TypeScript and JavaScript dependents are re-extracted when needed; broad compiler or configuration changes fall back to full extraction. Resolution still runs over the whole corpus.
- A refresh with nothing to publish leaves
graph.dbuntouched. JSON output reports the refresh mode, fallback reason, and work performed. The extraction cache adds to local database size. - Targeted reads reuse a validated publication audit, and CLI code splitting avoids loading the compiler and terminal UI for lightweight commands.
Grounding that survives everyday work
- TypeScript node IDs no longer depend on the checkout directory. Type signatures use canonical ordering so incremental and full extraction agree.
mex impactreads knowledge links from the committed scaffold, so they work on fresh clones. Grounding records take priority over transitive callers when the output budget is tight;graph getkeeps node metadata when source does not fit. Inline anchors alone are not returned as impact grounding records.mex checkreads groundings at both the root and undermex:. Writers consolidate compatible root entries undermex.grounds_to; conflicting entries stay visible for review.- Source edits no longer disable all grounding checks. Unchanged files can use
the prior snapshot; edited tree-sitter files can be re-extracted locally.
Edited TypeScript/JavaScript groundings report
GROUNDING_UNVERIFIEDuntil refresh rather than appearing clean. Other freshness failures still block checks that cannot be trusted. - Small-function renames can reconcile from callers and callees, with an
explicit
GROUNDING_MOVED_BY_NEIGHBORSnotice. Equally good candidates remain ambiguous, and inline anchors can use committed fingerprints after rebuilds.
More project coverage and useful outputs
- New bounded FastAPI, Flask, and NestJS route resolvers join Express and Next.js App Router. Static paths and unambiguous same-file handlers are supported; this is not general runtime routing analysis.
- Dependency checking reads Python
pyproject.toml, including common optional and grouped dependencies. Architectural labels produce fewer package warnings. - Graph commands and doctor report recognized source files with no registered extractor, and status distinguishes uninspected fields from real zero counts.
mex exportbundles scaffold Markdown into one document; use--out <path>for a file.mex timeline --format mdproduces a Markdown table for reports.- Heartbeat explains when missing
last_updatedfields leave staleness checks inactive, accepts zero-day thresholds, and deduplicates symlinked files. - Official Inbox and Relay skills are discoverable through standalone skill installers and Claude Code marketplace metadata. Standalone installation is an alternative to MEX-managed skills; it still requires the CLI and a project.
Upgrade an existing project
Keep the old graph for the first refresh. TypeScript signature fixes can change node IDs, and the old index lets refresh retain aliases for those IDs.
npm install -g [email protected] mex graph refresh mex syncThe first refresh performs a full extraction with
typescript-5.9-v5. Review the scaffold diff and any ambiguous or missing groundings before committing through Git. If the scaffold changed, runmex wiki rebuild-indexto update its local index. A fresh clone or rebuild without the old graph uses committed fingerprints and may require manual re-grounding. For an incompatible or damaged index, follow the explicit recovery action from `me - v0.8.2MEX 0.8.2 — Set up in the Hub2026-09-13 · 2026-09-13 18:59 UTC
查看更新说明
mex 0.8.2 — Set up in the Hub
MEX setup now starts in your local browser. The terminal setup remains available.
Setup
npx [email protected] setup- Choose integrations, follow agent population, review the setup-file diff, and explicitly commit it locally in one flow. A manual Git checkpoint remains available.
- If an agent fails, retry it or copy the retained prompt and continue after manual population. Integration pointer notes are advisory and do not block setup.
- After the commit, a completion guide explains how to start a fresh agent session and verify its project knowledge. Choose Open Hub to enter the full dashboard and its first-run tour.
- Optionally install
mexglobally at the exact version running setup. Installation has progress, verification, retry, skip, and a copyable terminal command. Failure leaves setup complete. - Optionally leave an email and a name for follow-up about MEX. Name is optional; email is required only when submitting. The embedded Web3Forms service handles delivery. Contact details stay out of repository files and usage telemetry; only a submitted/skipped preference is stored on the computer and shared with Overview's invitation.
Use
mex setup --clifor the terminal flow andmex setup --dry-runfor a read-only terminal preview.--no-openprints the browser link;--port <n>chooses a loopback port. Baremexopens Hub or setup, andmex tuikeeps the terminal dashboard.Also included
- A first-run Hub tour highlights the actual navigation once per checkout; Settings can replay it.
- Overview links directly to Context when its Wiki index is fresh, and to Health when maintenance is needed.
- Initial C# code-graph support extracts declarations and relationships from
.csfiles, with conservative call resolution. Semantic binding and generic type-parameter capture remain partial. - Next.js App Router HTTP handlers become route nodes in the Code Graph.
- Sync moves inline grounding anchors together with their matching frontmatter entries, preserving the link to moved code.
Upgrade
npm install -g [email protected] mex skills sync --dry-run mex skills syncReview integration conflicts and start a fresh agent session. Completed 0.8.0/0.8.1 projects do not need setup again just to upgrade. Automation that expects terminal prompts must now use
setup --cli.Node.js 22.5 or newer with SQLite FTS5 is required. Package-root exports and Graph/Wiki/Relay storage formats are unchanged. MEX never pushes or pulls; a setup commit is created only from the reviewed Hub action.
Contributors
Thank you to everyone who contributed to 0.8.2:
- @architdhamija — the Overview contact form, Hub setup wizard, Overview improvements, and first-run tour (#191, #192, #194, #195).
- @doctor-ew — initial C# code-graph support (#156).
- @theyashasvipandey — grounding-link migration fixes (#193).
- @abhinav-phi — grounding-link migration fixes and Next.js App Router route resolution (#187, #179).
- @theDakshJaitly — making Hub setup the default and completing the 0.8.2 setup flow (#197).
New Contributors
- @architdhamija made their first contribution in #191.
- @doctor-ew made their first contribution in #156.
Full changelog: v0.8.1…v0.8.2
- v0.8.1MEX 0.8.1 — Explore context, share knowledge, keep work moving2026-09-09 · 2026-09-09 21:04 UTC
查看更新说明
mex 0.8.1 — Explore context, share knowledge, keep work moving
MEX 0.8.1 makes project knowledge easier to explore and contribute to, makes Relays useful before you know who will pick up the work, and keeps compiler work from blocking the Hub during Graph construction.
Highlights
- Explore your project's Context graph. See Wiki entities and recorded relationships together, filter by type, and select an entity to reveal its direct code groundings and details. A list view remains available. Inbox, Relays, Team, and Activity stay in primary navigation; existing Specs and Workstreams remain readable through their direct routes.
- Turn a discussion into project knowledge. Inbox now handles additions
and corrections to existing architecture, components, conventions, decisions,
patterns, and guides. Use
mex-inboxto prepare a local draft, publish a Markdown proposal for review, and explicitly approve its contribution to the Wiki. Evidence and attribution survive; routine knowledge upkeep can still happen directly. - Leave a Relay open to the team. Eligible active Members can take an open-to-team
handoff, including someone who joins later. Drafts can defer recipient
selection,
mex relay draft save --from <draft.json>shortens local saving, and inactive Members can be reactivated with their original identity. Audience and sharing states are visible in Hub and CLI. - Choose how much agents log. Hub Settings and
mex loggingoffer a quietsignificantdefault, batchedcheckpoints, ormanuallogging. Updated agent instructions retrieve relevant Timeline notes so useful context is easier to reuse; a session note does not automatically become accepted Wiki knowledge. - Keep grounding changes deliberate. A successful agent run no longer resets drift baselines. Interactive sync asks you to accept individual groundings and checks that the reviewed document and code still match. Moving a symbol preserves evidence of earlier changes.
Graph and reliability
Hub refresh/rebuild constructs its Graph candidate in a disposable process, allowing the Hub to respond during compiler work. The Hub still validates and publishes the result; initial checks and final publication can still pause it. Smaller temporary collections and reused database statements remove avoidable work. This does not add incremental indexing or a peak-memory quota: a changed source still triggers a build of the eligible corpus, and simultaneous Hub and worker memory can increase the combined peak. CLI builds remain in process.
Targeted CLI Graph reads can now explain config drift, partial parses, and excluded changed source files while returning the remaining useful evidence. Hub reads retain strict freshness. Formatting or dependency-version-only changes to configuration no longer invalidate an otherwise unchanged graph. Maintenance can retain a useful graph with documented per-file gaps, and failures name the diagnostics that stopped publication.
Other fixes preserve exact Wiki bytes and full-width filesystem identities on Windows, stop unknown context files being assumed to be architecture, improve write provenance, and report missing SQLite FTS5 support clearly. Explicit Graph/Wiki maintenance also installs ignore protection before creating stores.
Telemetry and feedback
Usage events are pseudonymous and opt-out. Namespaced CLI outcomes and fixed Hub page/action/job events share a random installation UUID. Where available, events include the existing scaffold UUID and configured tool names from the allowlist:
claude,codex,copilot,cursor,opencode, andwindsurf. Configured tools describe setup, not the invoking agent; multiple installations on one scaffold are a shared-use signal, not proof of team size.Events exclude names, repository remotes, content, paths, queries, and contact details. A bounded local queue and cancellable delivery keep network waiting limited; deliv
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Shared project memory for engineers and their coding agents.
Memory lives as Markdown in .mex/, travels with Git, and stays linked to the code. Local Hub for people. CLI + skills for agents.
npx [email protected] setup
English | 简体中文 | Español | Português (Brasil)
Works with · Team memory · A teammate-handoff example · Project Hub · Quick start · How it works · Command map
Works with
| Tool | What setup installs in 0.8 |
|---|---|
| Claude Code | Project anchor + skills (/mex-inbox, /mex-relay, /mex-statechart) |
| Codex | Project anchor + skills ($mex-inbox, $mex-relay, $mex-statechart) |
| Cursor, Windsurf, GitHub Copilot, OpenCode | Instruction anchor / template only — no official mex skill commands yet |
[!IMPORTANT] MEX 0.8.5 turns complicated agent explanations into checked state diagrams. Ask your agent to explain a flow, bug, or recovery path with a statechart; read it in chat or explore it in Hub. This release also adds parallel, resumable setup and faster graph builds. Existing users should sync their project skills after upgrading.
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.
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 |
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.
- 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.
- 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.
- Prepare and publish the handoff. Alex asks
$mex-relayto 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. - 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.
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.
- Understand the project: Home, Search, Context, and Code bring explanations and implementation evidence together. The Context graph shows knowledge entities and relationships; selecting one reveals its direct code groundings and details.
- Review and carry work forward: Inbox proposes additions and corrections to project knowledge; Relays preserve what the next person needs. Existing Spec proposals and Workstream records remain readable.
- See who and what: Team/Members supports attribution and local identity selection. Activity shows accepted MEX workflow events and recorded project notes—not every code edit or Git action.
- Keep context usable: Health and Jobs expose index status and explicit maintenance.
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 [email protected] setup
This opens a keyboard-driven terminal HUD with a cyan ASCII mex banner. Highlight a tool with the arrow keys and press Enter to select it and begin. Space optionally selects additional integrations; the Continue row starts with your checked choices or without an agent. Long steps show elapsed time and reported work, including graph file counts and subsystem progress. Setup can launch Claude Code, Codex, and the newly supported Cursor, GitHub Copilot and OpenCode CLIs in the background. Larger repositories get per-subsystem tasks, with the shared context task running alongside them; MEX_SETUP_PARALLEL_RUNS sets how many agents or one-paste tasks run at once (default 3, range 1–8). MEX checks the scaffold before continuing and preserves existing instructions. Rerunning continues saved work, including after an agent usage-limit pause.
After validation, setup opens the Hub for completion. Review the exact setup-file diff 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. Keep the setup terminal running while using the finishing Hub; press q or Ctrl+C to stop it. Use npx [email protected] setup --no-open to show the finishing link without opening a browser; add --port <n> to choose a loopback port. Press d in the HUD to read longer status or error details.
Expected setup errors include specific recovery instructions, such as correcting malformed configuration or an ignore rule that hides the scaffold. An incomplete agent session returns to recovery choices; a successful agent exit alone does not mark setup complete.
Prefer browser setup?
npx [email protected] setup --browser
The browser runs the same setup engine with the background agents listed above and a one-paste fallback. If MEX cannot launch your agent, paste this instruction into it: Run mex setup next --start first, then follow its instructions until setup is complete. Each call hands out several task files when possible, applies ready work, and continues the saved plan; prompts name source folders the code graph skips. --browser --no-open prints its link without launching a browser. The existing --cli flag remains an alias for the default terminal flow. --tool, --yes, and --dry-run are terminal-only, so --browser cannot be combined with them or with --cli; setup stops with an error naming the conflicting option. mex setup --help summarizes both modes.
For scripts, use --yes with repeatable --tool <name> flags (or --tool none). Piped input/output and CI also use plain output. These runs reuse saved choices, default to no integrations when none are saved, and never launch an agent or browser or wait for input. Exit codes are 0 for completed preparation or a successful dry run, 2 when population is still required, 1 for failure, and 130/143 for interruption. After a population checkpoint, rerun mex setup to continue. Once preparation is complete, mex setup --browser opens the commit and completion page.
Rerunning mex setup on a checkout that is already set up reports its status — entities, facts and whether the graph is current — and does no work; changed code is reported as drift with a pointer to mex sync. A prepared but uncommitted checkout goes straight to the commit step, and anything else is named before setup finishes only that part. mex setup --browser shows the same status. Use mex setup --force to run the full flow; authored files are always preserved. Choosing a different mode or AI tools also runs the flow.
mex setup --dry-run remains a terminal preview without changes. Once installed, bare mex opens the Hub for an established code project or terminal setup for an incomplete project. mex hub explicitly opens the browser, while mex tui opens the terminal dashboard.
[!NOTE] The full Hub opens when the current
.mex/config.jsonis committed atHEAD. 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 [email protected] graph rebuild
npx [email protected] wiki rebuild-index
npx [email protected] 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.
npm install -g [email protected]
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.
The Hub completion page, also opened after interactive terminal setup, offers 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.
npx [email protected] 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 [email protected].
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.
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; declare the file's type with a root type key in its frontmatter (for example type: component) before migrating it, instead of relying on an architecture default. mex check and mex wiki validate report knowledge files that are not yet in the Wiki.
| 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:
- The Wiki explains architecture, conventions, decisions, patterns, topics, and Specs in language people can review.
- The Code Graph uses bundled Tree-sitter grammars to map symbols and relationships from the implementation into a local SQLite index for precise, bounded retrieval.
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 <node-id>
mex impact requireSession
MEX indexes TypeScript/TSX, JavaScript/JSX, Python, and Rust, with partial C# support. Module variants such as .mts, .cts, .mjs, and .cjs have partial coverage. Bounded framework resolvers cover Express, Next.js App Router, FastAPI, Flask, and NestJS; see the support matrix for their limits. 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. who-calls, what-calls and impact give each call's line, list production code first, and count test-file results instead of listing them while other results exist; add --include-tests to list them.
Hub Graph construction runs in a disposable process so compiler work can release its memory when the job exits. Refresh reuses unchanged extractions and rewrites changed rows, while still resolving the whole corpus; broad compiler or configuration changes fall back to full extraction. Process isolation improves responsiveness and releases compiler state after the job, but does not 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.
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.
| Integration | Setup behavior | Explicit skill commands |
|---|---|---|
| Claude Code | Installs or updates the project anchor and skills under .claude/skills/ | /mex-inbox, /mex-relay, /mex-statechart |
| Codex | Installs or updates the project anchor and skills under .agents/skills/ | $mex-inbox, $mex-relay, $mex-statechart |
| 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.
Standalone skill installation
For an existing MEX project, you can manage the official Inbox, Relay, and Statechart skills with skills.sh instead of MEX's skill installer:
npx skills add mex-memory/mex
This installs agent skills only; it does not install the mex CLI or initialize project memory. The skills still need an available MEX CLI and a configured MEX project.
Choose one installer for each agent integration. If mex setup or mex skills sync already manages its skills, keep using mex skills sync; do not run skills add over them. The external installer replaces MEX's managed directories, causing later setup or sync operations to report ownership or path conflicts.
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.
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 recipients. The observed state includes branch, HEAD, a dirty-tree flag, and timestamp; it stores no diff or dirty file contents.
A Relay is a durable handoff, not chat, a live notification, task assignment, or a Jira replacement.
Within one observed repository state, the first successful eligible Member becomes the sole claimant. There is no cross-clone network lock, so two unsynchronized Members can claim separately and later meet a Git conflict. Only the active recorded sender or active recorded claimant can close the Relay; deactivating either principal can block closure. In 0.8.1, reactivation restores the original Member identity so older handoffs remain usable. There is no decline, reassign, unclaim, reopen, or administrative-override flow. Teammates exchanging new open-to-team Relays need a CLI that supports schema v4.
Project notes: logging and reuse
mex log records decisions, notes, risks, and todos in .mex/events/decisions.jsonl. Future agents can retrieve relevant entries with mex timeline; people can read them as Project notes in Hub Activity. These records are historical context. Durable conclusions can be promoted into maintained knowledge explicitly, with their source retained.
In 0.8.1, Settings → Agent logging controls when agents write optional notes in this checkout:
- Significant events (default): decisions, discoveries, and risks worth remembering.
- Task checkpoints: batch useful notes when a task or session ends.
- Only when asked: write optional notes on an explicit user request.
The preference guides agents; explicit user requests and mandatory workflow Activity remain independent. It lives under .mex/local/ and is not shared through Git. Start a new agent session after syncing the updated instructions.
mex logging --json
mex logging checkpoints
mex timeline --query "retry" --file src/client.ts --type decision --limit 20 --json
Timeline retrieval reads the latest 8 MiB / 10,000 log lines, returns at most 200 entries, and caps output at 64 KiB. JSON reports truncation; a filtered empty result does not prove the full history has no match. Retrieval never changes the log or initializes project identity.
Command map
Run mex <command> --help for the complete interface.
| Goal | Commands |
|---|---|
| Set up or inspect compatibility | mex setup, mex setup --browser, mex capabilities, mex skills sync |
| Use persistent-agent mode | mex setup --mode agent-memory, mex heartbeat |
| Open a local interface | mex hub, mex tui |
| Build and retrieve code context | mex graph status, mex graph refresh, mex graph rebuild, mex graph scope <task>, mex graph query <relation> <target>, mex graph get <node-id>, mex impact <target> |
| Index and retrieve knowledge | mex wiki rebuild-index, mex wiki query <text>, mex wiki show <id>, mex wiki related <id>, mex wiki backlinks <id>, mex wiki for-code <node-id> |
| Synthesize or maintain the Wiki | mex wiki build, mex wiki prepare --stage <stage> [--cluster <name>], mex wiki validate (structure only); mex wiki propose <response-file>, mex wiki apply <operation-file> and mex wiki reground <id> preview by default and write only with --apply |
| Review team memory | mex member --help, mex activity --help, mex workstream --help, mex spec --help |
| Propose knowledge additions or corrections | mex inbox draft --help, mex inbox publish --help, mex inbox proposal --help |
| Prepare and receive handoffs | mex relay draft --help, mex relay publish --help, mex relay acknowledge --help, mex relay close --help |
| Record and retrieve project notes | mex log <message>, mex logging --help, mex timeline --format md, mex pattern --help |
| Export scaffold Markdown | mex export, mex export --out <path> |
| Check and maintain the project | mex check, mex sync, mex doctor, mex watch |
Keeping knowledge true to the code
Two commands cover it:
mex checkruns every deterministic check, with no AI and no writes: scaffold files, paths and commands, and every code link in the scaffold and the Wiki. Each link gets one verdict, the same onewiki query,wiki for-codeand the Hub show:fresh,changed-nearby(the change is away from everything the fact names),moved,changed,missingorambiguous. Comment-only and formatting-only edits stay fresh. A finding on a Wiki entity names its id and title.mex syncfixes what check found in one interactive agent session. For each flagged Wiki entity the agent compares the fact with the code as recorded and as it is now, then re-records it withmex wiki reground <id> --apply(still true), fixes the text and re-records (changed), or leaves the flag (unsure). Missing and ambiguous links are relinked by hand or left flagged. Sync then rebuilds the Wiki index and checks again.mex wiki link-sectionspreviews missing connections from existing section entities to their enclosing document or section. Add--applyto record thoserefinesrelationships without changing facts or code groundings. It works on existing scaffolds without setup or an AI session. Semantic dependencies still need evidence. The Hub graph remains bounded to 100 entities and 500 relationships and keeps a limited number of linked parents visible; use List for the complete knowledge collection.mex wiki upgradepreviews a bounded review of existing broad code-linked entities for one fact per entity.--applystarts an interactive review using the same agent chooser asmex sync;--tooloptionally overrides it. Without an installed CLI, copy the preview prompt into your coding agent. Review requires a fresh code graph and refuses flagged candidate groundings until check/sync has reviewed them. It preserves existing ids as overviews and does not rerun setup. Opening Hub or updating MEX never rewrites project knowledge automatically.
mex wiki query and mex wiki for-code are how agents find that knowledge; --health changed lists what check flags.
Use mex capabilities --json for machine-readable capability discovery and mex commands for the concise CLI map.
Upgrade and compatibility
When upgrading to 0.8.5, follow the 0.8.5 upgrade instructions: run mex skills sync --dry-run, then mex skills sync in each existing MEX project to install mex-statechart, and start a fresh agent session. Upgrading the CLI alone does not refresh project skill copies.
For a global installation, upgrade the CLI and refresh the selected Claude Code/Codex skill copies:
npm install -g [email protected]
mex skills sync --dry-run
mex skills sync
For an already completed MEX setup, this installs mex-statechart and refreshes the managed skills and agent guidance; setup does not need to run again just for the package upgrade. Review any reported conflicts with locally edited instructions, then start a new agent session.
[!WARNING] Upgrade everyone sharing the scaffold to 0.8.4 or newer before committing new or updated groundings. Since 0.8.4, MEX writes compact
mh2:fingerprints, which earlier versions—including 0.8.3—cannot read. Existingmh:fingerprints remain readable; upgrading alone neither rewrites files nor changes their grounding meaning.
Graph schema v4 and Wiki index v5 are unchanged from 0.8.4. Run mex graph refresh after upgrading: the updated TypeScript extractor rebuilds the graph once, and some declaration IDs can change. Keep the existing graph so MEX can map old IDs, then use mex check and mex sync to review affected groundings. No Wiki schema migration is required from 0.8.4. If upgrading from 0.8.3 or earlier, also follow the maintenance steps introduced in 0.8.4, including mex wiki rebuild-index. Fingerprint conversion remains optional and explicit.
Keep your existing graph when upgrading from 0.8.2 or earlier. The TypeScript identity changes introduced in 0.8.3 can change node IDs. Refresh before syncing so MEX can map the old IDs to their replacements:
mex graph refresh
mex sync
Review ambiguous or missing groundings and commit the scaffold changes through Git. Rebuild the Wiki index with mex wiki rebuild-index if those changes made it stale. A fresh clone or a rebuild without the old graph relies on fingerprint reconciliation and may require manual re-grounding. Follow the compatibility guide for damaged or incompatible stores; ordinary reads never repair them.
Package and skill upgrades alone do not make an older or incomplete repository Hub-ready. For those repositories, evaluate setup with a dry run before applying it; setup preserves authored files and still requires review of its changes:
mex setup --dry-run
mex setup
git status --short
mex capabilities --json
Review every generated change before committing. In particular, confirm that .mex/graph.db*, .mex/wiki.db*, and .mex/local/ are ignored.
Existing Markdown scaffolds remain valid, and Graph reads never migrate a store implicitly. Compatible schema-v2 and complete schema-v3 stores can upgrade through explicit repair; schema-v1, partial, ambiguous, malformed, or corrupt stores require rebuild. Follow the exact action from mex graph status. Do not add a broad .mex/ ignore rule—it would hide the canonical memory your team is meant to share.
[!WARNING] Upgrade teammates to 0.8.1 before sharing new open-to-team Relays, which use schema v4. Existing v1–v3 Relays remain supported, and named handoffs continue to use v3. Node 20 users should remain on MEX 0.6.3 until they can move to a supported Node build.
Privacy and trust model
MEX does not upload its canonical records, Graph, Wiki index, drafts, identity selection, or Hub sessions to a MEX service. It provides no automatic team transport: sharing happens through normal Git actions you perform. The Hub binds to loopback, and MEX's local retrieval layer requires no model credentials.
MEX has pseudonymous CLI and Hub usage telemetry, enabled by default unless you opt out. Namespaced commands, outcomes, explicit Hub actions, page categories, and job results help measure feature use and returning installations. Both surfaces reuse one random installation UUID. When available, events also include the existing scaffold UUID to estimate shared-project use and configured AI-tool names from project setup; these do not identify the currently invoking agent or prove team size. Someone with access to project configuration can associate its scaffold UUID with that project. Names, repository remotes, argument values, paths, content, search text, and contact details stay excluded. The ingestion service can observe ordinary transport metadata. Delivery uses a bounded local queue and short CLI cleanup grace; offline telemetry does not change command results.
Check or disable telemetry with:
mex telemetry inspect
mex telemetry status
mex telemetry disable
It can also be disabled with MEX_TELEMETRY=0 or DO_NOT_TRACK=1. See the telemetry policy for the controls, event catalog, privacy boundary, and delivery limits. Coding agents connected to MEX may have their own network and telemetry behavior; that is governed by those tools, not by MEX.
What MEX is not
MEX 0.8 does not provide:
- a cloud-hosted Hub or hosted knowledge sync;
- live notifications, presence, or real-time chat;
- Git staging or commits without explicit review, or any pushes or pulls;
- authentication, repository authorization, or RBAC;
- Jira-style task management;
- a shared Code Graph or Wiki SQLite database;
- automatic proof that a model used retrieved context correctly;
- a claimed semantic or vector-search engine—Wiki search is full-text and Graph retrieval is lexical/structural;
- general-purpose Wiki editing through the Hub;
- a published MCP server or MCP package—the source workspace is not a 0.8 public product surface;
- features that appear only in future plans or design documents.
MEX keeps team memory in repository files and provides local retrieval and review workflows. Git and existing engineering tools handle distribution, access, and code review.
Explore further
- Read the MEX 0.8.5 release notes.
- Check the runtime and compatibility guide and security policy.
- Review the Code Graph support matrix.
- See the extractor model and supported relationships.
- Read the graph retrieval benchmark results, including the blind-graded comparison against an ordinary file-search baseline.
- Inspect the CLI locally with
mex capabilities --jsonandmex commands. - Join the MEX community on Discord or visit mexmemory.com.
Explain behavior with a state diagram
Ask your agent to “explain this lifecycle using a state diagram,” or invoke
$mex-statechart in Codex / /mex-statechart in Claude Code. The managed skill
uses TLA+ and TLC, delivers Mermaid in supporting chats, and supplies a readable
terminal fallback. Relevant MEX context is retained only when it improves a
state, condition, rule or recovery explanation.
Generation stays in scratch space. Optionally register a temporary preview and
open Diagrams through the normal Hub flow. Review Save shows the exact
snapshot files before adding them to .mex/diagrams/; sharing remains a separate
Git action. A passing model check does not prove implementation correctness or
current evidence freshness. See compatibility and toolchain boundaries.