Exomem

io.github.Artexis10由 GitHub 帳號 Artexis10 發布v0.164.1更新於 Nov 8, 2026

Local Markdown/Obsidian knowledge substrate for MCP agents with governed memory and hybrid search.

概覽

AI 產生的概覽

把本機 Markdown/Obsidian 筆記庫變成受治理的知識庫,讓 MCP 代理能檢索、寫入並取用持久記憶。

可以做什麼
  • 檢索與讀取筆記庫:依類型、專案、標籤篩選查找筆記、來源、實體與證據,讀取整頁內容,並為當前對話編譯召回脈絡。
  • 儲存與更新知識:擷取原始來源,建立分型別的編譯筆記,修補頁面,以新結論取代舊結論,並以附加方式保存證據。
  • 審查與接管:檢查語料健康度,列出過期或未處理項目,並在複製或編譯前對既有筆記庫做唯讀掃描。
  • 追蹤狀態:透過受治理的紀錄與規劃集合登錄觀測資料與未來工作,並跨工作階段保存工作回顧。
  • 管理檔案:選用的第二層工具可列出目錄、建立、移動、移至垃圾桶及還原檔案。
適用情境
當你希望助理直接在你既有的 Markdown 或 Obsidian 筆記上工作、而不是把檔案匯入專有儲存,並在不同工作階段與用戶端之間保留有出處的持久記憶時使用。
執行需求
以本機 stdio 程序執行,從 PyPI 安裝(uv 或 pip),需以 EXOMEM_VAULT_PATH 指定筆記庫路徑。選用擴充提供向量檢索、媒體擷取與立場驗證;首次啟動會在背景下載檢索模型。目前 macOS 無法託管筆記庫;沒有 Python 的主機可用 Docker 映像。
安裝前請注意
伺服器會在筆記庫的受治理目錄內寫入並保留持久寫入日誌;第二層工具可建立、移動、移至垃圾桶及還原檔案,請謹慎限定筆記庫路徑。設定 EXOMEM_REST_API_KEY 會開放需驗證的 REST 介面,選用掛鉤會把檢索內容注入提示詞。一鍵安裝腳本會執行遠端腳本,並把伺服器註冊到偵測到的所有用戶端。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Exomem,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

exomem

[PyPI] [Python] [CI] [License: AGPL-3.0]

Durable memory with sources, proof, history, and review for MCP-capable agents.

exomem turns an owned Markdown/Obsidian vault into a local knowledge substrate for Codex, Claude Code, Cursor, chatbots, CLI agents, and any client that can call MCP tools. Your files stay plain, local, portable, and editable outside the server.

text
agent -> MCP tools -> exomem -> your Markdown / Obsidian vault

Prove it in 30 seconds

bash
uvx exomem demo

One command, no install, no config, no vault of your own needed:

text
exomem demo — bundled sample vault, keyword mode, fully localvault: /tmp/exomem-demo-XXXXXX
1. doctor: PASS (0.8s)2. find "retrieval": PASS (0.1s)   - Knowledge Base/Sources/Sessions/2026-06-30-sample-session.md   - Knowledge Base/Notes/Insights/retrieval-needs-owned-files.md3. get retrieval insight: PASS (0.0s)   - title: Retrieval needs owned files   - type: insight   - excerpt: Local-first knowledge tools should retrieve from files the user already owns.4. audit: PASS (0.0s)
demo PASS — total 1.0s. This is your proof: agents search files you own.Next: connect your own vault with `exomem setup`

Runs fully local and read-only against a sample vault bundled in the package. Add --keep to leave that copy on disk afterward and open it in Obsidian.

Install in one line

Mac / Linux — paste into Terminal:

bash
curl -fsSL https://raw.githubusercontent.com/Artexis10/exomem/main/scripts/install.sh | sh

Windows — paste into PowerShell:

powershell
irm https://raw.githubusercontent.com/Artexis10/exomem/main/scripts/install.ps1 | iex

