Codemesh

io.github.pyalwin由 GitHub 账号 pyalwin 发布v0.1.2更新于 Oct 24, 2026

Intelligent code knowledge graph for AI coding agents — 71% cheaper, 72% faster

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

Codemesh 为项目构建本地代码知识图谱,让 AI 编程助手直接回答问题、追踪调用链并复用笔记,而不必反复搜索和读取文件。

可以做什么
一次调用回答代码库问题,返回相关文件、调用链、热点和建议阅读位置(codemesh_answer)。
适用场景
适用于较大或不熟悉的代码库,助手原本需要多轮搜索和读取文件;也适合希望跨会话保留已学知识的场景。
运行要求
以本地 stdio 进程运行 npm 包 @pyalwin/codemesh,需要 Node.js;环境变量 CODEMESH_PROJECT_ROOT 必须指向待索引代码库的绝对路径。需先执行 codemesh index 建立索引,可选启用嵌入,会下载约 80MB 的本地模型。未声明任何身份验证。
安装前请注意
服务器会读取并索引 CODEMESH_PROJECT_ROOT 下的整个代码库,请只指向你愿意让助手访问的项目。enrich 与 workflow 工具会把助手撰写的摘要和工作流记录写入本地图谱,这些内容会跨会话和重新索引保留;若可能含敏感笔记,请审阅或清除。可选的 hooks 与 skills 会修改 Claude 配置文件。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Codemesh,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Codemesh

Intelligent code knowledge graph for AI coding agents

71% cheaper, 72% faster, 82% fewer tool calls vs baseline Grep+Read
on 6 real-world repos (Sonnet 4.6) — from a single codemesh index.

[npm] [Tests] [License] [TypeScript] [MCP]

Benchmarks · Quick Start · Integrations · Write-Back · How It Works · API Reference · Full Results


The Problem

AI coding agents waste 40-80% of their tokens on discovery — grepping through files, reading irrelevant code, and rebuilding context they've already seen in previous sessions.

On a 600-file codebase, a typical exploration task involves 10+ file reads before the agent even knows what's relevant.

Before:  Agent → Grep → 50 matches → Read 10 files → Understand → WorkAfter:   Agent → codemesh_map → expand chosen branches → read exact symbols → Work

Codemesh is an MCP server that gives agents a persistent, queryable knowledge graph. The graph gets smarter over time: agents write back what they learn, so the next session starts informed.


Benchmarks

Benchmarked on 6 real-world codebases (Alamofire, Excalidraw, VS Code, Swift Compiler, pydantic-validators, pydantic-basemodel) with Claude Sonnet 4.6, compared alongside baseline and graph-based approaches for context.

Full methodology, per-repo breakdowns, and pairwise comparisons: docs/benchmark-results.md | Early pydantic evals

These historical runs used the earlier answer-first workflow. The map-first navigation workflow described below is evaluated in an exploratory Pydantic pilot; the figures in this section should not be read as its measured performance.

Cost

ModeAlamofireExcalidrawVS CodeSwift Compiler1pydantic-validatorspydantic-basemodelAvg
Baseline$0.54$0.89$0.21$0.83$1.32$0.78$0.76
Codemesh MCP$0.25$0.21$0.16$0.23$0.33$0.13$0.22
Codemesh CLI$0.67$0.51$0.16$0.83$1.00$0.18$0.56
Codegraph$0.37$0.56$0.57$0.74$0.29$0.19$0.45

Time

ModeAlamofireExcalidrawVS CodeSwift1pydantic-vpydantic-bAvg
Baseline180s191s87s199s352s232s207s
Codemesh MCP78s45s35s87s72s32s58s
Codemesh CLI226s177s62s227s235s51s163s
Codegraph134s180s192s199s75s60s140s

Tool calls (agent turns)

ModeAlamofireExcalidrawVS CodeSwift1pydantic-vpydantic-bAvg
Baseline31481229846545
Codemesh MCP953141438
Codemesh CLI3032125664934
Codegraph31354444201231

Quality (1–10, LLM-as-judge)

ModeAlamofire2ExcalidrawVS CodeSwift Compilerpydantic-validatorspydantic-basemodelAvg
Baselinen/a987297.0
Codemesh MCP997877.87.9
Codemesh CLI977918.46.9
Codegraph898.78898.4

Cost savings: Codemesh MCP vs Baseline

