Context7
Up-to-date docs for AI agents
作者提供的说明(英文原文)
Persistent, read-only codebase memory for Claude Code; ask it instead of re-reading files.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"live-memory": {
"command": "uvx",
"args": [
"shofer-live-memory"
]
}
}
}在终端中运行这条命令
claude mcp add live-memory -- uvx shofer-live-memory粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"live-memory": {
"command": "uvx",
"args": [
"shofer-live-memory"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"live-memory": {
"type": "stdio",
"command": "uvx",
"args": [
"shofer-live-memory"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 shofer-dev 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.6.0)于4个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
同一分类中有:Context7, Codebase Memory, Exa
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
██╗ ██╗██╗ ██╗███████╗
██║ ██║██║ ██║██╔════╝ ██║ ██║██║ ██║█████╗ ██║ ██║╚██╗ ██╔╝██╔══╝ ███████╗██║ ╚████╔╝ ███████╗ ╚══════╝╚═╝ ╚═══╝ ╚══════╝ ███╗ ███╗███████╗███╗ ███╗ ██████╗ ██████╗ ██╗ ██╗ ████╗ ████║██╔════╝████╗ ████║██╔═══██╗██╔══██╗╚██╗ ██╔╝ ██╔████╔██║█████╗ ██╔████╔██║██║ ██║██████╔╝ ╚████╔╝ ██║╚██╔╝██║██╔══╝ ██║╚██╔╝██║██║ ██║██╔══██╗ ╚██╔╝ ██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║╚██████╔╝██║ ██║ ██║ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ always-up-to-date codebase memory for Claude Code · ask, don't re-read
A cheap, always-on model that learns your repo — so your agent stops re-reading it. Live Memory runs a separate, cheap large-context model as a long-lived MCP server that accumulates knowledge of your codebase across sessions. Instead of re-reading the same files every session, your agent asks one read-only tool, ask_live_memory, the broad-understanding questions — *"where is X, how does Y work, what calls Z"* — and Live Memory answers in a way that bootstraps the primary agent to start doing productive work (e.g., edits). It learns passively from your agent's own reads and edits (teed via hooks — no extra reading) and stays current as the repo changes (modifications and deletions). Read-only and path-jailed (it can never edit, create, or run anything); zero-config on a Claude subscription (Haiku, no API key); the memory model is pluggable — point it at a local model or any OpenAI-compatible endpoint.
flowchart LR
repo[("Your repo")] subgraph sessions["Claude Code sessions — premium model (many, over time)"] agent["Agent"] end agent -->|"reads / edits files"| repo agent -. "PostToolUse / FileChanged hooks tee file content — passive learning (free)" .-> lm agent ==>|"ask_live_memory(question, cwd) one read-only MCP tool"| lm lm ==>|"grounded answer — no file re-reading"| agent subgraph server["Live Memory — one MCP server per workspace (singleton)"] lm["Cheap / local large-context model
append-only · neutral compaction to a ledger"] lm --> snap[("Local JSON snapshot persists across sessions")] end
Your agent reads or edits files as usual; hooks quietly tee that content to the server so it learns for free. When the agent needs to understand something, it asks ask_live_memory instead of re-reading — the server answers from its accumulated, per-workspace memory (or reads the code itself, read-only, if it hasn't seen it yet). One server serves every session and persists across sessions.
A/B on a real repo, cost per task, run to completion. Cost is shown three ways: the premium (building) model's bill — what your *expensive* model spends, since the companion runs on a cheap or local model — and all-in, also counting the companion's own cost on DeepSeek-v4-flash or Haiku:
| per task | premium-model bill | all-in · DeepSeek-flash† | all-in · Haiku | faster |
|---|---|---|---|---|
| Understanding-heavy (trace / comprehend) | −61% | −57% | −25% | ~22% |
| Hybrid (understand-then-edit: bug fixes + features) | −28% | −26% | −11% | ~11% |
| Pure edit / execution | ~break-even | ~break-even | ~break-even | ~0 |
Understanding-heavy work also offloads ~93% of the premium model's codebase-reading tokens (with lower cost variance), and correctness never regressed on the hybrid tasks (12/12 passed with *and* without it). DeepSeek-v4-flash matched Haiku's answer accuracy (98% vs 91% over 3 reps) at ~8× lower token price; a local companion is ≈ free, so all-in ≈ the premium-model bill. Fully reproducible + audited (human + Fable). Full numbers + methodology: benchmark/results/RESULTS.md.
† companion re-priced at DeepSeek-v4-flash rates (~8× cheaper than Haiku); exact for the understanding case, derived from the measured cost ratio for the hybrid case.
Lineage: Live Memory began as a feature of [shofer.dev](https://shofer.dev) (Arkware's parallel multi-agent coding platform), where sessions share an in-sync codebase memory. This is that idea as a standalone Claude Code plugin — a fresh implementation, self-contained, with no dependency on shofer. Part of the shofer Claude Code plugin family (with slang-workflows). Design: DESIGN.md · How it compares to Copilot/Cursor: COMPARISON.md · Testing: TESTING.md · Privacy: PRIVACY.md.
live-memory is an HTTP MCP server you run once (a singleton that serves every Claude Code session) plus a plugin that registers ask_live_memory, the hooks, and the slash commands. Start the server first — Claude Code only *connects* to it (it never spawns it), so if it isn't running you'll get a connection error.
1 — Start the server (zero-config on a Claude subscription → Haiku; no API key needed):
git clone https://github.com/shofer-dev/claude-code-live-memory
cd claude-code-live-memory/deploy && ./install-service.sh # venv + user systemd service, auto-starts on boot
2 — Install the plugin (inside a Claude Code session):
/plugin marketplace add shofer-dev/claude-code-live-memory
/plugin install live-memory@shofer-live-memory
Ask your agent a whole-repo question — it'll call ask_live_memory instead of reading files. /live-memory-stats shows accumulated knowledge + cost · /live-memory-config switches model/provider · /live-memory-empty wipes memory · /live-memory-reset starts a workspace over with its configured preload docs re-loaded. Providers, systemd, workspaces, and concurrency are detailed below.
live-memory/
├── .claude-plugin/plugin.json # plugin manifest ├── .mcp.json # registers the server (type:http, explicit timeout) ├── hooks/ # PostToolUse(Read|Write|Edit|…) + FileChanged → TEE file content (passive learning) │ ├── hooks.json │ └── notify.py ├── skills/live-memory/SKILL.md # tells the agent when/why to call ask_live_memory ├── commands/ # USER-facing slash commands (not agent tools) │ ├── live-memory-stats.md # /live-memory-stats → GET /stats │ ├── live-memory-config.md # /live-memory-config → set model/provider, hot-reload │ ├── live-memory-empty.md # /live-memory-empty → wipe memory (this workspace or all) │ ├── live-memory-reset.md # /live-memory-reset → drop history + re-preload configured docs │ ├── stats.py · config.py · empty.py · reset.py ├── settings.json ├── deploy/ # systemd unit + env example + install-service.sh └── server/ # the long-running MCP server (Python, asyncio) ├── pyproject.toml # deps + mypy(strict) + pytest config ├── tests/ # pytest unit suite (mocked; no network) └── live_memory/ ├── main.py # entrypoint: python -m live_memory ├── server.py # MCP (HTTP) ask_live_memory + /health + /stats + /notify + /clear + /reset + /reload ├── workspace.py # per-cwd state registry (window + queue + store); fork/commit ├── manager.py # the agent loop (process one question); compaction ├── context_window.py # budget; file-context evict, Q&A summarize; fork/clone ├── summarizer.py # NEUTRAL, query-agnostic knowledge-ledger summarization ├── question_queue.py # per-workspace admission (serial/parallel) + per-entry timeout ├── async_jobs.py # opt-in fire-and-forget job registry (submit/poll) ├── keep_warm.py # background KV/prompt-cache keep-warm loop ├── conversation_store.py # versioned JSON snapshot (SHA-256 file validation) ├── llm_client.py # provider-pluggable: Anthropic Messages | OpenAI-compatible ├── oauth.py # subscription OAuth credential + auto-refresh (zero-config) ├── config.py # layered config (env > config.json > defaults) + provider knowledge ├── constants.py # ALL tunable magic numbers + defaults, centralized (config sources its defaults here) ├── models.py # core dataclasses (ChatMessage, FileContext, QuestionResult, …) ├── tool_executor.py # read-only tools (Read/Grep/Glob/find_paths/git/…), path-jailed ├── preload.py # configured preload globs → verbatim docs on workspace load ├── directory_tree.py # workspace scan, ~10% context cap ├── pricing.py # per-model USD cost (+ env overrides) ├── logging_setup.py # stderr→journald + optional rotating file └── prompts.py # system prompt + neutral-summary prompt
cwd).cache_control) and OpenAI-compatible (DeepSeek/OpenAI/gateways). Zero-config: with no key but a Claude subscription, it uses the subscription OAuth token (auto-refreshed) on Haiku.ask_live_memory is the active fallback for anything unseen.preload_globs (e.g. docs/*.md) names reference docs loaded verbatim into the system prompt whenever a workspace is (re)loaded — the memory starts out knowing them. They behave like observations: compaction later distills them into the knowledge ledger under pressure. /live-memory-reset drops a workspace's history trail and re-preloads them fresh.ask_live_memory(question, cwd, max_answer_tokens?) blocks up to the server-configured soft budget (default_timeout_s, default 60s — no longer a tool argument) and returns a best-effort answer before the hard .mcp.json MCP timeout.LIVE_MEMORY_MAX_ANSWER_TOKENS) *and* the model is told the cap, so it self-regulates instead of being truncated mid-sentence; the optional max_answer_tokens arg overrides it per question./live-memory-stats slash command (→ /stats), kept off the agent's tool surface.Prerequisites: Python ≥ 3.10; ripgrep (rg) recomm
只显示了开头部分;其余内容请在仓库中阅读