Either one installs uv, installs exomem, and walks you through exomem setup, which wires up every agent client on the machine — Claude Code and Codex both get the MCP server, all ten skills, and the capture/retrieve hooks.

Safe to run again later — it skips whatever's already done. If it can't prompt you interactively (e.g. run from another script), it prints the exact command to run next instead of guessing. Prefer to run each step yourself? See below or the full manual walkthrough in QUICKSTART.md.

Claude Code: install as a plugin

The plugin carries the skills and hooks. Its MCP entry is an optional shared HTTP URL; it deliberately does not auto-start a full stdio server in every Claude Code session:

/plugin marketplace add Artexis10/exomem/plugin install exomem@exomem

Then choose the route. If you already run Exomem as a service for phone or hosted access, reuse that one authenticated core:

bash
exomem setup --vault "/path/to/vault" --mcp-url https://<host>/mcp

For local-only use, run exomem setup --vault "/path/to/vault" --stdio. Stdio is intentionally explicit because each client session owns its process and can load its own embedding runtime. When updating from an older plugin, run /plugin update exomem@exomem, then /reload-plugins or restart Claude Code before rerunning setup.

claude.ai and ChatGPT

Neither platform can install skills programmatically — upload is manual. Build the archives, then upload them in the client's settings:

bash
exomem package-skills          # writes dist/skills/*.zip (all ten)

Point the client at your server as a connector (see docs/remote-quickstart.md). Neither platform has a hook system, so capture there is skill-driven rather than automatic.

Set it up in 5 minutes

bash
uv tool install exomem   # or: pip install exomemexomem setup --vault "/path/to/your/Obsidian"

Re-running the one-line installer upgrades an existing uv-tool install instead of leaving an older exomem command on PATH. exomem --version --json is a model-free provenance check, so it also works in the intentional lean CLI paired with a fuller managed service.

One command does the whole local setup: the wizard scans your vault and shows what's already there, initializes Knowledge Base/, runs the doctor preflight, registers the server with every client it detects (Claude Code and Codex), and installs the skills into each.

If cwd .env or the process contains EXOMEM_BASE_URL, setup registers its canonical /mcp endpoint with Claude Code and Codex so they share the existing service. Otherwise it uses the explicit local stdio fallback. Use --mcp-url to choose a service directly, --stdio to force local stdio, and --replace-client-registration when you deliberately want to replace an existing manual route. Native clients handle OAuth; setup never stores bearer tokens.

Config files it did not create are treated as yours: it merges rather than overwrites, backs the file up first, and prints the diff.

Already have a vault full of notes? That's the normal case: adopt gives a scan-first, read-only report of what's there, suggested knowledge packs, and safe copy/compile-planning next actions. Exomem only ever writes under Knowledge Base/ — your existing files stay untouched unless you explicitly copy or compile selected material. See QUICKSTART.md § Already have a vault full of notes? for the full contract, including daily-notes vaults. Re-running setup is safe; completed steps report [skipped]. Non-interactive: exomem setup --yes --vault "/path" --lean.

The individual steps (exomem init / doctor / install-skill / install-hook, plus claude mcp add) still exist as the manual path — see QUICKSTART.md.