RepoBaselineCodemesh MCPCost savedTime saved
Alamofire$0.54$0.25−54%−57% (180s → 78s)
Excalidraw$0.89$0.21−76%−76% (191s → 45s)
VS Code$0.21$0.16−24%−60% (87s → 35s)
Swift Compiler1$0.83$0.23−72%−56% (199s → 87s)
pydantic-validators$1.32$0.33−75%−79% (352s → 72s)
pydantic-basemodel$0.78$0.13−83%−86% (232s → 32s)
Average$0.76$0.22−71%−72%

[!NOTE] Codemesh MCP achieves the lowest cost and fastest time of any mode tested — 71% cheaper and 72% faster than baseline on average across 6 repos, using 82% fewer tool calls (8 vs 45). Quality is comparable to baseline (7.9 vs 7.0); Codegraph edges Codemesh on quality (8.4) but at roughly double the cost ($0.45 vs $0.22). Every repo shows cost and time savings — including the comprehension-heavy queries (Excalidraw, pydantic-basemodel) that regressed in prior builds of codemesh.


Quick Start

1. Install

bash
npm install -g @pyalwin/codemesh

Or run directly without installing:

bash
npx -y @pyalwin/codemesh --help
Build from source
bash
git clone https://github.com/pyalwin/codemesh.gitcd codemeshnpm install && npm run buildnpm link

Verify the install: codemesh --version should print the package version.

2. Index your project

bash
cd /your/projectcodemesh index

The default index and retrieval path uses one SQLite database in .codemesh/. It does not generate embeddings or require a vector database. Existing vector artifacts from older runs are left untouched but are not used by this path.

Indexed 656 files  Symbols found:  16733  Edges created:  33266  Duration:       10009ms  PageRank:       13843 nodes scored

3. Choose your mode

Codemesh offers two ways to integrate with AI agents:

Option A: MCP Server (structured tool calls)

Add to your Claude Code MCP config (~/.claude/mcp-servers.json or project .mcp.json):

json
{  "mcpServers": {    "codemesh": {      "command": "npx",      "args": ["-y", "@pyalwin/codemesh"],      "env": {        "CODEMESH_PROJECT_ROOT": "/path/to/your/project"      }    }  }}

The agent gets native MCP tools:

  • codemesh_map — browse one level of the indexed repository or follow a link
  • codemesh_source — read a revision-checked source view by symbol ID; ifHash avoids repeat delivery
  • codemesh_inspect — inspect an exact symbol and its direct calls with bounded, exact source blocks
  • codemesh_hydrate — verify saved symbol references and reopen exact source after a handoff
  • codemesh_answer — optional ranked context assembly
  • codemesh_explore — search, context (multi-target), impact
  • codemesh_trace — follow call chains
  • codemesh_enrich / codemesh_workflow — write back
  • codemesh_recall — retrieve notes and workflows with freshness status
  • codemesh_status — health check

Best for: Opus, structured workflows, enrichment/write-back

Option B: CLI Mode (via Bash — zero MCP overhead)

No MCP config needed. The agent calls codemesh directly via Bash:

bash
export CODEMESH_PROJECT_ROOT=/path/to/your/project
# Navigate one level at a time, then read a selected symbol:codemesh explore mapcodemesh explore map --node 'dir:src'codemesh explore map --node 'file:src/server.ts'codemesh explore source 'symbol:src/server.ts:createServer'codemesh explore source 'symbol:src/server.ts:createServer' --mode previewcodemesh explore inspect 'symbol:src/server.ts:createServer' --depth 1 --max-symbols 4 --compactcodemesh explore hydrate --references '[{"id":"symbol:src/server.ts:createServer","bodyHash":"HASH"}]' --compact
# Other exploration commands:codemesh explore search "request flow"codemesh explore context Source/Core/Session.swift Source/Core/Request.swiftcodemesh explore trace Session.request --depth 5codemesh explore recall --path src/server.tscodemesh remember --path src/server.ts --summary "Server tool registration" --session my-task

Exploration and write commands return JSON to stdout. No MCP server process is required.

Best for: Sonnet/Haiku, speed-sensitive workflows, simpler setup

Which mode should I use?

MCP ServerCLI Mode
SetupMCP config fileJust export CODEMESH_PROJECT_ROOT
InvocationPersistent MCP processCLI subprocess
EnrichmentNative codemesh_enrich toolcodemesh remember ...
RetrievalShared SQLite-backed handlersSame handlers and JSON data
RecommendedHosts with reliable MCP tool useDeterministic shell workflows

