🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

代码索引层 phuongddx/jarvis

MCP
phuongddx16 天前有提交已提供中文文档扫描:无法判定兼容 / 相关生态

你的编码代理不应该把上下文窗口浪费在 grep 上。

32.8/100
综合分
4
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/phuongddx/jarvis.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
暂无时间戳·判据 →
装得上吗[实装验证]—
该类项目不使用 dsh plugin add 安装,静态安装检查不适用
L4 · 真实安装等级说明 →
数据截至 2026/10/28·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 16 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查需源码安装

仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包jarvis(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/20 23:03:31

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

4 张 · 点击查看大图

功能亮点

  • 访问代码与知识
  • 管理上下文与记忆
  • 调用工具与运行时

JARVIS 是一层智能层,让智能体访问自己的代码、知识、上下文、记忆、工具和运行时——先从你本机起步,再扩展到云端。

README

由 DeepSeek 最新模型翻译生成
jarvis CI Platforms License: MIT MCP 你的编码代理不应该把上下文窗口浪费在 grep 上。 当你的代理问“AuthService 在哪里被使用?”时,grep 会把注释、 markdown、测试夹具以及名称相似的符号混成一堆噪声返回。代理为了从噪声中过滤出信号而反复读取文件,消耗上下文——而且仍然会漏掉调用点。 jarvis 预先计算出一个本地代码智能层,让你的代理可以调用 findReferences 获取精确出现位置,调用 goToDefinition 获取定义范围,调用 callHierarchy 获取调用路径,调用 searchCode 进行精确的词法搜索——十个 MCP 工具,适用于 Claude Code、Cursor 或任何 MCP 客户端。你的代码和索引永远不会离开你的机器。
展开完整文档(README 剩余 1 节)
jarvis

CI
Platforms
License: MIT
MCP

你的编码代理不应该把上下文窗口浪费在 grep 上。

当你的代理问“AuthService 在哪里被使用?”时,grep 会把注释、 markdown、测试夹具以及名称相似的符号混成一堆噪声返回。代理为了从噪声中过滤出信号而反复读取文件,消耗上下文——而且仍然会漏掉调用点。

jarvis 预先计算出一个本地代码智能层,让你的代理可以调用 findReferences 获取精确出现位置,调用 goToDefinition 获取定义范围,调用 callHierarchy 获取调用路径,调用 searchCode 进行精确的词法搜索——十个 MCP 工具,适用于 Claude Code、Cursor 或任何 MCP 客户端。你的代码和索引永远不会离开你的机器。

| 没有 jarvis | Grep → 注释、测试、导入与真实命中混在一起 → 打开文件进行过滤 → 猜测调用点 → 把上下文浪费在搜索上而不是推理上 |
| 使用 jarvis | findReferences("AuthService") → 精确的文件和范围出现位置 → 用 callHierarchy 获取调用图 → searchCode("token refresh") → 无需打开每个匹配项即可回答 |

快速开始 · MCP 工具 · 仪表盘 · 限制 · 详情 · 文档

快速开始

1. 安装独立二进制文件:

brew install jarvis-intelligence/jarvis/jarvis

Linux 用户需要先安装 Homebrew/Linuxbrew。
该 formula 支持 macOS arm64/x86_64 和 Linux arm64/x86_64,会同时安装 jarvis 和 jarvis-server,并内嵌 Python 3.12、仪表盘资源、 tree-sitter 库、watch、scip、zoekt-git-index 和 zoekt-webserver。Homebrew 提供 universal-ctags。无需安装 Python、 uv、pip 或 PyPI。

使用 brew upgrade jarvis 升级;使用 brew reinstall jarvis 修复损坏的安装。

2. 索引一个仓库(slug 默认使用目录名):

jarvis index /path/to/your/repo

3. 注册 MCP 服务器:

claude mcp add jarvis --scope user -- jarvis-server

让你的代理“查找对 AuthService 的所有引用”——它会调用 findReferences 而不是 grep。

其他 MCP 客户端(Cursor、Claude Desktop、任何 stdio 客户端)

{
"mcpServers": {
"jarvis": {
"command": "jarvis-server"
}
}
}
如果你的客户端在 PATH 上找不到 jarvis-server(GUI 应用通常不会继承你 shell 的环境变量),请使用 which jarvis-server 得到的绝对路径。

Claude Code 插件(注册 MCP + 附带 agent 技能)

先安装 Homebrew 二进制文件。该插件会添加 jarvis 技能,并可以注册已安装的 jarvis-server。

/plugin marketplace add jarvis-intelligence/jarvis-index
/plugin install jarvis@jarvis

可选的语言索引器

独立包包含 SCIP 转换器和两个 Zoekt 二进制文件。
Homebrew formula 不会安装 setup.sh;请从 jarvis 源码检出目录中,为你的仓库安装可选的按语言索引器:

| 语言 | 安装器 | 工具链 |
| TypeScript/TSX | sh setup.sh --only scip-typescript | Node.js/npm |
| Python | sh setup.sh --only scip-python | Node.js/npm |
| Java/Kotlin | sh setup.sh --only scip-java | JDK;Kotlin 仓库需要精确的 Kotlin 2.2.0 |
| Swift | sh setup.sh --only scip-swift | macOS arm64 上的 Xcode |

对于 macOS 上使用 Maven 构建的 Java 仓库,还需安装现代版 Bash:
brew install bash,然后从同一个源码检出目录运行 sh setup.sh --only bash-shim。
添加索引器后请重新索引。如果没有匹配的索引器,在 Tree-sitter 覆盖的范围内,documentSymbols 和 goToDefinition 仍然可用; findReferences、callHierarchy 和 typeHierarchy 会返回恢复指引。

不包含的内容

semanticSearch 为兼容 MCP 而注册,但被排除在独立发行版之外。它会返回一个 Homebrew 特有的不可用错误,并指向下方的源码构建步骤;词法搜索和符号搜索仍然可用。

源码构建的语义搜索

独立 Homebrew 包不包含语义依赖。在源码检出目录中,使用以下命令安装它们:

uv run jarvis install-semantic

然后显式索引:

uv run jarvis index /path/to/repo --semantic
install-semantic 还会预先下载嵌入模型(BAAI/bge-m3,约 4.3 GB,一次性)到共享的 Hugging Face 缓存(~/.cache/huggingface/);每个被索引的仓库都会复用它。如果下载中断,下一次 jarvis index 会自动重试。

MCP 工具

| 工具 | 功能 |
| goToDefinition | 将符号解析到其定义文件和范围 |
| findReferences | 符号在被索引仓库中的每一次出现 |
| callHierarchy | 符号的传入/传出调用 |
| typeHierarchy | 超类型/子类型 |
| documentSymbols | 一个文件中定义的所有符号的大纲 |
| searchCode | Zoekt 词法/正则搜索,可选过滤到单个仓库 |
| semanticSearch | 返回 Homebrew 发行版的语义不可用错误 |
| blastRadius | 哪些其他已索引的仓库依赖于某个包,最多 2 跳 |
| getIndexStatus | 已发布的提交、新鲜度、相对于工作树的陈旧程度 |
| indexRepo | 为位于 path 的 git 仓库构建索引 |

仪表盘

jarvis dashboard # 提供 http://127.0.0.1:6080 并打开浏览器

一个 localhost Web 控制台,读取与 CLI 和 MCP 服务器相同的 ~/.jarvis 数据:

要求和限制

- 仅支持 macOS arm64/x86_64 和 Linux arm64/x86_64。 不支持 Windows。
- Homebrew 发行版中不可用语义搜索。
- 每个仓库一种语言 —— 通过 git 跟踪文件的扩展名多数来检测;使用 --language 覆盖。
- jarvis 从不编辑代码。 它是检索的那一半 —— Serena 在重命名/重构方面与之互补。
- 索引是显式的 —— 在查询之前运行 jarvis index(或 jarvis watch)。

详情

工作原理

一个索引 CLI 将预计算的索引写入 ~/.jarvis;一个 stdio 运行时读取它们。两者之间没有其他契约。

- 发布是原子的 —— 重新索引会写入新快照,然后通过 os.replace 翻转 current 指针。读取旧快照的查询会继续工作;没有停机窗口。
- 运行时路径从不写入 —— 每个查询都以只读方式打开已发布的快照(mode=ro&immutable=1)。
- 包图是重建的,而非累积的 —— 每次重新索引都会在重新计算之前清除该仓库的出边。

完整细节:docs/system-architecture.md

索引 CLI 参考

jarvis index /path/to/your/repo # slug 默认为目录名 jarvis index /path/to/your/repo --slug foo # 或显式选择一个 jarvis index /path/to/your/repo --scheme MyScheme # 具有不明确 Xcode scheme 的 Swift 仓库 jarvis index /path/to/your/repo --language python # 强制指定语言而不是检测它 jarvis index /path/to/your/repo --no-scip # 跳过可选的 SCIP 增强;语法基线 + Zoekt 仍会发布 jarvis index /path/to/your/repo --scip # 重新启用 SCIP 增强(两个标志按仓库持久化) jarvis list jarvis status foo jarvis reindex foo jarvis forget foo jarvis watch /path/to/your/repo [--debounce 5.0] # 在文件更改时进行防抖自动重新索引(前台)

已知的上游限制
- scip-java 无法索引 Android/Gradle 仓库 — 其 Gradle 插件依赖于标准源集,而 AGP 会替换这些源集(scip-java#177)。会自动检测;降级为仅搜索模式。
- Kotlin 索引需要精确匹配 Kotlin 版本 — scip-kotlinc 是针对某一个固定版本(当前为 2.2.0)编译的。会自动检测。
- Maven 构建的 Java 仓库在 macOS 上需要 bash ≥ 4.4 — brew install bash 可解决此问题。
- Swift 索引需要 scip >= v0.9.0 — 较旧的转换器会静默丢弃出现范围。jarvis index 会拒绝较旧的 scip,而不是发布损坏的索引。

配置

| 变量 | 用途 |
| JARVIS_DATA_DIR | 覆盖所有索引和注册表的默认 ~/.jarvis |

源代码开发的语义路径有额外的模型前缀覆盖项;它们在独立发行版中不起作用。

文档

- docs/project-overview-pdr.md — 范围、价值主张、超出范围的事项
- docs/system-architecture.md — 架构保证、存储布局、查询路径
- docs/codebase-summary.md — 模块映射、测试覆盖率
- docs/code-standards.md — 代码模式和约定
- docs/dashboard.md — 仪表板视图、操作、安全模型

许可证

MIT
预览分享卡片长什么样 ↓phuongddx/jarvis
分享 · DeepSeek Harness Hub
phuongddx/jarvis

你的编码代理不应该把上下文窗口浪费在 grep 上。

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部