The skill installs under the Claude Code name exomem — the same name as the connector, so skill, server, and tools all read as one product. The skill is recommended for Claude Code — the server gives Claude the tools, the skill is what makes it use them. Hooks are local-client reliability helpers for Claude Code and Codex: a read-side reminder before answers, a write-side reminder at natural stopping points, and a shared local continuation checkpoint around compaction. The checkpoint stores bounded structural evidence (repository state, artifact hashes/counts, and transcript provenance hashes), never conversation, tool, summary, or artifact content. It needs no MCP connection or Exomem credential. The read-side hook suppresses obvious control/status prompts like continue, merge it, and are you done?, and can optionally upgrade that reminder to real retrieved KB content (EXOMEM_RETRIEVE_INJECT=1, opt-in; the legacy KB_RETRIEVE_INJECT name still works) — or, with EXOMEM_RETRIEVE_INJECT=working_set, to a compiled recall_context packet under a data header, bounded by EXOMEM_RETRIEVE_INJECT_MAX_CHARS (default 4,000). For Codex, run exomem install-hook --client codex; for Claude Code, exomem install-hook — see QUICKSTART.md § 7. Both clients checkpoint on manual or automatic PreCompact and reinject on SessionStart(compact|resume); Claude also checkpoints on SessionEnd. Pinned Codex CLI 0.144.3 has no SessionEnd hook, so Exomem does not invent one. Other MCP clients can still use the server. If they do not support Skills, have them call bootstrap() once at the start of the session; it returns the same compact operating contract through MCP, including when to search, when to save, workflow-skill discovery, upload guidance, and performance profiles. It also teaches the authoring loop: search first, draft the typed note, run suggest_links, write with the right tool, inspect warnings/suggestions, then report the path.

How eagerly it does that is tunable: four prominence levels (off / light / balanced / maximal), set with exomem prominence <level> or pasted into a web assistant's custom instructions. Clients with hooks default to balanced; web and hosted default to maximal, because nothing there re-arms the check between turns. See docs/prominence.md for the levels and the copy-paste blocks.

For client-specific assistant instructions, see docs/ai-assistant-guide.md. For the boundary between Exomem and a chat product's built-in memory, see docs/vs-built-in-memory.md.

Full local setup is in QUICKSTART.md. Remote/mobile setup is in docs/remote-quickstart.md and docs/deployment.md.

Remote OAuth uses GitHub once to prove the configured login plus immutable user ID, then issues an Exomem-owned durable session. Operators can inspect and revoke those sessions with exomem auth sessions, exomem auth revoke <session-id>, and exomem auth revoke --all; session administration is never an MCP tool.

The product model is intentionally simple: built-in AI memory remembers preferences and routing, while Exomem stores durable governed knowledge with sources, proof, history, decisions, records, and review. See docs/product-model.md for the full mental model, docs/records.md for human-owned longitudinal Records, docs/tui.md for the interactive terminal UI (exomem tui, optional tui extra), docs/review-studio.md for the packaged browser review loop, docs/epistemic-inbox.md for daily review and relation repair, docs/knowledge-packs.md for pack/admin details, and docs/workflow-skills.md for the named agent workflows.

For development, or to run the sample vault from a checkout instead of a package install:

bash
git clone https://github.com/Artexis10/exomem.gitcd exomemuv syncuv run exomem demo

Connect your agent

ClientHow
Claude Codeexomem setup registers it for you (see above)
Codex CLIcodex mcp add plus optional exomem install-hook --client codex - see docs/ai-assistant-guide.md#codex-cli
claude.ai or hosted chatRemote MCP/connector - see docs/remote-quickstart.md and docs/ai-assistant-guide.md#hosted-chat-clients
Any MCP clientGeneric stdio config - see below and docs/ai-assistant-guide.md#generic-stdio-mcp-clients; call bootstrap() first
Docker (no Python)One docker run line — see below and docs/docker.md
Codex CLI
bash
codex mcp add exomem --env EXOMEM_VAULT_PATH="/path/to/vault" -- exomem --transport stdio

Optional local hooks, using the same Exomem scripts as Claude Code:

bash
exomem install-hook --client codex

Verify deployed Claude Code/Codex hooks without changing anything:

bash
exomem install-hook --check

For the AGENTS.md instruction block and the "do not search every tiny prompt" policy, see docs/ai-assistant-guide.md.

Or add it directly to ~/.codex/config.toml:

toml
[mcp_servers.exomem]command = "exomem"args = ["--transport", "stdio"]env = { EXOMEM_VAULT_PATH = "/path/to/vault" }
Any MCP client (generic stdio)
json
{"mcpServers": {"exomem": {"command": "exomem", "args": ["--transport", "stdio"], "env": {"EXOMEM_VAULT_PATH": "/path/to/vault"}}}}

After connecting, ask the agent to call bootstrap() before using the KB. Claude Skills are still the best UX where available, but bootstrap() lets generic MCP clients learn Exomem's search/save/upload contract without a separate skill file, including the write loop for compiled notes. See docs/ai-assistant-guide.md for the copyable standing instruction.

Docker (no Python on the host)
bash
claude mcp add exomem -- docker run -i --rm -v "/path/to/vault:/vault" -e EXOMEM_VAULT_PATH=/vault ghcr.io/artexis10/exomem:latest --transport stdio

Use :latest for the lean keyword/BM25 image, :ml for CPU hybrid search, or :cuda for NVIDIA/Linux CUDA capability. CUDA images still boot CPU-default at idle; opt into GPU residency with EXOMEM_MODE=performance when you want it. The image also runs as an always-on remote server via docker compose with a tunnel sidecar — see docs/docker.md. Windows users with a live vault should usually prefer the native install (WSL2 bind mounts miss live file-watch events). macOS cannot serve a vault today: exomem's held-filesystem substrate, which every governed write acquires a reserved-path root through, has a Linux backend and a Windows backend and no darwin implementation, so exomem refuses there and exomem doctor says why.

The first start downloads search models in the background — find works immediately with keyword ranking and upgrades to semantic search automatically once the models land. Run exomem warm to pre-download them ahead of time.

Resource modes

Exomem is CPU-first by default so an idle server does not quietly occupy GPU memory. Control the machine footprint without editing code:

bash
exomem mode quiet          # low-resource: no heavy warm-up, evict caches, defer semantic reindexexomem mode normal         # default: CPU steady-state, warm CPU caches allowedexomem mode performance    # explicit opt-in for GPU-capable bulk/model workexomem status --resources --json

Use quiet before gaming or other foreground workloads. Keyword/BM25 freshness, file-change freshness, inbound links, and resolver state stay live; expensive semantic/CLIP reindex work can be deferred and is reported in resource status. Run exomem index or kb reconcile later to heal deferred semantic work.

Automatic quiet switching is optional. Its watcher skips GPU pressure queries when you select quiet manually, pin a mode with EXOMEM_MODE, or disable EXOMEM_AUTO_QUIET. Automatic quiet still monitors pressure so it can restore the previous mode.

On affected WSL/NVIDIA systems, repeated Linux nvidia-smi processes can grow the Windows driver's kernel memory and disrupt foreground work. Microsoft WSL issue #12756 records a reproduction. For older Exomem versions, a service configured with EXOMEM_AUTO_QUIET=0 stops its watcher after that service restarts. An empty CUDA_VISIBLE_DEVICES also disables GPU work and GPU headroom queries. These settings do not require a Windows reboot; existing driver state may remain.

What it does

  • Searches the vault you already own. Markdown stays in place; exomem does not import copies into a proprietary note store.
  • Adopts messy vaults safely. adopt starts with a read-only report and explicit copy and compile-planning options, so originals remain archival until you choose.
  • Retrieves across text and media. Markdown, PDFs, Office docs, images, screenshots, audio, and video can become searchable through local extraction.
  • Keeps sources separate from conclusions. Raw captures, compiled notes, entities, evidence, and superseded conclusions live in typed folders.
  • Surfaces review work. Audit and attention queues can show unprocessed sources, stale notes, broken links, and close-by claims worth reviewing.
  • Measures, never judges. The server does deterministic work: search, extraction, ranking, embeddings, file writes, and graph checks. Reasoning stays in the client model.

Why use it

Most AI note tools make you move into their app or ingest your files into their store. exomem works the other way around: agents come to your vault.

