要在 GitHub 上使用语义代码搜索,您需要手动安装 Claude Context 的 Chrome 扩展,在设置页填入 GitHub Token、OpenAI API Key 和 Milvus 连接信息,随后在任意仓库主页点击“Index Repository”按钮进行索引,之后即可在页面内输入自然语言查询或右键选中代码进行语义搜索。该功能通过向量嵌入技术实现,能返回按相似度排序的代码片段。

Claude Context Chrome 扩展使用教程:在 GitHub 上实现语义代码搜索

Claude Context 的 Chrome 扩展将语义代码搜索能力直接集成到 GitHub 网页界面中。它能让您在浏览代码仓库时,直接对代码库进行语义化索引和查询,快速找到功能相关、概念相似的代码片段,极大提升代码理解和 AI 辅助编程的效率。

1. 手动安装扩展

由于该扩展尚未在 Chrome Web Store 上架,您需要通过开发者模式手动加载已构建的文件。

前提条件:确保您已安装 Node.js 和 pnpm。

操作步骤

  1. 构建扩展:在 Claude Context 项目根目录下,执行以下命令:

    cd packages/chrome-extension
    pnpm install
    pnpm build

    构建完成后,会在 packages/chrome-extension 目录下生成一个 dist 文件夹。

  2. 在 Chrome 中加载

    • 打开 Chrome 浏览器,在地址栏输入 chrome://extensions/ 并回车。
    • 在页面右上角,打开“开发者模式”开关。
    • 点击左上角的“加载已解压的扩展程序”按钮。
    • 在文件选择对话框中,选择上一步生成的 dist 文件夹。
    • 加载成功后,扩展程序列表中将出现“GitHub Code Vector Search”扩展,Chrome 工具栏也会显示其图标。

2. 配置连接参数

扩展需要与您的嵌入提供商和向量数据库通信,这需要您预先配置必要的密钥和地址。

操作步骤

  1. 点击 Chrome 工具栏中的 Claude Context 扩展图标,然后点击“选项”或直接右键点击图标选择“选项”,进入设置页面。
  2. 在设置页面中,依次填写以下配置:
    • GitHub Personal Access Token:用于访问 GitHub API 以索引您的仓库。您可以前往 GitHub Developer Settings 创建一个具有 repo 权限范围的 Token。如果需要索引私有仓库,此字段为必填。
    • OpenAI API Key:用于调用 OpenAI 的嵌入模型(如 text-embedding-3-small)将代码转换为向量。您可以在 OpenAI 后台 创建此密钥。
    • Milvus Configuration:配置用于存储和检索代码向量的 Milvus 向量数据库连接。
      • Milvus Server Address:您的 Milvus 服务地址,例如 http://localhost:19530 或 Zilliz Cloud 提供的地址。留空则会使用本地存储回退方案。
      • Milvus Token (Optional):连接 Milvus 服务所需的认证令牌,对于云托管实例通常是必需的。
      • Milvus Database:Milvus 中的数据库名称,默认为 default
  3. 填写完毕后,点击“Save Settings”按钮保存。您还可以点击“Test Milvus Connection”来验证向量数据库的连接是否正常。

3. 索引 GitHub 仓库

配置完成后,您需要将想要搜索的代码仓库进行索引。扩展通过检测您所在的 GitHub 页面来注入操作界面。

核心逻辑:扩展的 content.ts 脚本中的 isRepoHomePage() 函数会通过正则表达式 ^\/[^/]+\/[^/]+(\/tree\/[^/]+)?\/?$ 来判断您是否位于一个仓库的根目录或指定分支的页面(如 /user/repo/user/repo/tree/main)。只有在这些页面,搜索和索引 UI 才会自动出现。

索引操作

  1. 打开浏览器,导航到您想要索引的 GitHub 仓库主页。
  2. 在仓库侧边栏(或导航栏下方)找到扩展注入的 “Code Search” 面板。如果已正确配置 Token,您会看到一个搜索框和几个按钮。
  3. 点击“📚 Index Repository”按钮。按钮状态将变为“⏳ Indexing…”,同时页面底部状态栏会显示实时的索引进度。
  4. 等待索引完成。完成后,状态栏会显示“✅ Indexing complete!”以及索引的文件数和代码块数。此时,按钮会变为“🔄 Re-Index Repository”(用于在仓库代码更新后重新索引),搜索框和“Search”按钮将变为可点击状态。

验证方法:索引成功后,您可以点击“Recent Repos”按钮查看已索引的仓库列表,确认当前仓库是否在内。

4. 进行语义代码搜索

索引完成后,您就可以在 GitHub 页面内直接发起语义搜索了。

基本搜索

  1. 在“Code Search”面板的搜索框中,用自然语言输入您想查找的代码逻辑或功能描述,例如 “function that handles user authentication”“database connection pool configuration”
  2. 点击“Search”按钮或按回车键。
  3. 搜索结果将出现在下方,每条结果都包含:
    • 文件路径:点击可直接跳转到 GitHub 上对应的代码文件。
    • 行号范围:显示匹配的代码片段起止行。
    • 相似度得分:一个百分比数值,表示该代码片段与您查询语义的匹配程度。结果默认按相似度从高到低排序。
    • 代码预览:显示匹配代码片段的前 300 个字符。

右键搜索相似代码: 这是基于已索引内容的上下文搜索。

  1. 在 GitHub 仓库的任何代码文件页面,直接选中一段您感兴趣的代码。
  2. 右键点击选中的代码,在弹出的上下文菜单中,选择“Search Similar Code”。
  3. 扩展将以选中的代码作为查询语句,在已索引的代码库中搜索语义相似的片段,并显示结果。

5. 管理与维护

  • 清除索引:如果您想清除某个仓库的索引数据,可以访问该仓库主页,在面板中点击“Clear Index”按钮。
  • 查看状态:面板底部的状态栏会持续显示当前仓库的索引状态信息,包括索引日期、文件数、代码块数以及最后一次搜索的时间。
  • 更新索引:当仓库有大量代码更新后,建议回到该仓库主页,点击“🔄 Re-Index Repository”按钮更新索引,以确保搜索结果包含最新的代码。该过程采用增量同步机制,详见相关架构文章

FAQ

Q: 点击“Index Repository”按钮后,状态栏一直显示“Starting indexing with Milvus…”没有进展? A: 请检查您的网络连接以及 Milvus 服务地址和 Token 是否配置正确。您可以先在设置页面使用“Test Milvus Connection”功能验证连接。如果问题依旧,可以查看浏览器扩展的开发者控制台(在 chrome://extensions/ 页面点击扩展下方的“Service Worker”链接)是否有错误日志。

Q: 搜索框和按钮是灰色的,无法点击? A: 这通常是因为扩展检测到您没有配置 GitHub Token。请进入扩展的选项设置页面,填入有效的 GitHub Personal Access Token 并保存,然后刷新 GitHub 仓库页面。

Q: 搜索结果不准确或数量很少? A: 语义搜索的质量与索引的完整性直接相关。请确保您已成功完成仓库索引(状态栏显示绿色的索引完成信息)。您也可以尝试用更具体、更接近代码注释或函数名的自然语言描述进行搜索。关于嵌入模型对结果的影响,可以参考嵌入提供商对比文章

Q: 能否同时索引和搜索多个不同的仓库? A: 可以。扩展支持跨仓库搜索。您只需按照第3步分别对每个仓库进行索引,索引完成后,在任何一个已索引仓库的页面进行搜索,结果可能会包含其他已索引仓库中的相关代码。您也可以通过“Recent Repos”按钮查看和管理所有已索引的仓库。