4. Use it

The agent can choose a path through the persistent graph before reading code:

You: "Find how pydantic handles validation"
Agent calls: codemesh_map({})       gets: immediate repository directories and files, each with an ID
Agent calls: codemesh_map({ node: "dir:pydantic" })       gets: immediate files and subdirectories
Agent calls: codemesh_map({ node: "file:pydantic/main.py" })       gets: top-level symbols, including BaseModel
Agent calls: codemesh_map({ node: "symbol:pydantic/main.py:BaseModel" })       gets: methods, including model_validate
Agent calls: codemesh_source({ id: "symbol:pydantic/main.py:BaseModel.model_validate" })       reads: only the selected symbol's source
Agent calls: codemesh_enrich({ path: "pydantic/functional_validators.py",               summary: "Primary V2 validator API..." })       saves: summary for next session

Client Integrations

Codemesh speaks the Model Context Protocol, so any MCP-compatible client can use it. Paste one of the snippets below, restart the client, and the codemesh_* tools show up in the agent's toolbox.

Claude Code (CLI)

Add to ~/.claude/mcp-servers.json (user-wide) or .mcp.json (project-local):

json
{  "mcpServers": {    "codemesh": {      "command": "npx",      "args": ["-y", "@pyalwin/codemesh"],      "env": {        "CODEMESH_PROJECT_ROOT": "/absolute/path/to/your/project"      }    }  }}
Claude Desktop (macOS / Windows app)

Edit claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{  "mcpServers": {    "codemesh": {      "command": "npx",      "args": ["-y", "@pyalwin/codemesh"],      "env": {        "CODEMESH_PROJECT_ROOT": "/absolute/path/to/your/project"      }    }  }}

Restart Claude Desktop. Codemesh's tools will appear in the tool picker (hammer icon).

Cursor — stop the agent from wandering your codebase

Cursor reads .cursor/mcp.json per project (or ~/.cursor/mcp.json for all projects):

json
{  "mcpServers": {    "codemesh": {      "command": "npx",      "args": ["-y", "@pyalwin/codemesh"],      "env": {        "CODEMESH_PROJECT_ROOT": "${workspaceFolder}"      }    }  }}

Open Settings → MCP, confirm codemesh is green, then mention it in a prompt (@codemesh how does auth work?) to nudge the agent toward graph queries instead of recursive Grep.

Windsurf / VS Code (Continue)

Add to ~/.continue/config.json under experimental.modelContextProtocolServers:

json
{  "experimental": {    "modelContextProtocolServers": [      {        "transport": {          "type": "stdio",          "command": "npx",          "args": ["-y", "@pyalwin/codemesh"],          "env": {            "CODEMESH_PROJECT_ROOT": "/absolute/path/to/your/project"          }        }      }    ]  }}

Agent Write-Back: the graph that gets smarter

Every other code-intelligence tool indexes your repo once and hands the agent a read-only view. Codemesh lets the agent teach the graph as it works — summaries, workflows, and cross-concept links persist across sessions and survive re-indexing.

ts
// Session 1 — agent reads unfamiliar code, then writes back what it learned.codemesh_enrich({  path: "pydantic/functional_validators.py",  summary: "Primary V2 validator API. `@field_validator` wraps "         + "`_decorators.FieldValidatorDecoratorInfo`; `mode='before'|'after'` "         + "toggles pre/post-coercion execution. Extends BaseValidator.",  sessionId: "validation-investigation-1"})
// Session 1 — agent traces a multi-file flow, records the path.codemesh_workflow({  name: "pydantic field validation",  description: "Request → BaseModel.__init__ → SchemaValidator → field_validator",  files: [    "pydantic/main.py",    "pydantic/_internal/_model_construction.py",    "pydantic/functional_validators.py"  ]})
// Session 2 (days later) — another agent navigates the same indexed code.codemesh_map({ node: "file:pydantic/functional_validators.py" })// → returns stable symbol IDs without reading their bodies.codemesh_explore({ action: "context", path: "pydantic/functional_validators.py" })// → includes the earlier agent's concept alongside indexed relationships.

The graph now knows things no static analyzer could infer: why a file matters, which files move together, what a maintainer called a concept. Re-indexing rebuilds the structural layer (files, symbols, imports, calls) but preserves every enrichment — entries only go stale when their referenced files change.

See codemesh_enrich and codemesh_workflow under MCP Tools.