Compared withDifference
Doc-chat / RAG appsexomem works over live files instead of imported copies.
Basic MCP note serversexomem adds typed knowledge operations, multimodal extraction, audit queues, and CLI/REST parity.
Memory hidden inside one assistantexomem is client-agnostic: use the same vault from Claude Code, Codex, Cursor, scripts, or a custom chatbot.

For a deeper point-in-time comparison, see docs/comparison-engraph.md. The reproducible graph-only comparison with Basic Memory is in docs/comparison-basic-memory-graph.md. For the practical boundary with chat products' own memory features, see docs/vs-built-in-memory.md.

Measured retrieval quality — and speed. Retrieval is graded by a reproducible golden-set eval harness, not asserted, and latency is measured per lane at corpus scale: hybrid find() runs sub-second end-to-end at 50,000 notes (864 ms on the reference desktop, hot cache off), with the keyword/BM25 lanes served from an FTS5 sidecar index in milliseconds — built into stdlib SQLite, so it works on the lean install too. Methodology and numbers in docs/benchmarks.md.

Simple front door

Agents should route normal user requests through simple actions first, then use the typed tools underneath.

ActionUse when the user saysBacked by
Save"remember this", "log this", "this is a decision"add, note, link, preserve
Adopt/import"make this old vault usable", "import my notes safely"adopt, overview
Ask"what do we know about X?", "show the sources"find, get
Prove"save this for the warranty case", "show the evidence"preserve, upload/download, find
Review"what needs cleanup?", "what is stale?"attention, audit, propose_compilation
Update"this replaced the old conclusion", "fix that note"edit, replace, reconcile
Connect"link this to X", "what should this cite?"link, suggest_links
Plan"save this feature idea", "file this bug for later", "what matters this week"plan_memory with inspect, create, query, add, update, or triage
Record"log this session", "record this measurement", "update the mileage"record_memory with inspect, create, query, append, or update

Core tools

exomem exposes typed MCP tools for common knowledge-base work:

ToolPurpose
recall_contextCompile durable context for a raw turn, with no query: returns a map or resolves which anchors the turn is about, with a bounded working-memory packet, or abstains.
episode_memoryRecord a bounded recap of what a conversation worked on, decided and left open, so the next session on any client sees it first; inspect an episode's revisions.
findSearch notes, sources, entities, and evidence with type/project/tag filters.
getRead a full page or frontmatter.
addCapture a raw source page.
noteCreate compiled notes: research note, insight, failure, pattern, experiment, or production log.
editPatch an existing compiled page.
replaceSupersede an old conclusion with a new one and preserve the link between them.
preserveStore binary or text evidence append-only.
auditCheck graph and corpus health.
attentionSurface review queues such as stale notes, close-by claims, and unprocessed sources.
overviewBounded, read-only structure report of the vault or a subtree — works outside Knowledge Base/ and before init.
adoptExisting-vault adoption: scan-only by default; can save a manifest, copy selected legacy text files as Sources, or return a compile plan while preserving originals.
record_memoryOne front door for human-owned observed state: inspect, create, query, append, or targeted update a governed Record collection.
plan_memoryOne front door for human-owned intended future state: inspect, create, query, add, update, or triage a Planning collection.

Tier-2 tools cover governance administration and filesystem escape hatches such as listing directories, creating files, moving pages, trashing files, and recovering from trash. Set EXOMEM_DISABLE_TIER2=1 if you want a smaller tool surface.

Every write records durable history in Knowledge Base/log.md. Service calls also go to logs/exomem.log.

One operation, three doors

Every operation is declared once and exposed through:

  • MCP for agents.
  • CLI for terminal and scripts.
  • REST for personal HTTP integrations when EXOMEM_REST_API_KEY is set.

Examples:

bash
kb find "project handoff" --mode keywordkb find "stale decision" --jsonkb get "Notes/Insights/retrieval-needs-owned-files" --jsonkb note --note-type insight --title "Agents need durable context" \  --content "# Agents need durable context"
bash
curl -s -X POST http://127.0.0.1:8765/api/find \  -H "Authorization: Bearer $EXOMEM_REST_API_KEY" \  -H "Content-Type: application/json" \  -d '{"query": "project handoff", "mode": "keyword"}'

CLI and REST share the same JSON envelope:

json
{"success": true, "data": []}

Multimodal by default, resident only while working

The native release-service command installs the standard profile: local embeddings, PDFs/Office documents, OCR bindings, ASR, and CLIP. Heavy models are not loaded at service startup. Media jobs enter a durable queue, run serially in one disposable child process, and the child exits after five idle minutes so its RAM and MPS/MLX/CUDA state return to the host.

Manual/source installs can select the same capabilities directly:

bash
uv sync --extra embeddingsuv sync --extra media
  • embeddings: local text embeddings plus CLIP image search.
  • media: OCR for images, PDF extraction, Office document extraction, and faster-whisper ASR for audio/video.

CSV, TSV and JSON evidence uploads get dataset source cards for discovery and exact queries. YAML, JSONL, XML and TOML exports get bounded text previews. These paths need no optional extras; see source formats for limits and governance behavior.

lean and hybrid remain available for constrained machines. Generated image captioning and speaker diarization are advanced opt-ins, not requirements for the standard multimodal path.

System tools: Tesseract is required for image OCR. On Windows:

powershell
winget install --id UB-Mannheim.TesseractOCR -e

GPU acceleration is useful but not required. Steady-state torch models default to CPU in normal and quiet; performance is the explicit opt-in for capable NVIDIA CUDA or Apple Silicon MPS/Metal paths. See docs/deployment.md for CUDA, Blackwell, Apple Silicon, diarization, and remote-service details.

Configuration

The server reads environment variables or a .env file. The main ones are:

VariablePurpose
EXOMEM_VAULT_PATHVault root containing the governed folder (default Knowledge Base/).
EXOMEM_KB_DIRNAMEName of the governed folder inside the vault (default Knowledge Base).
EXOMEM_DISABLE_EMBEDDINGS1 forces keyword/BM25-only search.
EXOMEM_RECALL_MODELNames the recall encoder. Default: BAAI/bge-m3 on a personal server and a cloud cell, BAAI/bge-base-en-v1.5 on a hosted cell. A vault whose vectors came from another model is re-embedded in the background.
EXOMEM_RECALL_REEMBEDoff builds no new sidecar. A personal server keeps serving the old sidecar with its model; a cell keeps dense recall off.
EXOMEM_DISABLE_TIER21 hides Tier-2 filesystem tools.
EXOMEM_REST_API_KEYEnables authenticated REST routes.
EXOMEM_DISABLE_MEDIA_EXTRACTION1 skips server-side OCR/ASR/PDF/Office extraction.
EXOMEM_DISABLE_CLIP1 disables CLIP image search.
EXOMEM_MODEHard-pin resource mode: quiet, normal, or performance. Env wins over config.
EXOMEM_QUIET_MODELegacy truthy alias for quiet when EXOMEM_MODE is unset.
EXOMEM_AUTO_QUIET1 enables optional non-torch GPU-pressure auto-quiet switching (default off).
EXOMEM_DEVICE / EXOMEM_TORCH_DEVICEForce all torch models to cuda, mps, or cpu. Normally leave unset and use exomem mode.
EXOMEM_MPS_FP16On Apple Silicon, run bge/CLIP in fp16 on the Metal GPU — ~half the memory, faster encodes (default on; set 0 to keep fp32).
EXOMEM_VIDEO_SCENE_FRAMESSet to enable video scene detection + persisted, OCR'd scene-frame JPEGs (default off).
EXOMEM_VIDEO_SCENE_THRESHOLDScene-boundary hash threshold in bits of 64 (default 10).
EXOMEM_VIDEO_SCENE_MIN_SECSMinimum scene duration in seconds; closer boundaries merge (default 4).
EXOMEM_SEMANTIC_SEGMENTSSet to enable timed transcripts + semantic segment retrieval for audio/video (default off).
EXOMEM_WHISPER_MODELfaster-whisper model size for ASR, such as base or small.
EXOMEM_ASR_BACKENDASR engine: mlx (Apple Silicon Metal GPU, needs the media-mlx extra) or faster-whisper (CUDA/CPU). Default auto-selects MLX on Apple Silicon, else faster-whisper.
EXOMEM_ASR_LANGUAGELanguage code to force for speech transcripts, such as et. Unset means the engine detects the language on speech. A reprocess request with a language takes precedence. A code the speech model does not publish fails the job.
EXOMEM_MLX_WHISPER_MODELHF repo for the MLX ASR model (default mlx-community/whisper-large-v3-mlx; use mlx-community/whisper-large-v3-turbo for speed).
EXOMEM_TESSERACT_CMDPath to the tesseract binary if not auto-discovered.
EXOMEM_CLAIM_LEVEL1 enables the claim-level subsystem (default off).
EXOMEM_CLAIM_POLARITY_NLI1 opts into the frozen stance verifier (default off). It still runs only if the exact repository-pinned revision and declared artifact manifest are resident and verified.
EXOMEM_CONTRADICTION_TOP_NCaps the surfaced contradiction queue and therefore verifier enrichment (default 40; 0 is uncapped). This is the sole polarity-work bound.

