Repofind

io.github.CloudCorpRecords由 GitHub 账号 CloudCorpRecords 发布v0.1.0更新于 Nov 7, 2026

Local codebase search for agents: hybrid keyword/semantic search, locate, expand, related code.

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

概览

AI 生成的概览

Repofind 为本地代码库建立索引,让助手按关键词或语义搜索、定位精确字符串、扩展上下文并查找相似代码。

可以做什么
  • 以关键词与语义混合排序搜索已索引的本地仓库,返回最匹配的代码块及其文件、行范围和分数
  • 定位环境变量、符号或错误码等精确子串,可输出计数、文件列表、位置或完整行
  • 以某条命中为锚点,返回同一文件中相邻的代码块
  • 根据命中的文件路径与锚点行,在其他文件中查找相似代码
  • 读取已保存的基准模式查询汇总及其节省的 token 数
适用场景
适合助手需要探索陌生或大型本地代码库时,用更少、更精准的读取替代反复 grep 和逐个打开文件的猜测。也适用于关心文件路径与行范围的代码导航问题。
运行要求
通过 npx 或 Docker 以 stdio 在本地运行,无需账号,也未声明认证。可选的 TAKARA_API_KEY 启用语义检索;MIRU_OPENAI_BASE_URL 与 MIRU_OPENAI_EMBEDDING_MODEL 配置嵌入端点,MIRU_MAX_INDEX_FILES 限制索引规模。仅支持桌面端。
安装前请注意
设置 TAKARA_API_KEY 后,查询与代码块会发送到兼容 OpenAI 的嵌入端点(默认 infer.takara.ai),代码将离开本机。索引会跳过 .git、node_modules 和超过 1MB 的文件,但允许扩展名内的其他内容都会被读取。原产品的 auth 工具未包含在内。

安装

在 SourceWeft 中

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

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

其他 MCP 客户端

参照 仓库 中的启动说明。

README

repofind

Finding code in a repository you have never opened usually starts with a guess: a word to grep, a filename to try. repofind replaces the guessing with an index. Point it at a local directory and it walks the tree — skipping .git, node_modules, files over a megabyte, and anything outside a source-and-text extension allowlist — splits each file into consecutive 40-line chunks, and ranks those chunks against your question. One call returns the five best places to look, each with its file, line range, the chunk text, and a score.

Ranking is hybrid. A pinned BM25 scorer (k1 = 1.2, b = 0.75) over the chunk texts always runs. When a TAKARA_API_KEY is present in the environment, an embeddings step joins in: the query and the chunks are embedded through an OpenAI-compatible endpoint and each chunk's final score becomes bm25 + 10 * max(0, cosine). Without a key — or if the embedder fails — the result says so plainly in its notes and ranks by keyword alone. By default only the best hit per file is kept, so five hits mean five different files to open.

The other tools cover the rest of the exploration loop. locate finds an exact substring — an env var, a symbol, an error code — and reports it as a count, a file list, bare locations, or full lines. expand takes a hit you already have and returns its chunk plus the neighbouring chunks in the same file. find_related takes the same anchor and ranks chunks from every other file against it. read_benchmark rolls up saved benchmark-mode queries into a token-savings total. The original product's auth tool is not part of this rebuild: its interactive device login and AWS-profile validation cannot be reproduced from the published spec, so the surface here is five of the six tools.

CLI

bash
npx @reneturcios/repofind search '{"query": "retry backoff logic", "repo": "."}'npx @reneturcios/repofind locate '{"literal": "DATABASE_URL", "mode": "locations"}'npx @reneturcios/repofind expand '{"file_path": "src/client.ts", "anchor_line": 83}'npx @reneturcios/repofind find_related '{"file_path": "src/client.ts", "anchor_line": 83}'npx @reneturcios/repofind read_benchmark '{}'npx @reneturcios/repofind --version

Each tool subcommand takes the tool's arguments as one JSON string and prints the result as JSON. Exit codes: 0 on success, 1 on a runtime error, 2 on a usage error.

Environment variables: TAKARA_API_KEY enables the semantic half; MIRU_OPENAI_BASE_URL (default https://infer.takara.ai/v1) and MIRU_OPENAI_EMBEDDING_MODEL (default ds1-miru-int8) configure the embeddings endpoint; MIRU_MAX_INDEX_FILES caps the index (default 10000); MIRU_BENCHMARK_HISTORY_PATH overrides the benchmark history location.

MCP server

bash
npx -y @reneturcios/repofind mcp

MCP client config:

json
{  "mcpServers": {    "repofind": {      "command": "npx",      "args": ["-y", "@reneturcios/repofind", "mcp"]    }  }}

Tools

  • search — Hybrid semantic + keyword search over an indexed local codebase. Default for code exploration — one call per question.

    • query (string, required) — natural language or code query
    • repo (string, optional) — local directory to index; defaults to the working directory
    • include / exclude (string arrays, optional) — gitignore-style glob patterns against repo-relative paths
    • dedupe_by_file (boolean, default true) — keep the best hit per file

    Returns {hits, ranking, notes} with at most 5 hits; each hit is {file_path, absolute_path, start_line, end_line, anchor_line, truncated, snippet, score} with the score rounded to 4 decimals.

  • locate — Find exact substrings (env vars, symbols, error codes) in an indexed local codebase.

    • literal (string, required); mode one of count, files, locations, lines (default lines); limit caps locations/lines; ignore_case (default false); repo, include, exclude as in search.
  • expand — Return more context in the same file around a search hit: the anchor chunk plus neighbouring chunks.

    • file_path and anchor_line (required); before / after chunk counts (default 1 each).
  • find_related — Find similar code in other files, from a hit's file_path and anchor_line. Returns the same {hits, ranking, notes} shape as search, with the source file excluded.

  • read_benchmark — Cumulative token-savings rollup from saved benchmark-mode queries. Returns {queries, total_tokens_saved, average_tokens_saved}; a missing history file is a zero rollup, not an error.

Docker

bash
docker run -i ghcr.io/cloudcorprecords/repofinddocker run --rm ghcr.io/cloudcorprecords/repofind locate '{"literal": "TODO"}'

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # tsx --test test/*.test.ts (temp fixture repos, fake embedder, no network)npm run dev     # run the CLI from source

License

MIT — Copyright (c) 2026 Rene Turcios

来源:README.md,提交 520b9e5

工具

5

locate

Find exact substrings (env vars, symbols, error codes) in an indexed local codebase.

输入参数moderepolimitexcludeincludeliteral必填ignore_case

expand

Return more context in the same file around a search hit: the anchor chunk plus neighbouring chunks.

输入参数repoafterbeforefile_path必填anchor_line必填

read_benchmark

Cumulative token-savings rollup from saved benchmark-mode queries.

输入参数repo

版本历史

1
  1. v0.1.0最新Nov 5, 2026

评分

已满足适用检查项的 90%

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

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

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

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分