How It Works

                      ┌──────────────────────────────────┐                      │         Knowledge Graph           │                      │                                   │                      │  ┌──────────┐ ┌───────────────┐  │                      │  │Structural│ │   Semantic     │  │                      │  │  (auto)  │ │   (agents)    │  │                      │  │          │ │               │  │                      │  │ files    │ │ summaries     │  │                      │  │ symbols  │ │ workflows     │  │                      │  │ imports  │ │ concepts      │  │                      │  │ calls    │ │ enrichments   │  │                      │  └──────────┘ └───────────────┘  │                      │                                   │                      │  ┌──────────┐ ┌───────────────┐  │                      │  │   Git    │ │   Search      │  │                      │  │  Intel   │ │               │  │                      │  │          │ │ FTS5 (exact)  │  │                      │  │ hotspots │ │ Trigram (fuzzy)│  │                      │  │ co-change│ │ notes + cache │  │                      │  │ churn    │ │ PageRank      │  │                      │  └──────────┘ └───────────────┘  │                      │                                   │                      │          SQLite only              │                      └────────────┬──────────────────────┘                                   │                      ┌────────────┴──────────────────────┐                      │    MCP Server / CLI (shared core)  │                      │                                    │                      │  map · source · answer · explore    │                      │  trace · recall · enrich · workflow │                      │  status                            │                      └────────────────────────────────────┘

Structural layer (automatic) — Tree-sitter parses your code into files, symbols (functions, classes, methods), and relationships (imports, calls, extends). Rebuilt on each index.

Semantic layer (agent-built) — As agents work with your code, they write back summaries and workflow paths. These survive re-indexing and accumulate across sessions. Invalidated when referenced files change.


MCP Tools

ToolPurposeExample
codemesh_mapBounded, one-level navigation through directories, files, symbols, and graph linkscodemesh_map({ node: "dir:src", limit: 30 })
codemesh_sourceExact source for a selected symbol IDcodemesh_source({ id: "symbol:src/auth.ts:login" })
codemesh_inspectExact source for a symbol plus direct call evidence, within a byte and symbol budgetcodemesh_inspect({ id: "symbol:src/auth.ts:login", depth: 1 })
codemesh_hydrateVerify saved symbol references and reopen exact source after context losscodemesh_hydrate({ references: [{ id: "symbol:src/auth.ts:login", bodyHash: "..." }] })
codemesh_answerOptional ranked context assembly with source snippetscodemesh_answer({ question: "How does auth work?" })
codemesh_exploreSearch, context (multi-target), impact analysiscodemesh_explore({ action: "search", query: "auth" })
codemesh_traceFollow call chains with source codecodemesh_trace({ symbol: "login", depth: 5 })
codemesh_enrichWrite back what you learned for future sessionscodemesh_enrich({ path: "src/auth.py", summary: "..." })
codemesh_workflowRecord multi-file workflow pathscodemesh_workflow({ name: "login flow", files: [...] })
codemesh_statusGraph health checkcodemesh_status()

CLI

bash
codemesh index                          # structural + git intel + pagerankcodemesh rebuild                        # force re-index; preserves saved knowledgecodemesh status                         # graph statistics
codemesh explore map                    # repository rootcodemesh explore map --node 'dir:src'   # expand one branchcodemesh explore map --node 'symbol:src/auth.ts:login' --relation callscodemesh explore source 'symbol:src/auth.ts:login'codemesh explore source 'symbol:src/auth.ts:login' --if-hash HASH  # unchanged reference if bytes matchcodemesh explore source 'symbol:src/auth.ts:login' --force         # rehydrate exact sourcecodemesh explore inspect 'symbol:src/auth.ts:login' --depth 1 --compactcodemesh explore hydrate --references '[{"id":"symbol:src/auth.ts:login","bodyHash":"HASH"}]' --compactcodemesh explore answer "question"      # optional ranked context assemblycodemesh explore search "query"         # SQLite FTS5 + trigramcodemesh explore search get_default --path pydantic --scope symbols --max-bytes 4096codemesh explore inspect 'symbol:src/auth.py:login' --direction both --max-candidates 16codemesh explore recall --path file     # prior notes with freshnesscodemesh explore context file1 file2    # multi-target contextcodemesh explore trace symbol --depth 5 # follow call chainscodemesh explore impact file            # reverse dependenciescodemesh remember --path file --summary "note" --session task-idcodemesh workflow --name flow --description "flow description" --file first.ts --file second.tscodemesh explore search "query" --compact  # 8 candidates with IDs and match reasonscodemesh explore source 'symbol:src/auth.ts:login' --mode full --compactcodemesh explore source 'symbol:src/auth.ts:login' --mode auto --compactrg -n 'login' src | codemesh adapt search  # reversible fold when smallercat src/auth.ts | codemesh adapt read --path src/auth.ts --intent navigate