EXOMEM_CLAIM_NLI_MODEL is retired. Model identity comes only from the in-repo pin registry; a value left in it selects nothing and is reported as ignored by exomem doctor.

The shipped pin is the multilingual MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7 checkpoint at one exact upstream revision. Its admission fixtures check English, German, French, Estonian, and mixed English/Estonian examples. That is bounded evidence for those examples, not a promise of equal quality across every language in the model card. Its labels are NLI relations: contradict, duplicate, refine, or neutral. neutral includes unrelated, compatible, and uncertain pairs; it never means “proved unrelated.”

Degradation modes

Optional tiers are absent by default and degrade to silence, not to a substitute. What "absent" means, per tier:

TierInstallWhen absent
Semantic search--extra embeddingsKeyword/BM25 retrieval; every surface still answers.
Media extraction--extra mediaServer-side OCR/ASR/PDF extraction is skipped; the model-driven upload text path still works.
Vector KNN (sqlite-vec)with embeddingsExact in-memory scan over the same vectors; identical results, more work.
Frozen stance verifier--extra nliReview-queue entries carry no model polarity label — never a differently-produced label under the verifier's name. Write responses, rankings, and every other surface are byte-identical to a build with no verifier tier at all; only exomem doctor names the absence. The verifier runs only under an exact pinned revision and artifact-manifest digest, a versioned label map, and a green bounded multilingual fixture set, and it labels review-queue entries only. Hosted cells do not install or enable it.