--compact is available for map, search, source, recall, inspect, and hydrate. It removes repeated metadata from CLI JSON; source still includes the exact requested code and a content hash. Navigation maps, search, inspect, and hydrate emit bounded JSON without pretty printing; their compact form preserves exact source and freshness hashes. hydrate also accepts --references-file PATH for a JSON array saved on disk. Bounded responses omit the extra project-root wrapper so the final JSON stays within the requested budget. Other commands retain their existing response format.

For handoffs, save a symbol's exact ID and bodyHash from a fresh source result. codemesh_hydrate checks that hash against live source before returning full code. If a saved hash came from fold or preview, include its mode; that hash checks only the rendered view, so include bodyHash to verify the whole symbol. Inspect and hydrate report omitted blocks explicitly when a budget is reached. Both default to four source blocks and a 24 KiB JSON response budget. inspect follows at most one hop of conservatively resolved local Python functions and imports. Use --direction incoming or both to inspect candidate callers too; --max-candidates bounds caller verification (default 32, maximum 128). Indexed edges are hints: each delivered caller is checked against its current Python binding. Incoming discovery is explicitly incomplete when edges are missing; an empty result never proves that a symbol has no callers. Dynamic receivers, ambiguous names, and uncertain bindings remain explicitly unresolved; other languages expose unverified graph candidates. These are static bindings, not guarantees about runtime behavior. Hydration returns live-checked code; clients decide when to invoke it after a handoff and which evidence to retain in their model context.

--mode auto is an explicit navigation view: symbols up to 120 lines and 12KiB are returned in full; larger symbols return a bounded preview with omitted ranges and a hint to map their members. Explicit --mode full always returns exact source. Search ranks exact identifiers and exact qualified/leaf names first, then query term coverage and lexical relevance, with popularity used only to break ties. For an opt-in structural hint, --exact-tie-break path-depth prefers shallower paths before popularity on equally ranked exact-name/leaf matches. MCP exposes the same exactTieBreak option on codemesh_explore. Explicit IDs and path filters still select deeper implementations; depth does not establish which implementation is canonical. The default remains pagerank. --path restricts candidates to a file or directory before SQLite result caps; src does not match src-other. Compact search includes signatures and spans. Search and navigation default to an 8192-byte JSON budget; --max-bytes accepts 512..65536. Omitted results are explicit. Navigation's cursor always points at the first unreturned entry; if that entry alone exceeds the budget, increase --max-bytes and reuse the cursor. Source code remains behind source/inspect.

The deterministic Graphify follow-up documents the single-agent design and focused context policy. Context replacement belongs to the harness: MCP/CLI tools cannot remove earlier client messages. The controlled next iteration documents lean eval instructions, optional search ranking, and two multi-file handoff fixtures.

Source retrieval also accepts a unique symbol name, such as MyType.myMethod. An ambiguous name returns exact candidate IDs and spans; it never guesses an overload from its size. Exact IDs remain the preferred reference across sessions. adapt reads a native tool observation from stdin. Search folding preserves every match and falls back for unsupported formats. Read outlining requires a complete byte-exact match with a fresh indexed file and explicit navigation intent; edit reads and partial reads pass through unchanged. --json reports the route and reason instead of emitting only the adapted observation.


Optional: Hooks & Skills

Skill — teaches agents the graph-first workflow

Copy skills/codemesh.md to ~/.claude/skills/ or your project's .claude/skills/.

bash
# Install the skill so Claude Code loads the workflow automaticallycp /path/to/codemesh/skills/codemesh.md /your/project/.claude/skills/

The skill instructs agents to query the graph before using Grep/Read, and to write back via codemesh_enrich after reading code.

Hooks — automatic pre-read context injection

Add to .claude/settings.json:

json
{  "hooks": {    "PreToolUse": [{      "matcher": "Read",      "hooks": [{        "type": "command",        "command": "/path/to/codemesh/hooks/pre-read.sh"      }]    }],    "PostToolUse": [{      "matcher": "Read",      "hooks": [{        "type": "command",        "command": "/path/to/codemesh/hooks/post-read.sh"      }]    }]  }}
  • Pre-read — Adds a cached summary marked non-stale alongside the pending Read result
  • Post-read — Nudges the agent to enrich after reading unfamiliar files

Supported Languages

TypeScriptJavaScriptPythonGoRustJavaC#
RubyPHPCC++SwiftKotlinDart

Any language with a tree-sitter grammar can be added.


Graph Data Model

Nodes

TypeSourceKey Fields
fileStatic (tree-sitter)path, hash, last_indexed_at
symbolStatic (tree-sitter)name, kind, file_path, line_start, line_end, signature
conceptAgent-writtensummary, last_updated_by, stale
workflowAgent-writtendescription, file_sequence, last_walked_at

Edges

TypeDirectionSource
containsfile → symbolStatic
importsfile → fileStatic
callssymbol → symbolStatic
extendssymbol → symbolStatic
describesconcept → file/symbolAgent
related_toconcept → conceptAgent
traversesworkflow → fileAgent

Architecture

codemesh/├── src/│   ├── index.ts              # MCP server entry (stdio transport)│   ├── server.ts             # Tool registration (zod schemas)│   ├── graph/│   │   ├── types.ts          # Node/edge type definitions│   │   ├── storage.ts        # StorageBackend interface (swappable)│   │   └── sqlite.ts         # SQLite + FTS5 implementation│   ├── indexer/│   │   ├── indexer.ts        # File walking, hashing, incremental indexing│   │   ├── parser.ts         # Tree-sitter AST extraction│   │   └── languages.ts      # Language registry (ext → grammar)│   ├── tools/                # 6 MCP tool handlers│   └── cli.ts                # CLI entry point├── skills/codemesh.md        # Agent education skill├── hooks/                    # Pre/post read hooks└── eval/                     # Eval framework (5 tasks, 3 models)

Storage is backend-agnostic. The StorageBackend interface abstracts all persistence. v1 uses SQLite with FTS5 for zero-dependency local operation. The interface supports swapping to Memgraph, Neo4j, or other graph databases.


Eval Framework

Reproducible evaluation harness with LLM-as-judge scoring:

bash
# Setupnpm install -g @pyalwin/codemeshgit clone --depth 1 https://github.com/Alamofire/Alamofire.git /tmp/alamofire# ... clone other repos ...
# IndexCODEMESH_PROJECT_ROOT=/tmp/alamofire codemesh index
# Run benchmarkspython3 eval/head_to_head.py --model sonnet alamofire excalidraw vscode swift-compiler

See docs/benchmark-results.md for full methodology and results. Early pydantic evals are archived in docs/experiments/.

The SQLite-only CLI has a separate vNext contract and agent workflow eval on a pinned Pydantic checkout. Its correctness checks and model cost/quality comparison are reported separately from the historical benchmarks. The vNext Pydantic results record the first full paired run.


vs. Existing Tools

FeatureCodeGraphGraphifyAxonCodemesh
Structural indexingYesYesYesYes
FTS searchYes—YesYes
Agent write-back———Yes
Workflow memory———Yes
Hook interception———Yes
Backend-swappable———Yes
Eval framework———Yes
Published benchmarks———Yes

Development

bash
bun install          # Install dependenciesbun run build        # Compile TypeScriptbun run test         # Run 102 testsbun run dev          # Watch modebun run lint         # Type check

Contributing

Contributions welcome. Areas for improvement:

  • More languages — Add tree-sitter grammars and language-specific extractors
  • AST-diff invalidation — Function-level instead of file-level staleness detection
  • Graph backends — Memgraph/Neo4j adapters for StorageBackend
  • Semantic search — Embedding columns alongside FTS5
  • Agent adoption — Better patterns for agents to prefer graph tools naturally

License

MIT

Footnotes

  1. Swift Compiler's codemesh index failed to complete (indexer regression on 30k+ file codebases — see known issues). The codemesh numbers above reflect agent behavior with an empty retrieval graph, falling back to Read + LSP — still ahead of baseline, but unrepresentative of codemesh's capability on a properly-indexed Swift repo. ↩ ↩2 ↩3 ↩4

  2. Baseline for Alamofire hit a judge error (score recorded as 0 but not meaningful); excluded from the Baseline average. ↩

来源:README.md,提交 11c7776

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分