Legacy EXOMEM_* names (from the project's former working name, exomem) remain honored: each is promoted to its EXOMEM_* equivalent at startup, with an explicitly set EXOMEM_* value winning on conflict. import exomem and python -m exomem likewise keep working as deprecated aliases.

Remote-only variables and full deployment notes are in docs/deployment.md.

Project status

exomem is packaged on PyPI, uses Release Please for versioning, and follows the lightweight SemVer policy in docs/release.md. The public CLI entry point is exomem; kb is the short daily-driver alias for knowledge-base operations.

License

AGPL-3.0-or-later. See LICENSE.

來源:README.md,提交 d77d31a

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

88
  1. v0.163.1Nov 7, 2026
  2. v0.161.1Nov 5, 2026
  3. v0.160.0Nov 4, 2026
  4. v0.158.1Nov 3, 2026
  5. v0.158.0Nov 3, 2026
  6. v0.157.1Nov 3, 2026
  7. v0.154.0Nov 1, 2026
  8. v0.153.1Oct 31, 2026
  9. v0.152.0Oct 31, 2026
  10. v0.151.1Oct 30, 2026
  11. v0.151.0Oct 30, 2026
  12. v0.150.0Oct 30, 2026
  13. v0.149.0Oct 29, 2026
  14. v0.146.1Oct 26, 2026
  15. v0.145.1Oct 26, 2026
  16. v0.145.0Oct 26, 2026
  17. v0.144.0Oct 25, 2026
  18. v0.143.1Oct 25, 2026
  19. v0.142.0Oct 25, 2026
  20. v0.141.0Oct 24, 2026
  21. v0.136.0Oct 24, 2026
  22. v0.135.0Oct 23, 2026
  23. v0.134.5Oct 23, 2026
  24. v0.134.2Oct 22, 2026
  25. v0.134.0Oct 22, 2026
  26. v0.133.0Oct 21, 2026
  27. v0.132.8Oct 21, 2026
  28. v0.132.6Oct 21, 2026
  29. v0.132.5Oct 20, 2026
  30. v0.132.3Oct 20, 2026
  31. v0.132.0Oct 20, 2026
  32. v0.130.0Oct 19, 2026
  33. v0.128.2Oct 19, 2026
  34. v0.128.1Oct 19, 2026
  35. v0.127.5Oct 18, 2026
  36. v0.127.3Oct 18, 2026
  37. v0.127.1Oct 18, 2026
  38. v0.127.0Oct 18, 2026
  39. v0.126.0Oct 18, 2026
  40. v0.124.0Oct 17, 2026
  41. v0.123.0Oct 17, 2026
  42. v0.121.0Oct 17, 2026
  43. v0.120.0Oct 16, 2026
  44. v0.119.0Oct 16, 2026
  45. v0.118.0Oct 16, 2026
  46. v0.117.3Oct 15, 2026
  47. v0.117.2Oct 14, 2026
  48. v0.117.1Oct 13, 2026
  49. v0.117.0Oct 13, 2026
  50. v0.116.0Oct 13, 2026
  51. v0.114.0Oct 9, 2026
  52. v0.113.0Oct 9, 2026
  53. v0.112.0Oct 9, 2026
  54. v0.111.1Oct 8, 2026
  55. v0.111.0Oct 8, 2026
  56. v0.110.0Oct 7, 2026
  57. v0.109.0Oct 6, 2026
  58. v0.108.0Oct 6, 2026
  59. v0.107.0Oct 5, 2026
  60. v0.106.0Oct 5, 2026
  61. v0.105.0Oct 4, 2026
  62. v0.104.0Oct 4, 2026
  63. v0.103.0Oct 4, 2026
  64. v0.102.6Oct 3, 2026
  65. v0.102.5Oct 2, 2026
  66. v0.102.4Oct 2, 2026
  67. v0.102.2Oct 2, 2026
  68. v0.102.0Oct 1, 2026
  69. v0.101.0Oct 1, 2026
  70. v0.100.0Oct 1, 2026
  71. v0.99.0Sep 30, 2026
  72. v0.98.0Sep 30, 2026
  73. v0.97.0Sep 29, 2026
  74. v0.96.0Sep 28, 2026
  75. v0.95.2Sep 27, 2026
  76. v0.94.0Sep 27, 2026
  77. v0.93.0Sep 25, 2026
  78. v0.92.0Sep 23, 2026
  79. v0.91.1Sep 23, 2026
  80. v0.91.0Sep 22, 2026
  81. v0.90.4Sep 21, 2026
  82. v0.90.2Sep 21, 2026
  83. v0.90.0Sep 20, 2026
  84. v0.89.0Sep 20, 2026
  85. v0.88.0Sep 19, 2026
  86. v0.87.1Sep 19, 2026
  87. v0.86.0Sep 18, 2026
  88. v0.85.5Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分